[Engine-devel] alias in disk instead of name
Michael Pasternak
mpastern at redhat.com
Thu Oct 25 15:47:36 UTC 2012
On 10/23/2012 08:07 PM, Simon Grinberg wrote:
>
> ----- Original Message -----
>> > From: "Charlie" <medievalist at gmail.com>
>> > To: "Simon Grinberg" <simon at redhat.com>
>> > Cc: "engine-devel" <engine-devel at ovirt.org>
>> > Sent: Tuesday, October 23, 2012 7:53:10 PM
>> > Subject: Re: [Engine-devel] alias in disk instead of name
>> >
>> > Why not something like this?
>> >
>> > (pseudocode, using dot for string concatenation):
>> >
>> > $name_prefix = "vmdrive"
>> > $name = get_last_used($name_prefix)
>> > $already_in_use = $TRUE
>> >
>> > while $already_in_use {
>> > prompt "Name of thing? [$name] ", $name
>> > if name_used($name) {
>> > while name_used($name) {
>> > increment_number($name)
>> > }
>> > } else {
>> > $already_in_use = FALSE
>> > }
>> > }
>> >
>> > do_whatever_you_do_with($name)
>> >
>> > store_last_used($name)
>> >
>> > end
>> >
>> >
>> > The increment_number() routine checks to see if the last character is
>> > numeric, and if it is, increments the leftmost contiguous numeric
>> > portion of the string. Otherwise it appends the number zero.
>> >
>> > This does not allow everyone to get any name they want, but you can't
>> > ever satisfy that demand. It supplies reasonable defaults very
>> > quickly and it allows people who want really descriptive names to try
>> > as many as they like.
>> >
>> > The code's built the funny way it is so that you can corrupt the db
>> > that holds the last_used numbers or interrupt the process halfway
>> > through and it still works, only slower, and it should tend to fix
>> > its
>> > own db on the fly when possible.
>> >
>> > There's no provision for simultaneous creation, but that wouldn't be
>> > horribly hard to add, just put a lock on the resource holding
>> > last_used numbers.
>> >
>> > You'd want to reimplement in the most efficient and readable way for
>> > your programming language of choice.
>> >
>> > Did that make any sense? I did it off the top of my head, so it
>> > could
>> > be terribly lame when I look at it tomorrow ;).
> Please don't look at it as pure programming item, nor as a single user in a small data center - in this respect you are right.
> Let's got to a huge organization or to the cloud.
>
> In multi tenant environment this lock means that every time a user tries to change a disk name - all the others are stack
> Don't forget we are discussing thousands of VMs - I'll hate to have this kind of lock just to allow for unique disk names. This is one of the reasons you use UUID to really identify the object in the DB, since it's suppose to guarantee uniqueness without the need to lock everything.
ID available in api, but not in UI, as you told there can be thousands of disks,
and if N of them will share same alias, admin simply won't be able identifying own disk.
--
Michael Pasternak
RedHat, ENG-Virtualization R&D
More information about the Engine-devel
mailing list