Unable to migrate druid to ProxySQL (from mysql-router)

57 views
Skip to first unread message

Riccardo Marini

unread,
May 23, 2022, 10:29:10 AM5/23/22
to proxysql

Hi team,
Application is apache Druid, we are trying to remove mysql-router component (used only on RW port) and start using ProxySQL.
Publishing segments on the metadata storage (mariadb) tasks is failing. This is not working at all and we didn't found any suitable reason for that, despite trying different combination for multiplexing, transactions, tcp, queries, JDBC tuning.
During the transaction -no matter the configuration- a client disconnect is performed right before the COMMIT.
Application is connecting through mariadb-java-client-2.7.3 , proxysql is running on a k8s container (as mysql-router currently is). No endpoint change during switch between the two components, we operated them on the same socket.
I also tested some RW transaction using standard mysql client with similar patterns, and everything seems ok.
For matter of simplification I've reduced the configuration to the minimum, keeping one single catching rule for queries, and keeping safe defaults. Also some information have been stripped or and changed with _placeholders_.
Please note that backend servers are correctly being discovered and are ONLINE in a stable manner.
For what we can understand through a bit of reverse engineering, proxySQL is quitting before sending COMMIT.

proxysql docker image: 2.3.2-10-g8cd66cf, 2.3.1, 2.4.1, latest
client: mariadb-java-client-2.7.3

Exception raised by application:

2022-05-17T11:56:15.288+0000 WARN [qtp290991542-223] org.apache.druid.indexing.overlord.http.OverlordResource - Failed to perform task action java.lang.RuntimeException: org.skife.jdbi.v2.exceptions.CallbackFailedException: org.skife.jdbi.v2.exceptions.UnableToManipulateTransactionIsolationLevelException: Unable to set isolation level to 2 ... org.apache.druid.indexing.common.actions.SegmentTransactionalInsertAction.perform(SegmentTransactionalInsertAction.java: Caused by: org.skife.jdbi.v2.exceptions.CallbackFailedException: org.skife.jdbi.v2.exceptions.UnableToManipulateTransactionIsolationLevelException: Unable to set isolation level to 2 ... Caused by: org.skife.jdbi.v2.exceptions.UnableToManipulateTransactionIsolationLevelException: Unable to set isolation level to 2    at org.skife.jdbi.v2.BasicHandle.setTransactionIsolation(BasicHandle.java:450) ~[jdbi-2.63.1.jar:2.63.1] ... Caused by: java.sql.SQLNonTransientConnectionException: (conn=584) (conn=584) Connection is closed    at org.mariadb.jdbc.internal.util.exceptions.ExceptionFactory.createException(ExceptionFactory.java:73) ~[?:?] ... Caused by: java.sql.SQLNonTransientConnectionException: (conn=584) Connection is closed    at org.mariadb.jdbc.internal.util.exceptions.ExceptionFactory.createException(ExceptionFactory.java:73) ~[?:?]
Reply all
Reply to author
Forward
0 new messages