]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
librados: synchronous commands should return on commit instead of ack 512/head
authorGreg Farnum <greg@inktank.com>
Mon, 19 Aug 2013 17:29:49 +0000 (10:29 -0700)
committerGreg Farnum <greg@inktank.com>
Mon, 19 Aug 2013 17:29:49 +0000 (10:29 -0700)
This is unlikely to be noticed by anybody, but it is a big change. Document
in the PendingReleaseNotes and bump up the librados minor version number
to 68.

Signed-off-by: Greg Farnum <greg@inktank.com>
PendingReleaseNotes
src/include/rados/librados.h
src/librados/IoCtxImpl.cc

index 67919e541184e6989bda726cea8e4eef6e608f4a..ccbe0596b70bcaa7880621d96f6f890d57ac7926 100644 (file)
@@ -11,3 +11,10 @@ v0.68
   offender, has been removed.  This breaks compatibility with
   pre-bobtail librbd clients by preventing them from creating new
   images.
+
+* librados now returns on commit instead of ack for synchronous calls.
+  This is a bit safer in the case where both OSDs and the client crash, and
+  is probably how it should have been acting from the beginning. Users are
+  unlikely to notice but it could result in lower performance in some
+  circumstances. Those who care should switch to using the async interfaces,
+  which let you specify safety semantics precisely.
\ No newline at end of file
index 4a5be3d1777950c679eb359b109b228525f0116b..6f5e454c8e88d3731b8e3158b34042b1194dfa00 100644 (file)
@@ -24,7 +24,7 @@ extern "C" {
 #endif
 
 #define LIBRADOS_VER_MAJOR 0
-#define LIBRADOS_VER_MINOR 53
+#define LIBRADOS_VER_MINOR 68
 #define LIBRADOS_VER_EXTRA 0
 
 #define LIBRADOS_VERSION(maj, min, extra) ((maj << 16) + (min << 8) + extra)
index ce9743a54b36cb1cfc37b70efd8588b08149b430..c79005854584ee0289f572c3c5a23db5b5260052 100644 (file)
@@ -504,14 +504,14 @@ int librados::IoCtxImpl::operate(const object_t& oid, ::ObjectOperation *o,
   int r;
   eversion_t ver;
 
-  Context *onack = new C_SafeCond(&mylock, &cond, &done, &r);
+  Context *oncommit = new C_SafeCond(&mylock, &cond, &done, &r);
 
   int op = o->ops[0].op.op;
   ldout(client->cct, 10) << ceph_osd_op_name(op) << " oid=" << oid << " nspace=" << oloc.nspace << dendl;
   lock->Lock();
   objecter->mutate(oid, oloc,
                   *o, snapc, ut, 0,
-                  onack, NULL, &ver);
+                  NULL, oncommit, &ver);
   lock->Unlock();
 
   mylock.Lock();