From 5c94610b6878e2997779ba329a01a3823ba19d56 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Markus=20M=C3=A4kel=C3=A4?= Date: Fri, 23 Jun 2017 13:16:30 +0300 Subject: [PATCH] MXS-852: Update readwritesplit limitations Updated limitations with notes about parallel execution of binary protocol prepared statements. Remove limitations that have been lifted in 2.2. --- Documentation/About/Limitations.md | 18 ++++++------------ 1 file changed, 6 insertions(+), 12 deletions(-) diff --git a/Documentation/About/Limitations.md b/Documentation/About/Limitations.md index ff16f4963..c7ad8f75a 100644 --- a/Documentation/About/Limitations.md +++ b/Documentation/About/Limitations.md @@ -124,7 +124,6 @@ Sending of binary data with `LOAD DATA LOCAL INFILE` is not supported. Read queries are routed to the master server in the following situations: * query is executed inside an open transaction -* query is a prepared statement * statement includes a stored procedure or an UDF call * if there are multiple statements inside one query e.g. `INSERT INTO ... ; SELECT LAST_INSERT_ID();` @@ -140,19 +139,14 @@ requests without waiting for the protocol to be idle. If you are using the MariaDB Connector/J, add `useBatchMultiSend=false` to the JDBC connection string to disable batched statement execution. -#### Backend write timeout handling +#### Prepared Statement Limitations -The backend connections opened by readwritesplit will not be kept alive if they -aren't used. To keep all of the connections alive, a session command must be -periodically executed (for example `SET @a = 1;`). +Readwritesplit does not support the parallel execution of binary protocol +prepared statements that use cursors. In practice this means that only one +open cursor is allowed when readwritesplit is used. -If the backend server is configured with a low -[wait_timeout](https://mariadb.com/kb/en/mariadb/server-system-variables/#wait_timeout), -it is possible that connections get closed during long sessions. It is -recommended to set the `wait_timeout` to a high value and let MariaDB MaxScale -handle the client timeouts. This can be achieved by using the -[_connection_timeout_](../Getting-Started/Configuration-Guide.md#connection_timeout) -parameter for the service. +Opening more than one cursor will cause the execution of the prepared +statements to stall. #### Limitations in multi-statement handling