All routers except the binlogrouter now fully implement the JSON
diagnostic entry point. The binlogrouter needs to be handled in a separate
commit as it produces a large amount of diagnostic output.
General code cleanup. Routing error detection now more robust.
Remove some unused code. Debug messages now use "unique_name" when
referring to servers.
Supports hint types:
-master
-slave
-named server
-all
A default action, which is performed when no hint exists or on error,
can be set. The different actions are analogous to the hint types.
A maximum connection number for slaves can be set. If more slaves are
configured for the service, the filter will rotate slaves for new sessions.
Within a session with multiple slaves, the "route_to_slave"-hint will
also rotate among the slave backends.
The hintrouter is now in principle capable of routing requests
to the master or to some slave (in a round robin fashion) based
upon hints set by some earlier filter.
Note that as the router is completely oblivious of transaction
boundaries, using it with transactions and autocommit being off
will not make anyone happy.
Recognizing transaction boundaries using regexes and then pinning
the server until transaction commit would be needed.