[Gluster-devel] Can I bring a development idea to Dev's attention?

Ed W lists at wildgooses.com
Thu Sep 23 20:32:32 UTC 2010


  Hi Glusterfs Dev's,

I might be trying to teach you to suck eggs, but I was reading through 
the publications on http://www.xtreemfs.org/publications.php and one of 
the ideas there seemed very relevant to gluster

Please have a look at their FatLease papers and the Paxos lease 
negotiation algorithm.  It was new to me, but seems like an elegant and 
robust (google use it) way of managing a distributed lock scenario?

In particular it would seem to be a very interesting way to introduce 
the idea of optimistic locking to the gluster type infrastructure.  What 
I'm thinking here is the situation where you have a client talking to a 
single brick in a replicated set, that it can effectively optimistically 
lock a localised set of files/directories on that brick and so further 
reads/modifications can be lazily written out to other servers (without 
compromising coherency).  If a read/write goes to one of the other 
replicas then of course it must first break the other servers optimistic 
lock before continuing and effectively you temporarily revert back to 
the current situation where every file access causes a network access to 
all other servers.

The win is clearly where you end up with clients localising their access 
for certain files to certain servers and that server will then benefit 
from holding an optimistic lock, since no network activity is generated 
for further read access and lazy writes become possible without split 
brain risk.

eg consider a master/master setup with serveral webservers.  Especially 
where each physical machine touches only a subset of the files (eg each 
machine usually only serves a subset of data), then that machine can 
start to access the gluster share at basically native disk speeds, 
having acquired an optimistic lock on that subset of data (no need to 
check with other bricks since we now have a lock on the data).  This 
would seem to be a huge win for a large class of problems?

(Thinking about it another way, it's a bit like a standard optimistic 
locking architecture, where one server gets promoted to become the 
master reader/writer at a time (for a subset of files) and no other 
server can read/write those files without first breaking the lock by 
requesting to become the master. The difference is that Paxos allows 
this to be done robustly and efficiently without a centralised lock server)

The clever part seems to be the fairly stateless method that is used to 
bootstrap a system with stateful leases (read the publications).  I 
hadn't come across the Fatlease/Paxos idea before and it seems extremely 
clever

Cheers

Ed W




More information about the Gluster-devel mailing list