On Tue, 20 Sep 2011, Henry C Chang wrote:
> 2011/9/20 Yehuda Sadeh Weinraub <[email protected]>:
> > On Tue, Sep 20, 2011 at 1:36 AM, Henry C Chang <[email protected]> 
> > wrote:
> >> Hi,
> >>
> >> I have a question about the radosgw.
> >>
> >> The radosgw uses an object to record the buckets owned by one user
> >> account. However, suppose that the user account is shared by multiple
> >> users, and these users connect to the radosgw concurrently. If, say,
> >> user A creates bucket B1 and user B deletes bucket B2 at the same
> >> time, they will both update the object. Since it seems radosgw has no
> >> lock mechanism for object update, the problems would occurs - either
> >> the created bucket will be lost or the deleted bucket can still be
> >> listed but dne actually.
> >>
> >> I know it may be a rare case, just wondering if there is away to
> >> handle this situation.
> >>
> >
> > The RADOS gateway uses RADOS tmap atomic operations for modifying this
> > object. The tmap operations allows it to either add, remove, or modify
> > entries in this object without the need for locking and without
> > possible race conditions.
> >
> > Yehuda
> >
> 
> That's cool. If possible, could you briefly explain how tmap operation
> works or is there any document I can refer to?

The best reference is probably librados.h.  That describes the current 
interface, at least.  You'll find the implementation in 
osd/ReplicatedPG.cc.. search for TMAP on do_osd_ops().

https://github.com/NewDreamNetwork/ceph/blob/master/src/include/rados/librados.h

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