On Mon, Jul 1, 2019 at 8:34 PM Jason Dillaman <jdillama@xxxxxxxxxx> wrote: > > On Tue, Jun 25, 2019 at 10:44 AM Ilya Dryomov <idryomov@xxxxxxxxx> wrote: > > > > Since the dawn of time it had been assumed that a single object request > > spawns a single OSD request. This is already impacting copyup: instead > > of sending empty and current snapc copyups together, we wait for empty > > snapc OSD request to complete in order to reassign obj_req->osd_req > > with current snapc OSD request. Looking further, updating potentially > > hundreds of snapshot object maps serially is a non-starter. > > > > Replace obj_req->osd_req pointer with obj_req->osd_reqs list. Use > > osd_req->r_unsafe_item for linkage -- it's used by the filesystem for > > a similar purpose. > > Nit: just curious on the history of "r_unsafe_item"'s name. Since it > would be re-used twice for an osd request list, should (could) it be > renamed? This is from when we had safe and unsafe replies (commit vs ack). It has since become a private list item for use by libceph clients. I'll rename it to r_private_item. Thanks, Ilya