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

Gordan Bobic gordan at bobich.net
Fri Sep 24 08:42:45 UTC 2010


This sounds remarkably similar to how DLM in GFS works. It caches file 
locks, so performance is reasonable where a set of files is only 
accessed from one of the nodes. Might it be easier to interface with DLM 
for locking control instead of implementing such a thing from scratch?

The bulk of the performance hit comes from ping times, rather than 
bandwidth issues / writeback caching. Latencies on a LAN are typically 
100us on Gb ethernet, vs. a typical RAM latency of 50ns, so call it a 
2000x difference. If this overhead on file lock acquisition can be 
avoided, it'll make a lot more difference than data caching.

Gordan

Ed W wrote:
>   On 24/09/2010 05:10, Craig Carl wrote:
>> Ed -
>>    If I understand it looks like you are recommending a method for 
>> implementing an asynchronous replication solution as a possible 
>> alternative to the current synchronous replication method?
> 
> I think there are two main use cases which benefit:
> 
> 1) Master/Master, epecially where the client is itself one of the 
> bricks.  Eg recently there have been several threads on poor performance 
> using gluster as the backing store for a web server.  Here a common 
> situation might be that we have a backing store holding say two web 
> applications, each frontend server generally only serves one of the two 
> applications and so we want to avoid network accesses in the common case 
> that files typically have affinity for being used by just one of the 
> servers.
> 
> 2) Achieving effectively the benefit of a large writeback cache, yet 
> without compromising coherency, in the face of larger RTT times between 
> bricks.  This could be anything from a 100mbit IP link between heavily 
> accessed servers, to a WAN. 
> 
> Optimistic locking is basically a way of optimising for the case where a 
> single brick at a time tends to access a subset of files.  It does 
> absolutely nothing for the situation that you have more than one brick 
> competing for access to the same file (I think it's obvious that the 
> latter situation is hard to improve anyway)
> 
> So really optimistic locking is a performance improvement in any 
> situation where:
> 
> - One server accesses a file more than once in a row, before any other 
> server requests access (doesn't matter whether its a read or write)
> - The above also implies that we will get maximum benefit in the case 
> where there is relatively large RTT times between servers (this would 
> include even gigabit for the case of a heavily used server though)
> - We can also infer that this optimisation benefits us most if we can 
> tweak our applications to have some kind of affinity to prefer a given 
> server for a given subset of files (often this is very easily done for a 
> whole class of applications, eg webservers point A records to specific 
> servers, mailservers trivially route users to their preferred storage 
> server, geographic clustering tends to take care of itself if the client 
> isn't in a rocket ship, etc)
> 
> OK, so that's "optimistic locking" and the reason why it would be nice 
> to have it.  Traditionally this is done using a shared lock server 
> (single point of failure).  However, my suggestion was to read up on the 
> algorithms in the publications list, which show how it's possible to 
> implement a fault tolerant, shared nothing, lock server (cool!).  Now we 
> have a lock server in the style of gluster, where there is no single 
> point of failure!
> 
> So I think really it's two feature requests:
> 
> 1) Can you please implement optimistic locking optimisations using a 
> lock server
> 2) Can you please make the lock server fault tolerant, fully 
> distributed, shared nothing, eg using a Paxos derivative
> 
> Cheers
> 
> Ed W
> 
> 
> ------------------------------------------------------------------------
> 
> _______________________________________________
> Gluster-devel mailing list
> Gluster-devel at nongnu.org
> http://lists.nongnu.org/mailman/listinfo/gluster-devel





More information about the Gluster-devel mailing list