From 11d18753991f49fc01bce867a8abbae496258c24 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Markus=20M=C3=A4kel=C3=A4?= Date: Thu, 15 Dec 2016 11:05:36 +0200 Subject: [PATCH] Handle batched reads from cloned sessions Readwritesplit should route all queries from cloned sessions to the master. This allows batch statements to be safely routed. Native readwritesplit sessions only support batched writes as batched reads aren't very common. Once readwritesplit supports batched reads, the special handling for cloned DCBs can be removed. --- server/modules/routing/readwritesplit/rwsplit_route_stmt.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/server/modules/routing/readwritesplit/rwsplit_route_stmt.c b/server/modules/routing/readwritesplit/rwsplit_route_stmt.c index b5e7fc0bf..7d4d1de17 100644 --- a/server/modules/routing/readwritesplit/rwsplit_route_stmt.c +++ b/server/modules/routing/readwritesplit/rwsplit_route_stmt.c @@ -696,6 +696,13 @@ route_target_t get_route_target(ROUTER_CLIENT_SES *rses, { target = TARGET_MASTER; } + /** + * A cloned session, route everything to the master + */ + else if (DCB_IS_CLONE(rses->client_dcb)) + { + target = TARGET_MASTER; + } /** * These queries are not affected by hints */