About merovingian and the MySQL protocol

Fabian Groffen fabian at monetdb.org
Mon Feb 23 10:35:40 CET 2015

Hiya all,

A long time ago, I examined the MySQL client-server protocol, to
understand why it is performing so well.  This resulted in the idea
(back then) to create a MySQL server implementation in merovingian, that
proxied commands to mserver/mapi calls.  This to possibly gain from
performance benefits, but obviously more to open up the world of MySQL
clients that exist to MonetDB.  A minimalistic start was added to the
code [1], but nothing more than that ever emerged.

Years later, I ended up at a similar quest, one where I had to implement
the MySQL server protocol and perform the rituals to make a MySQL client
believe it is dealing with a proper server [2].  Objective is different
here (some will recognise merovingian's multiplex-funnel feature), but
the codepath is largely re-usable for the purpose of the above.

Being rusty with the MonetDB code-base, not having followed any of its
developments lately, whilst on this island in the sun, I'm wondering if
it makes sense to implement the first at all, or whether it is better to
simply remove the if-deffed code, for it is incomplete.



[1] http://dev.monetdb.org/hg/MonetDB/file/fb8e50da2917/tools/merovingian/daemon/proxy.c#l287
[2] https://github.com/grobian/mysqlpq

More information about the developers-list mailing list