[erlang-questions] MySQL driver

Henning Diedrich <>
Thu Apr 11 00:21:40 CEST 2013


Hi Dave,

that would be great if you'd join the effort there with the driver!

As I said, I can't wait to bring the mainline up to date, and I'll do it, it was delayed by the focus on Erlvolt recently. (Please check it out: https://github.com/Eonblast/Erlvolt  -- http://blog.voltdb.com/877000-tps-with-erlang-and-voltdb/)

I'll take a look at poolboy. However, I've gone through the pool again and again, and so did some people smarter than me, I think it's solid.

What I came to believe about erlang-mysql-driver was that the concerns of its three different layers had been violated on the way and that will have made it hard to spot errors.

I also have a good orientation about the Emysql forks as they are and which ones are more valuable, as preparation for catching up. It's quite some work there to re-unite them, but additions and corrections are minor, with the exception of two competing approaches to transactions, where I'd love to get your opinion. Yes it grew to be the same "convincing case for the github Network graphs" :-D 

Henning


On Apr 10, 2013, at 11:59 PM, Dave Smith <> wrote:

> Hi Henning,
> 
> Thanks for the pointers. I must admit that I find the level of snark in the emysql history delightful, considering that it's at least as forked as erlang-mysql-driver now. :)
> 
> There are a number of good fixes for the emysql driver, but they are on 20 different forks across Github. Looking over csrl's, fixes, I'm pretty concerned those aren't in mainline since there are some non-trivial pooling problems he's addressed (would you like some irony with that irony? :)).
> 
> Do you know if eonblast is planning to incorporate all the work from those different forks? I think we need to build some momentum behind a driver and I'm certainly happy to direct people towards a maintained one. 
> 
> IMO, it would also be handy if the driver wasn't pooled, but used poolboy since getting the pooling right is rather difficult. (I know that poolboy has been tested with some of Quviq's concurrent checking stuff and a number of race conditions addressed).
> 
> Thanks!
> 
> D.
> 
> 
> On Wed, Apr 10, 2013 at 3:00 PM, Henning Diedrich <> wrote:
> Hi Dave,
> 
> if I remember right, you were using the driver that came from Yxa via Yarif's erlang-emysql-driver https://github.com/dizzyd/erlang-mysql-driver ?  (Here is the history of that. https://github.com/eonblast/Emysql#History)
> 
> It was found less than perfect when Nick and Jacob gave it something to chew building Rupture. I never spotted the problems myself I should add. That's purely from Nick Gerakine's and Jacob Vorreuter's words.
> 
> But they report that with much effort they could not get the races out of it. That's why they started emysql, which I later started maintaining, and which Jeremy just mentioned, https://github.com/eonblast/Emysql
> 
> Considerable work went into getting the pooling system of Emysql right. (What I don't know is when exactly it got buggy, it may have been after Jacob's Emysql fork that now lies dormant.) But I worked a while, with help from others to get all races out of the queuing.
> 
> However, the best fork of Emysql, I *think* is currently that of Chris Rempel at https://github.com/csrl/emysql as I got behind while making Erlvolt, the VoltDB driver, modeled in parts on Emysql. Chris did some impressive clean up. Now that Erlvolt is out, I'll turn around and catch up asap. But that's not a New York asap.
> 
> An alternative may be to go back to a more original Yxa version, like the one possibly still to be found in ejabberd. That may be more stable than Yariv's branch that you started out with. The "history" I linked to above has the reasons, why that branch may be not quite clean and hard to debug.
> 
> Best,
> 
> Henning
> 
> On Apr 10, 2013, at 10:43 PM, Dave Smith <> wrote:
> 
> > Hello list,
> >
> > I'm curious what libraries people are currently using for MySQL access in Erlang. I have an old library on my github that I've kept basically working, but am wondering if there are any preferred/production libraries out there that people like better.
> >
> > I ask because I'm considering retrofitting the pooling system in the driver I maintain to use poolboy, but figure it was worth checking if there are better alternatives out there. :)
> >
> > After all, the best code to maintain is the code you don't maintain.
> >
> > D.
> > _______________________________________________
> > erlang-questions mailing list
> > 
> > http://erlang.org/mailman/listinfo/erlang-questions
> 
> 

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://erlang.org/pipermail/erlang-questions/attachments/20130411/52619ee1/attachment.html>


More information about the erlang-questions mailing list