Created by trickie and last modified

A mysql-proxy plugin to funnel many front-end connections through a small pool of back-end connections, with the ability to backlog both queries and connection requests. Still very experimental.

Get this branch:
bzr branch lp:~trickie/mysql-proxy/funnel
Only trickie can upload to this branch. If you are trickie please log in for upload directions.

Branch merges

Related bugs

Related blueprints

Branch information

MySQL Proxy

Recent revisions

670. By trickie

add funnel lifecycle msc diagram

669. By nick <nick@nick>

add track-db option

668. By nick <nick@nick>

add chassis-backlog to test utils

667. By nick <nick@nick>

fix build for new plugin location

666. By nick <nick@nick>

add a monitor thread to re-create failed connections when mysqld becomes available again

665. By nick <nick@nick>

fix an issue with failed client connections and backlog starvation

664. By nick <nick@nick>

new connection pool, with backend connections created from the proxy

663. By nick <nick@nick>

fix an issue where a client in backlog dies and the proxy doesn't detect it

662. By nick <nick@nick>

remove redundant keepalive setting and stop retrying backend connects when backend is not available

661. By ramon <email address hidden>

Added keepalive and keepalive options to client sockets

We're facing a problem were at night when traffic is low the loadbalancer kills any open connections
due to timeout, however both client and server still think this connection is alive.
In the morning, all connections become more active fast, resulting in a mass of new client connections
while the old ones still have open sockets on the mysql-proxyed server.
This results in out-of-socket memory errors and a hungup server.

The code adds keepalive options to the client socket which results in sending a keepalive packet
every 2 minutes. This will ensure that the loadbalancer does not kill the connection

Branch metadata

Branch format:
Branch format 6
Repository format:
Bazaar pack repository format 1 with rich root (needs bzr 1.0)
This branch contains Public information 
Everyone can see this information.