MySQL Proxy 0.6.0 has been tagged and should hit the mirrors near you pretty soon.
In the last 3 month of development we added a lot more features to the proxy-core which should bring the proxy closer to your needs. As always the proxy is transparent to your application, no requirement for a special language, no special needs for a platform and all customizable for your needs.
The most powerful feature is Read/Write Splitting which allows you to scale a application which is unaware of replication automaticly cross several slaves without changes to your application. Instance Scale Out we say.
The Proxy also became a 1st class citizen in the MySQL world with full docs, win32 support and easy to install.
New Features
Read/Write Splitting
The most powerful feature for all users looking for scale out. Read about the details and how we handle the special cases in the lua-scripting layer.
Query Statistics
By just passing through the queries and utilizing a SQL tokenizer we are now able to analyze Queries and build statistics across them to make it easier for you to tune your SQL and decide which queries you want to concentrate on most.
Query Manipulation
More interesting for the futures are the ideas around the Global Transaction ID which tags Transactions automaticly and globally in your replication setup. Very useful if you have to know if a slave knows about your last transaction on the master or when you have to turn a slave into a master:
LUA Scripting + Tutorials
We don't want to forget that all the above features are driving a by scripting engine. All the code is included and documented in the package and we made sure that the tutorials cover all pieces of the proxy. Read http://dev.mysql.com/tech-resources/articles/proxy-gettingstarted.html as a jump start.
Query Filtering and Blocking
You can use the proxy to block users or log the whole authentication face to see which users fail to log in and use the wrong passwords. Or how about filtering SQL injections before they hit the server ? The proxy gives you access to this information.
ChangeLog
- added
--no-daemon
and--pid-file
- added
--no-proxy
to disable the proxy - added test-cases
- added support for proxy.response.packets
- added hooks for
read_auth()
,read_handshake()
andread_auth_result()
- added support in
read_query_result()
to overwrite the result-set - added connection pooling
- added a global lua-scope
proxy.global.*
- added support for listening UNIX sockets
- added handling of
proxy.connection.backend_ndx
inconnect_server()
andread_query()
aka read/write splitting -
added tokenizer for the SQL syntax
-
fixed decoding of len-encoded ints for 3-byte notation
- fixed check for glib2 to require at least 2.6.0
- fixed mem-leak with proxy.response.* is used
- fixed handling of (SQL) NULL in result-sets
- fixed inj.resultset.affected_rows on SELECT queries
- fixed len-encoding on
proxy.resulsets
- fixed assertion when all backends are down and we try to connect
- fixed assertion when connection to the MySQL 6.0.1
- fixed crash if proxy.connection is used in
connect_server()
- fixed connection-stalling if
read_query_result()
throws anassert()
ion - fixed assertion at
COM_SHUTDOWN
(#29719) - fixed assertion at login with empty password + empty default db (#29719)
- fixed assertion on result-packets like
[ field-len | fields | EOF | ERR ]
(#29732) - fixed compilation on win32
- fixed assertion on
COM_BINLOG_DUMP
(#29764)
Comments