]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
osd: force RMW ordering globally
authorSage Weil <sage@newdream.net>
Thu, 25 Jun 2009 19:45:35 +0000 (12:45 -0700)
committerSage Weil <sage@newdream.net>
Thu, 25 Jun 2009 19:45:35 +0000 (12:45 -0700)
We can't mix RMW and DELAYED in the same PG without screwing
up the ordering of writes, the pg log, and so forth.

So force RMW throughout.  This won't affect the mds log
appends because the client is constant.  It will slow down
concurrent writes to the same object by multiple clients, but
we don't have many (any?) of those yet.

This needs a real solution... :/

src/osd/ReplicatedPG.h

index 165d33fd991dd4a20ecf8e736bde29873552006a..fcf3134f1f67e77f44f984ff341b56a72b27b35d 100644 (file)
@@ -141,7 +141,8 @@ public:
     bool try_write(entity_inst_t& c) {
       switch (state) {
       case IDLE:
-       state = DELAYED;
+       //state = DELAYED;
+       state = RMW;     // always do RMW, until we solve pg log writing ordering issues
       case DELAYED:
        return true;
       case RMW: