On Mon, 1 Aug 2011, Gregory Farnum wrote:
> On Mon, Aug 1, 2011 at 8:23 AM, Yehuda Sadeh Weinraub
> <[email protected]> wrote:
> > The osd first sends the ack when it receives the request
> 
> Actually it sends an ack when the request is applied in-memory to all
> the up OSDs in the PG. :)

That was the original intent, at least.  More precisely..

 * ACK means the request is in the page/buffer cache on all replicas
 * COMMIT means the request is on stable storage on all replicas
 * COMMIT implies ACK.

With a non-btrfs fs (ext4, etc.), however, the OSD is doing writeahead 
journaling, in which means the commit happens before the write is applies 
to the fs, and clients just get COMMIT (which implies ACK).  

The OSD has internal locking to ensure that behavior is consistent from 
the client's perspective.  That is, after getting a COMMIT, any subsequent 
read will return the new data (even if the read request has to wait on the
OSD to be applied to the fs).

This should go in the wiki too...

sage

--
To unsubscribe from this list: send the line "unsubscribe ceph-devel" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to