How and when did you compare the IOPS from the clone against the IOPS from the parent? On Mon, Aug 15, 2016 at 11:58 PM, Ridge Chen <ridge.chen@xxxxxxxxx> wrote: > Hi > > The parent image of "clone-vol1", which is "ori-vol1", is not touched > during the test. > > Regards > Ridge > > 2016-08-16 10:22 GMT+08:00 Jason Dillaman <jdillama@xxxxxxxxxx>: >> The "assert object exists" check is just a "stat" op inserted before >> the write op in the same transaction. If the object doesn't exist >> (i.e. a clone copy-on-write is required), the transaction will fail >> within the OSD and librbd will know it needs to perform a copy-up. >> However, in your case, this stat op should be essentially a no-op so I >> would expect zero performance penalty. >> >> Do you rebuild your images after every test run? I ask because one big >> difference is that when you are writing to the parent image, it has a >> snapshot so the first write to a backing object would require a >> copy-on-write operation within the OSD. >> >> >> >> On Mon, Aug 15, 2016 at 10:05 PM, Ridge Chen <ridge.chen@xxxxxxxxx> wrote: >>> Hi >>> >>> Thanks for your quick response. >>> >>> Yes, the result is similar with object-map disabled. And in all my >>> tests the librbd cache is disabled. >>> >>> Could you explain more about the additional "assert object exists" >>> operation? what it does in osd side? >>> >>> And can we bypass the operation in this very common case based on the >>> object-map feature? >>> >>> Regards, >>> Ridge >>> >>> 2016-08-15 20:16 GMT+08:00 Jason Dillaman <jdillama@xxxxxxxxxx>: >>>> On Sun, Aug 14, 2016 at 10:41 PM, Ridge Chen <ridge.chen@xxxxxxxxx> wrote: >>>>> I have tested on hammer and jewel, the results are similar. Is it expected? >>>> >>>> In this case, there actually would not be an extra copy-up since you >>>> already performed the necessary copy-ups during the "dd" against >>>> "clone-vol1". The only difference, on the librbd side, is that the >>>> write operation would have an additional "assert object exists" >>>> operation before the write operation. >>>> >>>> Do you see similar differences with the librbd cache disabled and the >>>> object map disabled? >>>> >>>> >>>> >>>> -- >>>> Jason >> >> >> >> -- >> Jason -- Jason -- 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