New client protocol mode: serverload
Short, concise description of the idea
Add a new client protocol mode that would return the load on the server, thus allowing clients to modify their behavior based on server status.
Full description of the idea
Add a mode to the client protocol that allows server load to be returned in some easily-parsable, easily-interpreted way. (Whether this is a number, or something like "low", "medium", "high", "danger", whatever, I leave to the wisdom of others.)
Also allow clients to pass a key (serverload=1, or whatever) in the login protocol mode in order to obtain the server load at login.
An ordered list of benefits
Allows client authors to create clients that modify their behavior based on the server load.
Example: Client increases checkfriends polling interval (or turns it off entirely) under conditions of high load.
Example: Client queues posts for later posting under conditions of high load.
Example: Client looks at local cache of moods, friends groups, communities, etc. rather than issuing server query to download them.
An ordered list of problems/issues involved
Potentially reduces load on the servers during high loads, by causing clients to be respectful of load conditions.
Reduces user frustration to slow server responses, by having client mask some of the behavior caused by high loads.
An organized list, or a few short paragraphs detailing suggestions for implementation
Add new client protocol mode to both flat and XMLRPC interfaces.
Base "load" on some easily-polled system metric (system load directly, number of database queries/second, or some combination thereof).
Load metric returned should respect the ljfastserver cookie, since presumably the paid and free servers may be operating under different degrees of load.