]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
osd: some cleanup, todos
authorSage Weil <sage@newdream.net>
Mon, 25 May 2009 21:34:08 +0000 (14:34 -0700)
committerSage Weil <sage@newdream.net>
Mon, 25 May 2009 21:34:08 +0000 (14:34 -0700)
src/TODO
src/osd/ReplicatedPG.cc
src/osd/ReplicatedPG.h

index b6ea6b965de795c04caea6a65c93eb47a3b0b4ec..1752dbcb0f1ca98774048aea11b9ddd905010f47 100644 (file)
--- a/src/TODO
+++ b/src/TODO
@@ -52,12 +52,6 @@ v0.9
 - make mds exhert memory pressure on client caps, leases
 - optionally separate osd interfaces (ips) for clients and osds (replication, peering, etc.)
 
-- object access modes
- - unify read/write paths
- - add objectcontext for clones as they're created (esp if write is delayed)
- - make snap selection behave
-
-
 
 later
 - client reconnect after long eviction; and slow delayed reconnect
index db612cce1db9e8c14ab601636dfd6a225c644559..d13d6e966e49ddf9ae0649da51f0122fb615f206 100644 (file)
@@ -411,11 +411,7 @@ void ReplicatedPG::do_op(MOSDOp *op)
   const sobject_t& soid = obc->soid;
   OpContext *ctx = new OpContext(op, op->get_reqid(), op->ops, op->get_data(),
                                 obc->state, &obc->oi);
-
   bool noop = false;
-  if (ctx->ops.empty()) {
-    noop = true;
-  }
 
   if (op->may_write()) {
     // version
@@ -482,8 +478,6 @@ void ReplicatedPG::do_op(MOSDOp *op)
 
     // read or error?
     if (ctx->op_t.empty() || result < 0) {
-
-
       MOSDOpReply *reply = new MOSDOpReply(op, 0, osd->osdmap->get_epoch(),
                                           CEPH_OSD_FLAG_ACK | CEPH_OSD_FLAG_ONDISK); 
       reply->set_data(ctx->outdata);
@@ -753,7 +747,7 @@ bool ReplicatedPG::snap_trimmer()
 
 
 // ========================================================================
-// READS
+// low level osd ops
 
 int ReplicatedPG::do_osd_ops(OpContext *ctx, vector<ceph_osd_op>& ops,
                             bufferlist::iterator& bp, bufferlist& odata,
@@ -1205,11 +1199,6 @@ int ReplicatedPG::do_osd_ops(OpContext *ctx, vector<ceph_osd_op>& ops,
 
 
 
-// ========================================================================
-// MODIFY
-
-
-
 void ReplicatedPG::_make_clone(ObjectStore::Transaction& t,
                               sobject_t head, pobject_t coid,
                               object_info_t *poi)
@@ -1383,12 +1372,12 @@ void ReplicatedPG::log_op(OpContext *ctx)
 // ========================================================================
 // rep op gather
 
-class C_OSD_ModifyCommit : public Context {
+class C_OSD_OpCommit : public Context {
 public:
   ReplicatedPG *pg;
   ReplicatedPG::RepGather *repop;
 
-  C_OSD_ModifyCommit(ReplicatedPG *p, ReplicatedPG::RepGather *rg) :
+  C_OSD_OpCommit(ReplicatedPG *p, ReplicatedPG::RepGather *rg) :
     pg(p), repop(rg) {
     repop->get();
     pg->get();    // we're copying the pointer
@@ -1396,24 +1385,24 @@ public:
   void finish(int r) {
     pg->lock();
     if (!pg->is_deleted()) 
-      pg->op_modify_ondisk(repop);
+      pg->op_ondisk(repop);
     repop->put();
     pg->unlock();
     pg->put();
   }
 };
 
-/** op_modify_commit
+/** op_commit
  * transaction commit on the acker.
  */
-void ReplicatedPG::op_modify_ondisk(RepGather *repop)
+void ReplicatedPG::op_ondisk(RepGather *repop)
 {
   if (repop->aborted) {
-    dout(10) << "op_modify_ondisk " << *repop << " -- aborted" << dendl;
+    dout(10) << "op_ondisk " << *repop << " -- aborted" << dendl;
   } else if (repop->waitfor_disk.count(osd->get_nodeid()) == 0) {
-    dout(10) << "op_modify_ondisk " << *repop << " -- already marked ondisk" << dendl;
+    dout(10) << "op_ondisk " << *repop << " -- already marked ondisk" << dendl;
   } else {
-    dout(10) << "op_modify_ondisk " << *repop << dendl;
+    dout(10) << "op_ondisk " << *repop << dendl;
     repop->waitfor_disk.erase(osd->get_nodeid());
     repop->waitfor_nvram.erase(osd->get_nodeid());
     repop->pg_complete_thru[osd->get_nodeid()] = repop->pg_local_last_complete;
@@ -1427,7 +1416,7 @@ void ReplicatedPG::apply_repop(RepGather *repop)
   dout(10) << "apply_repop  applying update on " << *repop << dendl;
   assert(!repop->applied);
 
-  Context *oncommit = new C_OSD_ModifyCommit(this, repop);
+  Context *oncommit = new C_OSD_OpCommit(this, repop);
 
   list<ObjectStore::Transaction*> tls;
   tls.push_back(&repop->ctx->op_t);
index f7d2492e3a7576e9acf01004c8b2475704588d00..f9315b7abc21b38b9c76a89d54a48511ecc84b54 100644 (file)
@@ -385,9 +385,8 @@ protected:
   bool pull(sobject_t oid);
 
 
-  // modify
-  void op_modify_ondisk(RepGather *repop);
-  void sub_op_modify_ondisk(MOSDSubOp *op, int ackerosd, eversion_t last_complete);
+  // low level ops
+  void op_ondisk(RepGather *repop);
 
   void _make_clone(ObjectStore::Transaction& t,
                   sobject_t head, sobject_t coid,
@@ -403,7 +402,7 @@ protected:
   int prepare_transaction(OpContext *ctx, bool& exists, __u64& size);
   void log_op(OpContext *ctx);
   
-  friend class C_OSD_ModifyCommit;
+  friend class C_OSD_OpCommit;
   friend class C_OSD_RepModifyCommit;
 
   // pg on-disk content
@@ -418,6 +417,8 @@ protected:
   int recover_replicas(int max);
 
   void sub_op_modify(MOSDSubOp *op);
+  void sub_op_modify_ondisk(MOSDSubOp *op, int ackerosd, eversion_t last_complete);
+
   void sub_op_modify_reply(MOSDSubOpReply *reply);
   void sub_op_push(MOSDSubOp *op);
   void sub_op_push_reply(MOSDSubOpReply *reply);