On 01/20/2017 12:00 PM, Alex Bligh wrote: > >> On 20 Jan 2017, at 17:04, Vladimir Sementsov-Ogievskiy >> <vsement...@virtuozzo.com> wrote: >> >> About extents: is 32bit length enough? We will have to send 4096 for empty >> 16tb disk.. > > The nbd protocol uniformly uses 32 bit lengths (for better or for worse). > This is baked into the specification heavily. > > I'm not sure sending 4,096 items for an empty 16TB disk is any great hardship > to be honest.
If it truly matters, an idea that has already been floated on the list is to add a new NBD_CMD_FLAG_SCALE (or some other spelling) that states that a particular command is sending lengths scaled by a particular factor (by the block size? obviously it would have to be better specified). Under this idea, the scaling factor would allow you to report larger extents for fewer back-and-forth operations, but it gets tricky if the scaling is allowed to get larger than the minimum granularity between extent changes. The other idea that has been floated is a way to report whether the entire export is known to be all-zero content at the time the client connects, which would trade 4096+ queries (you'd actually have to do more than 4096 queries, since length is < 4G, not <= 4G) with a single piece of information at the time the client connects. Either way, discussion on such enhancements are probably worth a new thread. -- Eric Blake eblake redhat com +1-919-301-3266 Libvirt virtualization library http://libvirt.org
signature.asc
Description: OpenPGP digital signature