funnel - a connection multiplexer mysql-proxy plugin

Registered by trickie

This blueprint outlines a use case and implementation of a connection multiplexer plugin for mysql-proxy.

A multiplexer will allow a large number of front-end client connections to be 'funneled' into a smaller user-defined limit of back-end connections to the mysqld. For all incoming 'queries' a front-end connection will be assigned a back-end connection and then disconnected from that back-end once the query has completed. If a back-end connection is not available and the user-defined maximum of back-end connections has been reached, then the front-end connection will be placed into a backlog queue and the query will be handled once a back-end connection has become available and all prior pending items in the backlog have been cleared.

This primary use case will be for hosting the funnel plugin on the same machine as the mysqld instance, although future enhancements may be made to allow proxying to multiple back-ends

The basic feature set will be:

 * a user-defined maximum of back-end connections
 * a simplified connection pool and backlog queue
 * basic profiling of query time and backlog time
 * usage for a single user at a single host
 * managing/creating/closing back-end connections entirely within the plugin

A more complete feature set will include:

 * more flexible authentication and user account usage
 * transactional/session connection tracking
 * support for multiple backends and query load balancing

Blueprint information

Status:
Started
Approver:
None
Priority:
Undefined
Drafter:
trickie
Direction:
Needs approval
Assignee:
trickie
Definition:
Discussion
Series goal:
None
Implementation:
Good progress
Milestone target:
None
Started by
trickie

Whiteboard

There is currently a proof-of-concept supplying the basic featureset available in trickie's launchpad branch. Details and specifics are still up for discussion.

(?)

Work Items

This blueprint contains Public information 
Everyone can see this information.

Subscribers

No subscribers.