[erlang-questions] MySQL driver
Loïc Hoguin
essen@REDACTED
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
> <jesper.louis.andersen@REDACTED
> <mailto:jesper.louis.andersen@REDACTED>> 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 <hd2010@REDACTED
> <mailto:hd2010@REDACTED>> 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 <g@REDACTED
> <mailto:g@REDACTED>> 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 <dizzyd@REDACTED
> <mailto:dizzyd@REDACTED>> 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
> <hd2010@REDACTED <mailto:hd2010@REDACTED>>
> >>> 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 <dizzyd@REDACTED
> <mailto:dizzyd@REDACTED>> 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
> >>>>> erlang-questions@REDACTED <mailto:erlang-questions@REDACTED>
> >>>>> http://erlang.org/mailman/listinfo/erlang-questions
> >>>>
> >>>
> >>>
> >>> _______________________________________________
> >>> erlang-questions mailing list
> >>> erlang-questions@REDACTED <mailto:erlang-questions@REDACTED>
> >>> http://erlang.org/mailman/listinfo/erlang-questions
> >>>
> >
> > _______________________________________________
> > erlang-questions mailing list
> > erlang-questions@REDACTED <mailto:erlang-questions@REDACTED>
> > http://erlang.org/mailman/listinfo/erlang-questions
>
> _______________________________________________
> erlang-questions mailing list
> erlang-questions@REDACTED <mailto:erlang-questions@REDACTED>
> http://erlang.org/mailman/listinfo/erlang-questions
>
>
>
>
> --
> Pablo Polvorin
> ProcessOne
>
>
> _______________________________________________
> erlang-questions mailing list
> erlang-questions@REDACTED
> 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