Re: radosgw question

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Tue, 20 Sep 2011, Henry C Chang wrote:
> 2011/9/20 Yehuda Sadeh Weinraub <yehudasa@xxxxxxxxx>:
> > On Tue, Sep 20, 2011 at 1:36 AM, Henry C Chang <henry.cy.chang@xxxxxxxxx> 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 majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [CEPH Users]     [Ceph Large]     [Information on CEPH]     [Linux BTRFS]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]
  Powered by Linux