On Thu, Dec 5, 2019 at 11:14 PM Li Wang <laurence.liwang@xxxxxxxxx> wrote: > > Hi Jason, > We found the synchronous process of object map, which, as a result, > write two objects > every write greatly slow down the first write performance of a newly > created rbd by up to 10x, > which is not acceptable in our scenario, so could we do some > optimizations on it, > for example, batch the map writes or lazy update the map, do we need > maintain accurate > synchronization between the map and the data objects? but after a > glimpse of the librbd codes, > it seems no transactional design for the two objects (map object and > data object) write? If you don't update the object-map before issuing the first write to the associated object, you could crash and therefore the object-map's state is worthless since you couldn't trust it to tell the truth. The cost of object-map is supposed to be amortized over time so the first writes on a new image will incur the performance hits, but future writes do not. The good news is that you are more than welcome to disable object-map/fast-diff if the performance penalty is too great for your application -- it's not a required feature of RBD. > > Cheers, > Li Wang > -- Jason