[erlang-questions] MySQL driver

Loïc Hoguin <>
Tue Apr 16 22:43:29 CEST 2013


bank_mysql has binary prepared statements: 
https://github.com/extend/bank_mysql

You can use it with the bank pool (https://github.com/extend/bank) or 
without, whichever you prefer.

No user guide at this time but it should be pretty easy to read.

On 04/16/2013 10:07 PM, Pablo Polvorin wrote:
> Is there a driver that supports the binary mysql protocol (not the
> textual, sql one)  for  prepared statements?.
>
> I come in a situation recently on a query where we have  to bind lots of
> parameters into a prepared statement,  and the time to escape all of
> them by the driver and send the corresponding  SET @N = ..   was
> substantial,  actually larger than the time it takes mysql to run the
> query.  Using the binary protocol in this situation would help.
>
> I found http://erlmysql.sourceforge.net/  that do support the binary
> protocol, and although it was much faster on this particular query
> (order of magnitudes faster)  it sometimes crashed and I found the code
> more complex than other mysql drivers I've worked with,  both reason to
> make me nervous about using it.  Is anyone using it on production?,  do
> you know alternatives?
>
>
> *|
> |*
>
>
>
>
> On 16 April 2013 07:06, Jesper Louis Andersen
> <
> <mailto:>> wrote:
>
>     I may be interested in helping out on this thing as well. I have
>     some work to do changing driver infrastructure to Emysql and when
>     that comes around (in a couple of days/weeks), i'll probably also
>     try to look into some merging of patches if possible.
>
>     Please keep me in the loop :)
>
>     Jesper Louis Andersen
>        Erlang Solutions Ltd., Copenhagen
>
>
>
>     On Apr 11, 2013, at 12:41 AM, Henning Diedrich <
>     <mailto:>> wrote:
>
>      > Hi Garrett,
>      >
>      > great, I'll check out your connection time outs, thanks a lot!
>      >
>      > It was quite fun to find Jacob, Nick and Fredrik to write this
>     [1] up. It certainly felt more like historical forensics from some
>     point on although I was throughout only trying to find out which
>     driver version made most sense. Which in the end came to light in a
>     way I could not read out of the source.
>      >
>      > If someone would like to share the story of his fork I'll be
>     happy to include it, for the fun of it. Somehow, this all fits MySQL.
>      >
>      > Henning
>      >
>      > [1] https://github.com/eonblast/Emysql#History
>      >
>      >
>      > On Apr 11, 2013, at 12:25 AM, Garrett Smith <
>     <mailto:>> wrote:
>      >
>      >> Someday someone will write a book on the history of the Erlang MySQL
>      >> libraries. Not a great read, but it'd have to be scholarly.
>      >>
>      >> I've modified the Eonblast library with some connection timeout
>     tweaks
>      >> (as in, supporting them):
>      >>
>      >> https://github.com/gar1t/Emysql
>      >>
>      >>
>      >>
>      >> On Wed, Apr 10, 2013 at 4:59 PM, Dave Smith <
>     <mailto:>> 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
>     < <mailto:>>
>      >>> 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 <
>     <mailto:>> 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
>      >>>>>  <mailto:>
>      >>>>> http://erlang.org/mailman/listinfo/erlang-questions
>      >>>>
>      >>>
>      >>>
>      >>> _______________________________________________
>      >>> erlang-questions mailing list
>      >>>  <mailto:>
>      >>> http://erlang.org/mailman/listinfo/erlang-questions
>      >>>
>      >
>      > _______________________________________________
>      > erlang-questions mailing list
>      >  <mailto:>
>      > http://erlang.org/mailman/listinfo/erlang-questions
>
>     _______________________________________________
>     erlang-questions mailing list
>      <mailto:>
>     http://erlang.org/mailman/listinfo/erlang-questions
>
>
>
>
> --
> Pablo Polvorin
> ProcessOne
>
>
> _______________________________________________
> erlang-questions mailing list
> 
> http://erlang.org/mailman/listinfo/erlang-questions
>


-- 
Loïc Hoguin
Erlang Cowboy
Nine Nines
http://ninenines.eu



More information about the erlang-questions mailing list