]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
* minor read balancing fixes
authorsageweil <sageweil@29311d96-e01e-0410-9327-a35deaab8ce9>
Fri, 8 Jun 2007 23:50:31 +0000 (23:50 +0000)
committersageweil <sageweil@29311d96-e01e-0410-9327-a35deaab8ce9>
Fri, 8 Jun 2007 23:50:31 +0000 (23:50 +0000)
git-svn-id: https://ceph.svn.sf.net/svnroot/ceph@1413 29311d96-e01e-0410-9327-a35deaab8ce9

branches/sage/pgs/TODO
branches/sage/pgs/osd/ReplicatedPG.cc
branches/sage/pgs/osd/ReplicatedPG.h

index e288f15e09c6c9354676657d46325b35adafc9d3..d63633980022051a17841eeb01cb609068f8cab4 100644 (file)
@@ -229,7 +229,7 @@ osd/rados
 - mark residual pgs obsolete  ???
 - rdlocks
 - optimize remove wrt recovery pushes
-- pg_bit/pg_num changes
+- pg_num changes
 - report crashed pgs?
 
 simplemessenger
index 06b533928cdfee849c3693c86ba438e05d1f88c4..27482ac595d65a2d7df18949f6a442e6cd71f69d 100644 (file)
@@ -317,6 +317,8 @@ void ReplicatedPG::do_op(MOSDOp *op)
   case OSD_OP_RDUNLOCK:
   case OSD_OP_UPLOCK:
   case OSD_OP_DNLOCK:
+  case OSD_OP_BALANCEREADS:
+  case OSD_OP_UNBALANCEREADS:
     if (op->get_source().is_osd()) {
       op_rep_modify(op);
     } else {
@@ -706,10 +708,12 @@ void ReplicatedPG::apply_repop(RepGather *repop)
 
   case OSD_OP_BALANCEREADS:
     dout(-10) << "apply_repop  completed balance-reads on " << oid << dendl;
+    /*
     if (waiting_for_balanced_reads.count(oid)) {
       osd->take_waiters(waiting_for_balanced_reads[oid]);
       waiting_for_balanced_reads.erase(oid);
     }
+    */
     break;
     
   case OSD_OP_WRUNLOCK:
@@ -1052,8 +1056,9 @@ void ReplicatedPG::op_modify(MOSDOp *op)
   
   // balance-reads set?
   char v;
-  if (osd->store->getattr(op->get_oid(), "balance-reads", &v, 1) >= 0 ||
-      balancing_reads.count(op->get_oid())) {
+  if ((op->get_op() != OSD_OP_BALANCEREADS && op->get_op() != OSD_OP_UNBALANCEREADS) &&
+      (osd->store->getattr(op->get_oid(), "balance-reads", &v, 1) >= 0 ||
+       balancing_reads.count(op->get_oid()))) {
     
     if (!unbalancing_reads.count(op->get_oid())) {
       // unbalance
index 703fb2d7f2bae223c02e90f30360a8d934d371f6..3ee6e48039ff873c5488122749ec3441535768e0 100644 (file)
@@ -75,7 +75,6 @@ protected:
   // load balancing
   set<object_t> balancing_reads;
   set<object_t> unbalancing_reads;
-  hash_map<object_t, list<Message*> > waiting_for_balanced_reads;
   hash_map<object_t, list<Message*> > waiting_for_unbalanced_reads;  // i.e. primary-lock
 
   void get_rep_gather(RepGather*);