On Thu, Aug 9, 2018 at 9:57 AM, Sam Kumar <samkumar99@xxxxxxxxx> wrote: > Hi Joao, > Thanks for your response, and sorry for posting my original question > on the wrong mailing list. > > Based on your explanation, it seems that reads and writes to the same > object (key-value pair) in RADOS will be linearizable, because: > > 1. the OSD that is the "primary" for a PG handles all requests for an > object in that PG, and > 2. at any one time, at most one OSD thinks it's the "primary" for a > particular PG (as explained in Section 3.2 of > https://ceph.com/wp-content/uploads/2016/08/weil-rados-pdsw07.pdf). > > Am I correct that RADOS provides linearizability for this reason? Yes, any given RADOS object is linearizable. (It in fact has a log that is literally linear.) Trying to extend language about linearizability out to a distributed system can get a little weird so if you want more extended assertions you'll need to define terms quite specifically. -Greg > > -Sam > > On Thu, Aug 9, 2018 at 1:22 AM, Joao Eduardo Luis <joao@xxxxxxx> wrote: >>> On 08/08/2018 11:44 PM, Sam Kumar wrote: >>>> But, what specific consistency properties are guaranteed by Ceph RADOS? >>>> In particular, does it guarantee consistency in the classic sense (i.e., >>>> linearizability) or something weaker? >>>> >>>> At a high level, based on the design of Ceph, it seems like it should be >>>> linearizable (as it uses stable hashing in the common case and Paxos on >>>> failure). But I wanted to ask the community since I couldn't find >>>> RADOS's specific consistency property documented anywhere. >> >> Paxos is only used by the monitors, and is relied upon to maintain the >> cluster state (i.e., mostly maps that allow clients to figure out where >> the data is). >> >> The data consistency properties are guaranteed by the OSDs. They ensure >> we get strong consistency semantics by serializing the requests per-pg. >> >> -Joao > -- > To unsubscribe from this list: send the line "unsubscribe ceph-devel" in > the body of a message to majordomo@xxxxxxxxxxxxxxx > More majordomo info at http://vger.kernel.org/majordomo-info.html