Le Monday 04 Nov 2013 à 19:33:21 (+0800), Fam Zheng a écrit : > > On 11/04/2013 07:06 PM, Kevin Wolf wrote: > >Am 04.11.2013 um 10:48 hat Fam Zheng geschrieben: > >>On 11/04/2013 05:31 PM, Stefan Hajnoczi wrote: > >>>On Wed, Oct 30, 2013 at 02:49:32PM +0100, Markus Armbruster wrote: > >>>>The first proposal is to add another parameter, say "id". Users can > >>>>then refer either to an arbitrary BDS by "id", or (for backward > >>>>compatibility) to the root BDS by "device". When the code sees > >>>>"device", it'll look up the BB, then fetch its root BDS. > >>>> > >>>>CON: Existing parameter "device" becomes compatibility cruft. > >>>> > >>>>PRO: Clean and obvious semantics (in my opinion). > >>>This proposal gets my vote. > >>> > >>>>The second proposal is to press the existing parameter "device" into > >>>>service for referring to BDS node_name. > >>>> > >>>>To keep backward compatibility, we obviously need to ensure that > >>>>whenever the old code accepts a value of "device", the new code accepts > >>>>it as well, and both resolve it to the same BDS. > >>>Different legacy commands given the same device name might need to > >>>operate on different nodes. > >>Could you give an example for this? > >> > >> > >>>Dynamic renaming does not solve this > >>>problem, so I'm not convinced we can always choose a device name > >>>matching a node name. > >>> > >>>Device name commands are higher-level than graph node commands. For > >>>example, block_set_io_throttle makes sense on a device but less sense on > >>>a graph node, unless we add the implicit assumption that the new > >>>throttling node is created on top of the given node or updated in place > >>>if the throttling node already exists (!!). > >>Throttling a node could be useful too, for example if we want to > >>throttle backing_hd which is on shared storage, but not to throttle > >>on the local image. > >> > >>My ignorant question is: Why can't we just use one namespace, make > >>sure no name collision between node_name and device_name, or even > >>just drop device_name, so we treat the root node's node_name as > >>device_name? For commands that only accept a device, this can be > >>enforced in its implementation by checking against the whole graph > >>to verify this. > >Markus described it somewhere in this thread: Live snapshots. > >Currently, the device_name moves to the new BDS on the top (and > >compatibility requires us to keep it that way), whereas a node name > >should, of course, stay at its node. > > > >When you consider this, the single namespace, as much as I would have > >loved it, is pretty much dead.
Good everyone agree on the direction to take. I'll write some code. Best regards Benoît > > Thanks for explaining (again). I get the reason now. > > Fam >