Subject: Re: POHMELFS high performance network filesystem. Cache coherency, transactions, parallels.

From: Jeff Garzik <[email-masked]>
Date: Sun, 25 May 2008 21:41:19 -0400

Evgeniy Polyakov wrote on the blog page:
> Probably there will be some kind of a status messages for servers (i.e.
> going offline, do not send me data, or I'm becoming slow, do not read
> from me and so on). 

Often you can capture this information in a more scalable manner, by 
having the clients measure an observable _output_ such as latency, over 
time.

Each transaction gives the client new feedback about the server(s) being 
offline (i.e. timeout), becoming slow, etc.

Another potential tool is having the server(s) send an abstract number, 
from 0-100, indicating their level of desire for new { read | write } 
transactions.  Let us call this client hint "weight".  Rather than have 
a bunch of status messages that indicate server load average, or 
do-not-read state, summarize this information into read_weight and 
write_weight hints to the client.

With just a few (two?) simple variables, the client is given the ability 
to automatically balance and scale load across the cluster, work around 
failing servers, etc.

Write balancing need not be overly complex...

	Jeff