Thank you Greg, it is now clear for us and the option is only available in C++ , we need to rewrite the client code with c++ .
Thanks, Muthu On Fri, Aug 2, 2019 at 1:05 AM Gregory Farnum <[email protected]> wrote: > On Wed, Jul 31, 2019 at 10:31 PM nokia ceph <[email protected]> > wrote: > > > > Thank you Greg, > > > > Another question , we need to give new destination object , so that we > can read them separately in parallel with src object . This function > resides in objector.h , seems to be like internal and can it be used in > interface level and can we use this in our client ? Currently we use > librados.h in our client to communicate with ceph cluster. > > copy_from is an ObjectOperations and exposed via the librados C++ api > like all the others. It may not be in the simple > <function_name>(<object>, <data>, ....) interfaces. It may also not be > in the C API? > > > Also any equivalent librados api for the command rados -p poolname <src > object> <dst object> > > It's using the copy_from command we're discussing here. You can look > at the source as an example: > https://github.com/ceph/ceph/blob/master/src/tools/rados/rados.cc#L497 > -Greg > <https://github.com/ceph/ceph/blob/master/src/tools/rados/rados.cc#L497-Greg> > > > > > Thanks, > > Muthu > > > > On Wed, Jul 31, 2019 at 11:13 PM Gregory Farnum <[email protected]> > wrote: > >> > >> > >> > >> On Wed, Jul 31, 2019 at 1:32 AM nokia ceph <[email protected]> > wrote: > >>> > >>> Hi Greg, > >>> > >>> We were trying to implement this however having issues in assigning > the destination object name with this api. > >>> There is a rados command "rados -p <poolname> cp <src obj> <dst obj>" > , is there any librados api equivalent to this ? > >> > >> > >> The copyfrom operation, like all other ops, is directed to a specific > object. The object you run it on is the destination; it copies the > specified “src” object into itself. > >> -Greg > >> > >>> > >>> Thanks, > >>> Muthu > >>> > >>> On Fri, Jul 5, 2019 at 4:00 PM nokia ceph <[email protected]> > wrote: > >>>> > >>>> Thank you Greg, we will try this out . > >>>> > >>>> Thanks, > >>>> Muthu > >>>> > >>>> On Wed, Jul 3, 2019 at 11:12 PM Gregory Farnum <[email protected]> > wrote: > >>>>> > >>>>> Well, the RADOS interface doesn't have a great deal of documentation > >>>>> so I don't know if I can point you at much. > >>>>> > >>>>> But if you look at Objecter.h, you see that the ObjectOperation has > >>>>> this function: > >>>>> void copy_from(object_t src, snapid_t snapid, object_locator_t > >>>>> src_oloc, version_t src_version, unsigned flags, unsigned > >>>>> src_fadvise_flags) > >>>>> > >>>>> src: the object to copy from > >>>>> snapid: if you want to copy a specific snap instead of HEAD > >>>>> src_oloc: the object locator for the object > >>>>> src_version: the version of the object to copy from (helps identify > if > >>>>> it was updated in the meantime) > >>>>> flags: probably don't want to set these, but see > >>>>> PrimaryLogPG::_copy_some for the choices > >>>>> src_fadvise_flags: these are the fadvise flags we have in various > >>>>> places that let you specify things like not to cache the data. > >>>>> Probably leave them unset. > >>>>> > >>>>> -Greg > >>>>> > >>>>> > >>>>> > >>>>> On Wed, Jul 3, 2019 at 2:47 AM nokia ceph <[email protected]> > wrote: > >>>>> > > >>>>> > Hi Greg, > >>>>> > > >>>>> > Can you please share the api details for COPY_FROM or any > reference document? > >>>>> > > >>>>> > Thanks , > >>>>> > Muthu > >>>>> > > >>>>> > On Wed, Jul 3, 2019 at 4:12 AM Brad Hubbard <[email protected]> > wrote: > >>>>> >> > >>>>> >> On Wed, Jul 3, 2019 at 4:25 AM Gregory Farnum <[email protected]> > wrote: > >>>>> >> > > >>>>> >> > I'm not sure how or why you'd get an object class involved in > doing > >>>>> >> > this in the normal course of affairs. > >>>>> >> > > >>>>> >> > There's a copy_from op that a client can send and which copies > an > >>>>> >> > object from another OSD into the target object. That's probably > the > >>>>> >> > primitive you want to build on. Note that the OSD doesn't do > much > >>>>> >> > >>>>> >> Argh! yes, good idea. We really should document that! > >>>>> >> > >>>>> >> > consistency checking (it validates that the object version > matches an > >>>>> >> > input, but if they don't it just returns an error) so the client > >>>>> >> > application is responsible for any locking needed. > >>>>> >> > -Greg > >>>>> >> > > >>>>> >> > On Tue, Jul 2, 2019 at 3:49 AM Brad Hubbard < > [email protected]> wrote: > >>>>> >> > > > >>>>> >> > > Yes, this should be possible using an object class which is > also a > >>>>> >> > > RADOS client (via the RADOS API). You'll still have some > client > >>>>> >> > > traffic as the machine running the object class will still > need to > >>>>> >> > > connect to the relevant primary osd and send the write > (presumably in > >>>>> >> > > some situations though this will be the same machine). > >>>>> >> > > > >>>>> >> > > On Tue, Jul 2, 2019 at 4:08 PM nokia ceph < > [email protected]> wrote: > >>>>> >> > > > > >>>>> >> > > > Hi Brett, > >>>>> >> > > > > >>>>> >> > > > I think I was wrong here in the requirement description. It > is not about data replication , we need same content stored in different > object/name. > >>>>> >> > > > We store video contents inside the ceph cluster. And our > new requirement is we need to store same content for different users , > hence need same content in different object name . if client sends write > request for object x and sets number of copies as 100, then cluster has to > clone 100 copies of object x and store it as object x1, objectx2,etc. > Currently this is done in the client side where objectx1, object > x2...objectx100 are cloned inside the client and write request sent for all > 100 objects which we want to avoid to reduce network consumption. > >>>>> >> > > > > >>>>> >> > > > Similar usecases are rbd snapshot , radosgw copy . > >>>>> >> > > > > >>>>> >> > > > Is this possible in object class ? > >>>>> >> > > > > >>>>> >> > > > thanks, > >>>>> >> > > > Muthu > >>>>> >> > > > > >>>>> >> > > > > >>>>> >> > > > On Mon, Jul 1, 2019 at 7:58 PM Brett Chancellor < > [email protected]> wrote: > >>>>> >> > > >> > >>>>> >> > > >> Ceph already does this by default. For each replicated > pool, you can set the 'size' which is the number of copies you want Ceph to > maintain. The accepted norm for replicas is 3, but you can set it higher if > you want to incur the performance penalty. > >>>>> >> > > >> > >>>>> >> > > >> On Mon, Jul 1, 2019, 6:01 AM nokia ceph < > [email protected]> wrote: > >>>>> >> > > >>> > >>>>> >> > > >>> Hi Brad, > >>>>> >> > > >>> > >>>>> >> > > >>> Thank you for your response , and we will check this > video as well. > >>>>> >> > > >>> Our requirement is while writing an object into the > cluster , if we can provide number of copies to be made , the network > consumption between client and cluster will be only for one object write. > However , the cluster will clone/copy multiple objects and stores inside > the cluster. > >>>>> >> > > >>> > >>>>> >> > > >>> Thanks, > >>>>> >> > > >>> Muthu > >>>>> >> > > >>> > >>>>> >> > > >>> On Fri, Jun 28, 2019 at 9:23 AM Brad Hubbard < > [email protected]> wrote: > >>>>> >> > > >>>> > >>>>> >> > > >>>> On Thu, Jun 27, 2019 at 8:58 PM nokia ceph < > [email protected]> wrote: > >>>>> >> > > >>>> > > >>>>> >> > > >>>> > Hi Team, > >>>>> >> > > >>>> > > >>>>> >> > > >>>> > We have a requirement to create multiple copies of an > object and currently we are handling it in client side to write as separate > objects and this causes huge network traffic between client and cluster. > >>>>> >> > > >>>> > Is there possibility of cloning an object to multiple > copies using librados api? > >>>>> >> > > >>>> > Please share the document details if it is feasible. > >>>>> >> > > >>>> > >>>>> >> > > >>>> It may be possible to use an object class to accomplish > what you want > >>>>> >> > > >>>> to achieve but the more we understand what you are > trying to do, the > >>>>> >> > > >>>> better the advice we can offer (at the moment your > description sounds > >>>>> >> > > >>>> like replication which is already part of RADOS as you > know). > >>>>> >> > > >>>> > >>>>> >> > > >>>> More on object classes from Cephalocon Barcelona in May > this year: > >>>>> >> > > >>>> https://www.youtube.com/watch?v=EVrP9MXiiuU > >>>>> >> > > >>>> > >>>>> >> > > >>>> > > >>>>> >> > > >>>> > Thanks, > >>>>> >> > > >>>> > Muthu > >>>>> >> > > >>>> > _______________________________________________ > >>>>> >> > > >>>> > ceph-users mailing list > >>>>> >> > > >>>> > [email protected] > >>>>> >> > > >>>> > http://lists.ceph.com/listinfo.cgi/ceph-users-ceph.com > >>>>> >> > > >>>> > >>>>> >> > > >>>> > >>>>> >> > > >>>> > >>>>> >> > > >>>> -- > >>>>> >> > > >>>> Cheers, > >>>>> >> > > >>>> Brad > >>>>> >> > > >>> > >>>>> >> > > >>> _______________________________________________ > >>>>> >> > > >>> ceph-users mailing list > >>>>> >> > > >>> [email protected] > >>>>> >> > > >>> http://lists.ceph.com/listinfo.cgi/ceph-users-ceph.com > >>>>> >> > > > >>>>> >> > > > >>>>> >> > > > >>>>> >> > > -- > >>>>> >> > > Cheers, > >>>>> >> > > Brad > >>>>> >> > > _______________________________________________ > >>>>> >> > > ceph-users mailing list > >>>>> >> > > [email protected] > >>>>> >> > > http://lists.ceph.com/listinfo.cgi/ceph-users-ceph.com > >>>>> >> > >>>>> >> > >>>>> >> > >>>>> >> -- > >>>>> >> Cheers, > >>>>> >> Brad >
_______________________________________________ ceph-users mailing list [email protected] http://lists.ceph.com/listinfo.cgi/ceph-users-ceph.com
