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.