We use ceph to store huge files stripped into small (4mb) objects. Due to the fact that files can be changed unpredictably (data insertion/modification/deletion in any part of a file), we have to copy parts of the objects and it is done via the client. I see the following ways to solve this problem: - implement a client that is launched on the same host as the source osd, that will handle the copy process - add functionality to the osd, so it can do copy to other osds Which way best suits with the ceph ideology? 2013/8/2 Sage Weil <sage@xxxxxxxxxxx>: > Hi Oleg, > > On Fri, 2 Aug 2013, Oleg Krasnianskiy wrote: >> Hi >> >> I have asked this question in ceph-users, but did not get any >> response, so I'll test my luck again, but with ceph-devel =) > > Sorry about that! > >> Is there any way to copy part of one object into another one if they >> reside in different pgs? >> There is rados_clone_range, but it requires both objects to be inside one pg. > > There is no way currently. The clone_range can only (reliably) work on an > OSD if it is stored with the same locator key; otherwise you have a ~R/N > chance of that happening (where N is the number of OSDs, R is the number > of replicas), which isn't worth optimizing for. If the objects aren't > stored together, you need to read and then write the data; this avoids > adding additional complexity to the OSD for minimal gain. > > Do you have a use-case in mind where this functionality is important? > > 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