You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@activemq.apache.org by Stephen Baker <st...@rmssoftwareinc.com> on 2022/07/29 13:18:42 UTC

mysql rewriteBatchedStatements

Hello,

I have looked over the use of executeBatch in artemis-jdbc-store and it would be safe to use mysql’s rewriteBatchedStatements connection string value the way the code is written right now. I was wondering if that was a conscious decision given rewriteBatchedStatements is not JDBC conformant.

https://dev.mysql.com/doc/connector-j/8.0/en/connector-j-connp-props-performance-extensions.html#cj-conn-prop_rewriteBatchedStatements

Stephen E. Baker

Re: mysql rewriteBatchedStatements

Posted by Justin Bertram <jb...@apache.org>.
> If a change was made to Artemis that broke when rewriteBatchedStatements
was enabled would it be considered a defect or would people be told not to
use the parameter.

I don't think I can answer this categorically. I think it would depend on
the change which broke it. In any case, if something did break it we would
certainly revisit that decision if necessary and make a decision that best
serves the community.

> Does anyone test using it (besides us)?

I'm not aware of any specific tests with MySQL + rewriteBatchedStatements
in the test-suite or elsewhere.


Justin

On Fri, Jul 29, 2022 at 5:21 PM Stephen Baker <
stephen.baker@rmssoftwareinc.com> wrote:

> I didn’t state myself clearly. If a change was made to Artemis that broke
> when rewriteBatchedStatements was enabled would it be considered a defect
> or would people be told not to use the parameter. Does anyone test using it
> (besides us)?
>
> As for JDBC compliant, my understanding is that the handling of
> Statement.getGeneratedKeys when that feature is enabled violates the spec –
> it doesn’t match the behaviour of the method in the JDK documentation. I
> don’t believe this is any fault of the mysql developers; rather I
> understand that it is a potentially dangerous flag which is off by default,
> but if you understand the caveats you can get substantial (order of
> magnitude) performance benefit from it.
>
> Stephen E. Baker
>
> From: Justin Bertram <jb...@apache.org>
> Date: Friday, July 29, 2022 at 5:43 PM
> To: users@activemq.apache.org <us...@activemq.apache.org>
> Subject: Re: mysql rewriteBatchedStatements
> I don't think it's possible to know whether or not that was a conscious
> decision based on the available evidence. If it was, I would have expected
> a mention of it in the documentation, the commit log, or a code comment. I
> think the only conclusive data would be input from the original author
> (i.e. Martyn Taylor).
>
> Aside from that, I'm not sure what you mean by "rewriteBatchedStatements is
> not JDBC conformant." I didn't see any mention of that detail in the linked
> documentation. It seems odd that the MySQL developers would put something
> which is "not JDBC conformant" in a JDBC driver. Can you clarify?
>
>
> Justin
>
> On Fri, Jul 29, 2022 at 8:19 AM Stephen Baker <
> stephen.baker@rmssoftwareinc.com> wrote:
>
> > Hello,
> >
> > I have looked over the use of executeBatch in artemis-jdbc-store and it
> > would be safe to use mysql’s rewriteBatchedStatements connection string
> > value the way the code is written right now. I was wondering if that was
> a
> > conscious decision given rewriteBatchedStatements is not JDBC conformant.
> >
> >
> >
> https://dev.mysql.com/doc/connector-j/8.0/en/connector-j-connp-props-performance-extensions.html#cj-conn-prop_rewriteBatchedStatements
> >
> > Stephen E. Baker
> >
> [EXTERNAL]: This email originated from outside of Rave Mobile Safety. Do
> not click links or open attachments unless you recognize the sender and
> know the content is safe.
>

Re: mysql rewriteBatchedStatements

Posted by Stephen Baker <st...@rmssoftwareinc.com>.
I didn’t state myself clearly. If a change was made to Artemis that broke when rewriteBatchedStatements was enabled would it be considered a defect or would people be told not to use the parameter. Does anyone test using it (besides us)?

As for JDBC compliant, my understanding is that the handling of Statement.getGeneratedKeys when that feature is enabled violates the spec – it doesn’t match the behaviour of the method in the JDK documentation. I don’t believe this is any fault of the mysql developers; rather I understand that it is a potentially dangerous flag which is off by default, but if you understand the caveats you can get substantial (order of magnitude) performance benefit from it.

Stephen E. Baker

From: Justin Bertram <jb...@apache.org>
Date: Friday, July 29, 2022 at 5:43 PM
To: users@activemq.apache.org <us...@activemq.apache.org>
Subject: Re: mysql rewriteBatchedStatements
I don't think it's possible to know whether or not that was a conscious
decision based on the available evidence. If it was, I would have expected
a mention of it in the documentation, the commit log, or a code comment. I
think the only conclusive data would be input from the original author
(i.e. Martyn Taylor).

Aside from that, I'm not sure what you mean by "rewriteBatchedStatements is
not JDBC conformant." I didn't see any mention of that detail in the linked
documentation. It seems odd that the MySQL developers would put something
which is "not JDBC conformant" in a JDBC driver. Can you clarify?


Justin

On Fri, Jul 29, 2022 at 8:19 AM Stephen Baker <
stephen.baker@rmssoftwareinc.com> wrote:

> Hello,
>
> I have looked over the use of executeBatch in artemis-jdbc-store and it
> would be safe to use mysql’s rewriteBatchedStatements connection string
> value the way the code is written right now. I was wondering if that was a
> conscious decision given rewriteBatchedStatements is not JDBC conformant.
>
>
> https://dev.mysql.com/doc/connector-j/8.0/en/connector-j-connp-props-performance-extensions.html#cj-conn-prop_rewriteBatchedStatements
>
> Stephen E. Baker
>
[EXTERNAL]: This email originated from outside of Rave Mobile Safety. Do not click links or open attachments unless you recognize the sender and know the content is safe.

Re: mysql rewriteBatchedStatements

Posted by Justin Bertram <jb...@apache.org>.
I don't think it's possible to know whether or not that was a conscious
decision based on the available evidence. If it was, I would have expected
a mention of it in the documentation, the commit log, or a code comment. I
think the only conclusive data would be input from the original author
(i.e. Martyn Taylor).

Aside from that, I'm not sure what you mean by "rewriteBatchedStatements is
not JDBC conformant." I didn't see any mention of that detail in the linked
documentation. It seems odd that the MySQL developers would put something
which is "not JDBC conformant" in a JDBC driver. Can you clarify?


Justin

On Fri, Jul 29, 2022 at 8:19 AM Stephen Baker <
stephen.baker@rmssoftwareinc.com> wrote:

> Hello,
>
> I have looked over the use of executeBatch in artemis-jdbc-store and it
> would be safe to use mysql’s rewriteBatchedStatements connection string
> value the way the code is written right now. I was wondering if that was a
> conscious decision given rewriteBatchedStatements is not JDBC conformant.
>
>
> https://dev.mysql.com/doc/connector-j/8.0/en/connector-j-connp-props-performance-extensions.html#cj-conn-prop_rewriteBatchedStatements
>
> Stephen E. Baker
>