looks good, I'll try it, thanks!<br><br><div class="gmail_quote">On 16 April 2013 17:43, Loïc Hoguin <span dir="ltr"><<a href="mailto:essen@ninenines.eu" target="_blank">essen@ninenines.eu</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">bank_mysql has binary prepared statements: <a href="https://github.com/extend/bank_mysql" target="_blank">https://github.com/extend/<u></u>bank_mysql</a><br>
<br>
You can use it with the bank pool (<a href="https://github.com/extend/bank" target="_blank">https://github.com/extend/<u></u>bank</a>) or without, whichever you prefer.<br>
<br>
No user guide at this time but it should be pretty easy to read.<div class="im"><br>
<br>
On 04/16/2013 10:07 PM, Pablo Polvorin wrote:<br>
</div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="im">
Is there a driver that supports the binary mysql protocol (not the<br>
textual, sql one) for prepared statements?.<br>
<br>
I come in a situation recently on a query where we have to bind lots of<br>
parameters into a prepared statement, and the time to escape all of<br>
them by the driver and send the corresponding SET @N = .. was<br>
substantial, actually larger than the time it takes mysql to run the<br>
query. Using the binary protocol in this situation would help.<br>
<br>
I found <a href="http://erlmysql.sourceforge.net/" target="_blank">http://erlmysql.sourceforge.<u></u>net/</a> that do support the binary<br>
protocol, and although it was much faster on this particular query<br>
(order of magnitudes faster) it sometimes crashed and I found the code<br>
more complex than other mysql drivers I've worked with, both reason to<br>
make me nervous about using it. Is anyone using it on production?, do<br>
you know alternatives?<br>
<br>
<br></div>
*|<div class="im"><br>
|*<br>
<br>
<br>
<br>
<br>
On 16 April 2013 07:06, Jesper Louis Andersen<br>
<<a href="mailto:jesper.louis.andersen@erlang-solutions.com" target="_blank">jesper.louis.andersen@erlang-<u></u>solutions.com</a><br></div><div class="im">
<mailto:<a href="mailto:jesper.louis.andersen@erlang-solutions.com" target="_blank">jesper.louis.andersen@<u></u>erlang-solutions.com</a>>> wrote:<br>
<br>
I may be interested in helping out on this thing as well. I have<br>
some work to do changing driver infrastructure to Emysql and when<br>
that comes around (in a couple of days/weeks), i'll probably also<br>
try to look into some merging of patches if possible.<br>
<br>
Please keep me in the loop :)<br>
<br>
Jesper Louis Andersen<br>
Erlang Solutions Ltd., Copenhagen<br>
<br>
<br>
<br>
On Apr 11, 2013, at 12:41 AM, Henning Diedrich <<a href="mailto:hd2010@eonblast.com" target="_blank">hd2010@eonblast.com</a><br></div><div class="im">
<mailto:<a href="mailto:hd2010@eonblast.com" target="_blank">hd2010@eonblast.com</a>>> wrote:<br>
<br>
> Hi Garrett,<br>
><br>
> great, I'll check out your connection time outs, thanks a lot!<br>
><br>
> It was quite fun to find Jacob, Nick and Fredrik to write this<br>
[1] up. It certainly felt more like historical forensics from some<br>
point on although I was throughout only trying to find out which<br>
driver version made most sense. Which in the end came to light in a<br>
way I could not read out of the source.<br>
><br>
> If someone would like to share the story of his fork I'll be<br>
happy to include it, for the fun of it. Somehow, this all fits MySQL.<br>
><br>
> Henning<br>
><br>
> [1] <a href="https://github.com/eonblast/Emysql#History" target="_blank">https://github.com/eonblast/<u></u>Emysql#History</a><br>
><br>
><br>
> On Apr 11, 2013, at 12:25 AM, Garrett Smith <<a href="mailto:g@rre.tt" target="_blank">g@rre.tt</a><br></div><div class="im">
<mailto:<a href="mailto:g@rre.tt" target="_blank">g@rre.tt</a>>> wrote:<br>
><br>
>> Someday someone will write a book on the history of the Erlang MySQL<br>
>> libraries. Not a great read, but it'd have to be scholarly.<br>
>><br>
>> I've modified the Eonblast library with some connection timeout<br>
tweaks<br>
>> (as in, supporting them):<br>
>><br>
>> <a href="https://github.com/gar1t/Emysql" target="_blank">https://github.com/gar1t/<u></u>Emysql</a><br>
>><br>
>><br>
>><br>
>> On Wed, Apr 10, 2013 at 4:59 PM, Dave Smith <<a href="mailto:dizzyd@dizzyd.com" target="_blank">dizzyd@dizzyd.com</a><br></div><div><div class="h5">
<mailto:<a href="mailto:dizzyd@dizzyd.com" target="_blank">dizzyd@dizzyd.com</a>>> wrote:<br>
>>> Hi Henning,<br>
>>><br>
>>> Thanks for the pointers. I must admit that I find the level of<br>
snark in the<br>
>>> emysql history delightful, considering that it's at least as<br>
forked as<br>
>>> erlang-mysql-driver now. :)<br>
>>><br>
>>> There are a number of good fixes for the emysql driver, but<br>
they are on 20<br>
>>> different forks across Github. Looking over csrl's, fixes, I'm<br>
pretty<br>
>>> concerned those aren't in mainline since there are some<br>
non-trivial pooling<br>
>>> problems he's addressed (would you like some irony with that<br>
irony? :)).<br>
>>><br>
>>> Do you know if eonblast is planning to incorporate all the work<br>
from those<br>
>>> different forks? I think we need to build some momentum behind<br>
a driver and<br>
>>> I'm certainly happy to direct people towards a maintained one.<br>
>>><br>
>>> IMO, it would also be handy if the driver wasn't pooled, but<br>
used poolboy<br>
>>> since getting the pooling right is rather difficult. (I know<br>
that poolboy<br>
>>> has been tested with some of Quviq's concurrent checking stuff<br>
and a number<br>
>>> of race conditions addressed).<br>
>>><br>
>>> Thanks!<br>
>>><br>
>>> D.<br>
>>><br>
>>><br>
>>> On Wed, Apr 10, 2013 at 3:00 PM, Henning Diedrich<br></div></div>
<<a href="mailto:hd2010@eonblast.com" target="_blank">hd2010@eonblast.com</a> <mailto:<a href="mailto:hd2010@eonblast.com" target="_blank">hd2010@eonblast.com</a>>><div><div class="h5"><br>
>>> wrote:<br>
>>>><br>
>>>> Hi Dave,<br>
>>>><br>
>>>> if I remember right, you were using the driver that came from<br>
Yxa via<br>
>>>> Yarif's erlang-emysql-driver<br>
<a href="https://github.com/dizzyd/erlang-mysql-driver" target="_blank">https://github.com/dizzyd/<u></u>erlang-mysql-driver</a> ?<br>
>>>> (Here is the history of that.<br>
<a href="https://github.com/eonblast/Emysql#History" target="_blank">https://github.com/eonblast/<u></u>Emysql#History</a>)<br>
>>>><br>
>>>> It was found less than perfect when Nick and Jacob gave it<br>
something to<br>
>>>> chew building Rupture. I never spotted the problems myself I<br>
should add.<br>
>>>> That's purely from Nick Gerakine's and Jacob Vorreuter's words.<br>
>>>><br>
>>>> But they report that with much effort they could not get the<br>
races out of<br>
>>>> it. That's why they started emysql, which I later started<br>
maintaining, and<br>
>>>> which Jeremy just mentioned, <a href="https://github.com/eonblast/Emysql" target="_blank">https://github.com/eonblast/<u></u>Emysql</a><br>
>>>><br>
>>>> Considerable work went into getting the pooling system of<br>
Emysql right.<br>
>>>> (What I don't know is when exactly it got buggy, it may have<br>
been after<br>
>>>> Jacob's Emysql fork that now lies dormant.) But I worked a<br>
while, with help<br>
>>>> from others to get all races out of the queuing.<br>
>>>><br>
>>>> However, the best fork of Emysql, I *think* is currently that<br>
of Chris<br>
>>>> Rempel at <a href="https://github.com/csrl/emysql" target="_blank">https://github.com/csrl/emysql</a> as I got behind while<br>
making<br>
>>>> Erlvolt, the VoltDB driver, modeled in parts on Emysql. Chris<br>
did some<br>
>>>> impressive clean up. Now that Erlvolt is out, I'll turn around<br>
and catch up<br>
>>>> asap. But that's not a New York asap.<br>
>>>><br>
>>>> An alternative may be to go back to a more original Yxa<br>
version, like the<br>
>>>> one possibly still to be found in ejabberd. That may be more<br>
stable than<br>
>>>> Yariv's branch that you started out with. The "history" I<br>
linked to above<br>
>>>> has the reasons, why that branch may be not quite clean and<br>
hard to debug.<br>
>>>><br>
>>>> Best,<br>
>>>><br>
>>>> Henning<br>
>>>><br>
>>>> On Apr 10, 2013, at 10:43 PM, Dave Smith <<a href="mailto:dizzyd@dizzyd.com" target="_blank">dizzyd@dizzyd.com</a><br></div></div><div class="im">
<mailto:<a href="mailto:dizzyd@dizzyd.com" target="_blank">dizzyd@dizzyd.com</a>>> wrote:<br>
>>>><br>
>>>>> Hello list,<br>
>>>>><br>
>>>>> I'm curious what libraries people are currently using for<br>
MySQL access<br>
>>>>> in Erlang. I have an old library on my github that I've kept<br>
basically<br>
>>>>> working, but am wondering if there are any<br>
preferred/production libraries<br>
>>>>> out there that people like better.<br>
>>>>><br>
>>>>> I ask because I'm considering retrofitting the pooling system<br>
in the<br>
>>>>> driver I maintain to use poolboy, but figure it was worth<br>
checking if there<br>
>>>>> are better alternatives out there. :)<br>
>>>>><br>
>>>>> After all, the best code to maintain is the code you don't<br>
maintain.<br>
>>>>><br>
>>>>> D.<br>
>>>>> ______________________________<u></u>_________________<br>
>>>>> erlang-questions mailing list<br></div>
>>>>> <a href="mailto:erlang-questions@erlang.org" target="_blank">erlang-questions@erlang.org</a> <mailto:<a href="mailto:erlang-questions@erlang.org" target="_blank">erlang-questions@<u></u>erlang.org</a>><div class="im">
<br>
>>>>> <a href="http://erlang.org/mailman/listinfo/erlang-questions" target="_blank">http://erlang.org/mailman/<u></u>listinfo/erlang-questions</a><br>
>>>><br>
>>><br>
>>><br>
>>> ______________________________<u></u>_________________<br>
>>> erlang-questions mailing list<br></div>
>>> <a href="mailto:erlang-questions@erlang.org" target="_blank">erlang-questions@erlang.org</a> <mailto:<a href="mailto:erlang-questions@erlang.org" target="_blank">erlang-questions@<u></u>erlang.org</a>><div class="im">
<br>
>>> <a href="http://erlang.org/mailman/listinfo/erlang-questions" target="_blank">http://erlang.org/mailman/<u></u>listinfo/erlang-questions</a><br>
>>><br>
><br>
> ______________________________<u></u>_________________<br>
> erlang-questions mailing list<br></div>
> <a href="mailto:erlang-questions@erlang.org" target="_blank">erlang-questions@erlang.org</a> <mailto:<a href="mailto:erlang-questions@erlang.org" target="_blank">erlang-questions@<u></u>erlang.org</a>><div class="im">
<br>
> <a href="http://erlang.org/mailman/listinfo/erlang-questions" target="_blank">http://erlang.org/mailman/<u></u>listinfo/erlang-questions</a><br>
<br>
______________________________<u></u>_________________<br>
erlang-questions mailing list<br></div>
<a href="mailto:erlang-questions@erlang.org" target="_blank">erlang-questions@erlang.org</a> <mailto:<a href="mailto:erlang-questions@erlang.org" target="_blank">erlang-questions@<u></u>erlang.org</a>><div class="im">
<br>
<a href="http://erlang.org/mailman/listinfo/erlang-questions" target="_blank">http://erlang.org/mailman/<u></u>listinfo/erlang-questions</a><br>
<br>
<br>
<br>
<br>
--<br>
Pablo Polvorin<br>
ProcessOne<br>
<br>
<br>
______________________________<u></u>_________________<br>
erlang-questions mailing list<br>
<a href="mailto:erlang-questions@erlang.org" target="_blank">erlang-questions@erlang.org</a><br>
<a href="http://erlang.org/mailman/listinfo/erlang-questions" target="_blank">http://erlang.org/mailman/<u></u>listinfo/erlang-questions</a><br>
<br>
</div></blockquote><span class="HOEnZb"><font color="#888888">
<br>
<br>
-- <br>
Loďc Hoguin<br>
Erlang Cowboy<br>
Nine Nines<br>
<a href="http://ninenines.eu" target="_blank">http://ninenines.eu</a><br>
</font></span></blockquote></div><br><br clear="all"><br>-- <br>Pablo Polvorin<br>ProcessOne