[Gluster-devel] Questions about DHT

Kevan Benson kbenson at a-1networks.com
Wed Dec 10 17:25:53 UTC 2008


I have some questions about the new DHT translator that 
http://www.gluster.org/docs/index.php/Understanding_DHT_Translator 
doesn't seem to cover (or does not cover in enough detail).

1) What happens when a node is added to an existing DHT volume with 
files present?

I would think that if you have 4 subvolumes in a DHT, and add a fifth 
volume, approximately 20% of the requests for existing files would be 
mapped to that new sub volume, and fail on request.

2) If a file exists on a DHT sub-volume that it shouldn't be mapped to 
(such as in question #1 after adding a volume), would an ls on the 
container directory (if it was correctly mapped) return data for that file?

e.g.
Glusterfs mount of /mnt/gluster/
DHT sub volume 1 contains /mnt/gluster/testdir/,
/mnt/gluster/testdir/testfile1.dat, /mnt/gluster/testdir/testfile2.dat
of which /mnt/gluster/testdir/testfile2.dat should be on DHT sub volume 
#2, but is not (DHT sub volume #2 added after files created on sub 
volume #1).  What does "ls /mnt/gluster/testdir/" show?  What does "ls 
/mnt/gluster/testdir/testfile2.dat" return?

3) It seems some sort of fallback to unify like file access (for read) 
would fix most these issues.  Does that happen?  Has it been considered 
or is it in planning?  I imagine a single sub volume request utilizing 
DHT info followed up by a unify style request on failure (that is, 
request info from all sub-volumes) would allow for quick DHT access in 
correctly distributed systems with correct (but slower fallback 
behavior).  Caching of secondary requests (unify type) at the client 
level for both success and failure with info on which sub volume to 
access could speed up this as well.

-- 

-Kevan Benson
-A-1 Networks





More information about the Gluster-devel mailing list