lockspace interface

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi

What's the purpose of two-level uuid-locking?
I.e. you call
lockspace_handle = dm_cluster_lock_init(char *uuid1)
and then
dm_cluster_lock_by_str(void *lockspace_handle, char *uuid2, ...)

Why not use just one uuid?

Also think that locking will be heavily repeated (at least on a single 
node), so it is needed to make lock as fast as possible --- without any 
string operations, hashing, searching, associated spinlocks.

I'd propose to change the interface to

lockspace_handle = dm_cluster_lock_init(char *uuid)
dm_cluster_lock_by_str(void *lockspace_handle, ...)

--- assume that "uuid" already uniquely identifies the snapshot --- and 
that second uuid is unnecessary. You can then get rid of "find_dcl" 
function and its complexities (spinlock, list walking, strlen, strcmp) --- 
so that they won't be executed on the fast path --- and lockspace_handle 
could be a single pointer to struct dm_cluster_lock.

Mikulas

--
dm-devel mailing list
dm-devel@xxxxxxxxxx
https://www.redhat.com/mailman/listinfo/dm-devel

[Index of Archives]     [DM Crypt]     [Fedora Desktop]     [ATA RAID]     [Fedora Marketing]     [Fedora Packaging]     [Fedora SELinux]     [Yosemite Discussion]     [KDE Users]     [Fedora Docs]

  Powered by Linux