[Gluster-devel] Feature review: Improved rebalance performance

Xavier Hernandez xhernandez at datalab.es
Tue Jul 1 09:40:29 UTC 2014


On Tuesday 01 July 2014 02:37:34 Raghavendra Gowdappa wrote:
> > Another thing to consider for future versions is to modify the current DHT
> > to a consistent hashing and even the hash value (using gfid instead of a
> > hash of the name would solve the rename problem). The consistent hashing
> > would drastically reduce the number of files that need to be moved and
> > already solves some of the current problems. This change needs a lot of
> > thinking though.
> 
> The problem with using gfid for hashing instead of name is that we run into
> a chicken and egg problem. Before lookup, we cannot know the gfid of the
> file and to lookup the file, we need gfid to find out the node in which
> file resides. Of course, this problem would go away if we lookup (may be
> just during fresh lookups) on all the nodes, but that slows down the fresh
> lookups and may not be acceptable.

I think it's not so problematic, and the benefits would be considerable.

The gfid of the root directory is always known. This means that we could 
always do a lookup on root by gfid.

I haven't tested it but as I understand it, when you want to do a getxattr on 
a file inside a subdirectory, for example, the kernel will issue lookups on 
all intermediate directories to check, at least, the access rights before 
finally reading the xattr of the file. This means that we can get and cache 
gfid's of all intermediate directories in the process.

Even if there's some operation that does not issue a previous lookup, we could 
do that lookup if it's not cached. Of course if there were many more 
operations not issuing a previous lookup, this solution won't be good, but I 
think this is not the case.

I'll try to do some tests to see if this is correct.

Xavi


More information about the Gluster-devel mailing list