Currently mysql connection from clients is handled by mysql-proxy which passes queries to czar and returns query results back to user. This proxy-czar combination has some significant issues which limit what we can do with it:
- very limited possibility to generate data on proxy side (it has to result from SQL query of some sort)
- proxy has very little information about result data and cannot do transformations on that
It looks like we can achieve better result if we can implement our own proxy which can work at the mysql wire-level protocol and integrate that proxy directly into czar. This would eliminate one server process from our current setup and should help both performance and stability.