Proxy, Proxy, on the Wall, who is the fairest of them all...

« previous entry | next entry »
May. 9th, 2008 | 11:17 am

Dear Lazyweb,

I am tracking three four five lots of different proxies for MySQL today:

http://forge.mysql.com/wiki/MySQL_Proxy
http://consoleninja.net/code/dpm/README.html
http://spockproxy.sourceforge.net/
http://sqlrelay.sourceforge.net/
http://myosotis.continuent.org/HomePage
Proximo

Would someone please do a write up on which is best, which is moving forward, and synopsis the differences? I don't expect a front runner just yet, but it would be nice to see a comparison about how their development is going.

Thanks!
-Brian

BTW I am sorry if I missed a proxy, if you have another one email me or leave a comment.
BBTW I don't consider HScale a proxy, but yes it is damn neat.
BBBTW I think the creation of proxies, points to a trend ;)

Link | Leave a comment | Add to Memories | Tell a Friend

Comments {23}

Missed one!

from: [info]todointx
date: May. 9th, 2008 07:48 pm (UTC)
Link

SQL Relay, http://sqlrelay.sourceforge.net/

Have used it several years before MySQL came into existence.

Reply | Thread

Re: Missed one!

from: [info]todointx
date: May. 9th, 2008 07:48 pm (UTC)
Link

s/MySQL/MySQL proxy/

Reply | Parent | Thread

Brian "Krow" Aker

Re: Missed one!

from: [info]krow
date: May. 9th, 2008 08:55 pm (UTC)
Link

Added yours :)

Reply | Parent | Thread

El JoPe Magnífico

(no subject)

from: [info]jope
date: May. 9th, 2008 08:52 pm (UTC)
Link

Mmm, yes, I keep meaning to arrange a conversation with you about this.

Reply | Thread

Brian "Krow" Aker

(no subject)

from: [info]krow
date: May. 9th, 2008 08:55 pm (UTC)
Link

Are you on the proxy kick as well?

Reply | Parent | Thread

El JoPe Magnífico

(no subject)

from: [info]jope
date: May. 9th, 2008 08:59 pm (UTC)
Link

It pays the bills.

Reply | Parent | Thread

myosotis

from: [info]muzazzi
date: May. 9th, 2008 10:01 pm (UTC)
Link

http://myosotis.continuent.org/HomePage

This one is kind of cute. It's not as flexible as mysql-proxy & friends, but it masquerades as a MySQL or PostgreSQL frontend and connects to (non-MySQL/Postgres) backend servers via JDBC.

Reply | Thread

Me too...

from: [info]jzawodn
date: May. 9th, 2008 10:06 pm (UTC)
Link

I, for one, wish to partake in this harvest of information.

Reply | Thread

Brian "Krow" Aker

Re: Me too...

from: [info]krow
date: May. 9th, 2008 10:36 pm (UTC)
Link

I thought you never did anything with MySQL anymore? :)

Reply | Parent | Thread

Re: Me too...

from: [info]jzawodn
date: May. 9th, 2008 10:39 pm (UTC)
Link

But I still try to stay informed... a little.

Besides, you never know when the opportunity to do something different may arise!

Reply | Parent | Thread

Brian "Krow" Aker

Re: Me too...

from: [info]krow
date: May. 9th, 2008 11:11 pm (UTC)
Link

Very true :)

Reply | Parent | Thread

poon

(no subject)

from: [info]poon
date: May. 10th, 2008 03:36 am (UTC)
Link

I was really disappointed in the MySQL Proxy talk at the conference, so started working on my own... In Erlang (my latest obsession/toy).

It's still vapourware, though I do have it working on my laptop. Eventually I'll check the code in here:

http://code.google.com/p/merp-mysql-proxy/

I doubt this should really make your list, but maybe worth checking on in like a month.

Reply | Thread

Brian "Krow" Aker

(no subject)

from: [info]krow
date: May. 10th, 2008 04:13 pm (UTC)
Link

What all were you disappointed in at the talk?

Reply | Parent | Thread

poon

(no subject)

from: [info]poon
date: May. 10th, 2008 09:02 pm (UTC)
Link

I'm referring to the Tutorial Day (6-hour) talk.

My primary gripe was what was covered; maybe the target audience was too wide. A lot of time was spent talking about Lua (rather than MySQL Proxy, which I was there to learn about), and I expected a lot more technical details of how the Proxy was implemented. I guess if it was split into two talks ("Writing Lua plugins for MySQL Proxy" and "MySQL Proxy Low-Level Details/Implementation") I would have skipped the former and definitely gone to the latter.

The rest of my gripes are not about the talk but about the implementation of the Proxy itself.

The Lua support seems tacked on and poorly thought out. What is exported from the C layer to the Lua layer is incredibly poorly documented. Basically you have to read through all the samples or the C code to try to understand what's exported to Lua and how it modifies the behaviour of the server. If I have to know C and read through a bunch of C code to figure out how to write the plugin, why not just make the plugin interface in C? I don't see the advantage in the Lua support.

The lack of support for chaining plugins is pretty lame (you can only load one lua script/plugin per proxy?).

You have to restart the proxy to make any config changes.

I saw no way for plugins to spin off a thread or do async. i/o (maybe i don't know enough about Lua).

I didn't know about spock proxy until seeing your post. Their differences from Proxy are also in line with some of my gripes and goals (No Lua/Client Auth/Dynamic Pool/etc). If I wasn't obsessed with Erlang at the moment I'd definitely run straight over there and start contributing. I want to see how Erlang TCP services perform and especially how much of an impact it'll have as an observer/logging/statistics 'thing' - theoretically you could do some heavy logging and data analysis with very little impact on the Proxy throughput. If my experiment fails it'll at least be interesting, and I'll definitely turn to Spock next; it seems to me that they are on the right track (for my needs).

Reply | Parent | Thread

Brian "Krow" Aker

(no subject)

from: [info]krow
date: May. 11th, 2008 02:27 am (UTC)
Link

Being a fan of C, I can certainly see the sexiness of writing it in a nice scalable language.

Reply | Parent | Thread

(no subject)

from: [info]jamesd
date: May. 10th, 2008 10:56 pm (UTC)
Link

Proximo.

Reply | Thread

Brian "Krow" Aker

(no subject)

from: [info]krow
date: May. 11th, 2008 02:26 am (UTC)
Link

Have you played with it? It being Perl makes it pretty sexy :)

Reply | Parent | Thread

xb95

(no subject)

from: [info]xb95
date: Jun. 9th, 2008 10:21 pm (UTC)
Link

I don't think anybody has actually played with it besides me, and I wrote it, so I don't think I count. ;-)

It's quite functional and works well for what it does, but it's pure Perl at this point and isn't extremely fast. I think the MySQL Proxy approach of having a C core is a good one, but I ran into the same issues as the above poster - couldn't figure out how to do what I wanted. (Which is mostly documentation and lack of Lua knowledge, I imagine.)

Also, I'm a sucker for Perl. All those years working on Perlbal, the same sort of approach seems like it would work really well for MySQL as well!

Reply | Parent | Thread

dbslayer

from: [info]dgottfrid
date: May. 12th, 2008 02:32 am (UTC)
Link

http://code.nytimes.com/projects/dbslayer

Reply | Thread

matt

(no subject)

from: [info]sent2matt
date: Oct. 9th, 2008 01:47 am (UTC)
Link

Beautiful list, thanks a lot

(I wish I could use openid to leave comments)

Reply | Thread

Brian "Krow" Aker

(no subject)

from: [info]krow
date: Oct. 9th, 2008 02:14 am (UTC)
Link

You can't enable openid on Livejournal without enabling all anonymous comments at the same time :(

Reply | Parent | Thread

matt

(no subject)

from: [info]sent2matt
date: Oct. 9th, 2008 03:46 pm (UTC)
Link

Yep, I've fixed that for the installation of LJ.Rossia.org
but never proposed the change into upstream.

Since the change is quite easy (speaking of technical part)
I suppose they have some social/political issues with it

Reply | Parent | Thread

Brian "Krow" Aker

(no subject)

from: [info]krow
date: Oct. 9th, 2008 03:48 pm (UTC)
Link

There are a lot of folks who would like to see that patch applied :)

Reply | Parent | Thread