From 708a6cac201e76b2dbe79610cfe00f0dcc891a84 Mon Sep 17 00:00:00 2001 From: wenyh <44251917+wenyh1@users.noreply.github.com> Date: Mon, 8 May 2023 14:31:05 +0800 Subject: [PATCH] [inner-2213] adjust the basis of whether the 'readInstance' judgment (cherry pick from #3681) --- .../java/com/actiontech/dble/backend/pool/ConnectionPool.java | 4 ---- .../com/actiontech/dble/net/connection/BackendConnection.java | 4 ++++ .../com/actiontech/dble/net/connection/PooledConnection.java | 4 ---- .../actiontech/dble/route/handler/HintDbInstanceHandler.java | 4 ++-- 4 files changed, 6 insertions(+), 10 deletions(-) diff --git a/src/main/java/com/actiontech/dble/backend/pool/ConnectionPool.java b/src/main/java/com/actiontech/dble/backend/pool/ConnectionPool.java index f15836101..986701d9d 100644 --- a/src/main/java/com/actiontech/dble/backend/pool/ConnectionPool.java +++ b/src/main/java/com/actiontech/dble/backend/pool/ConnectionPool.java @@ -305,10 +305,6 @@ public class ConnectionPool extends PoolBase implements PooledConnectionListener return allConnections.size(); } - public boolean isFromSlave() { - return !config.isPrimary(); - } - public void close(final PooledConnection conn) { if (remove(conn)) { final int tc = totalConnections.decrementAndGet(); diff --git a/src/main/java/com/actiontech/dble/net/connection/BackendConnection.java b/src/main/java/com/actiontech/dble/net/connection/BackendConnection.java index aed8d9c39..fb4488070 100644 --- a/src/main/java/com/actiontech/dble/net/connection/BackendConnection.java +++ b/src/main/java/com/actiontech/dble/net/connection/BackendConnection.java @@ -238,6 +238,10 @@ public class BackendConnection extends PooledConnection { return instance; } + public boolean isFromSlaveDB() { + return instance.isReadInstance(); + } + @Override public String toString() { // show all return "BackendConnection[id = " + id + " host = " + host + " port = " + port + " localPort = " + localPort + " mysqlId = " + threadId + " db config = " + instance + (bindFront != null ? ", currentBindFrontend = " + bindFront : "") + "]"; diff --git a/src/main/java/com/actiontech/dble/net/connection/PooledConnection.java b/src/main/java/com/actiontech/dble/net/connection/PooledConnection.java index d8a4eae17..e0770d9aa 100644 --- a/src/main/java/com/actiontech/dble/net/connection/PooledConnection.java +++ b/src/main/java/com/actiontech/dble/net/connection/PooledConnection.java @@ -109,10 +109,6 @@ public abstract class PooledConnection extends AbstractConnection { this.poolRelated = poolRelated; } - public boolean isFromSlaveDB() { - return poolRelated.isFromSlave(); - } - public String getOldSchema() { return oldSchema; } diff --git a/src/main/java/com/actiontech/dble/route/handler/HintDbInstanceHandler.java b/src/main/java/com/actiontech/dble/route/handler/HintDbInstanceHandler.java index e91d7f1fc..ce8bcd611 100644 --- a/src/main/java/com/actiontech/dble/route/handler/HintDbInstanceHandler.java +++ b/src/main/java/com/actiontech/dble/route/handler/HintDbInstanceHandler.java @@ -56,11 +56,11 @@ public final class HintDbInstanceHandler { getDbInstances(true).stream(). filter(dbInstance -> StringUtil.equals(dbInstance.getConfig().getUrl().trim(), dbInstanceUrl.trim())). collect(Collectors.toSet()); - Optional slaveInstance = dbInstanceSet.stream().filter(instance -> !instance.getConfig().isPrimary()).findFirst(); + Optional slaveInstance = dbInstanceSet.stream().filter(instance -> instance.isReadInstance()).findFirst(); if (slaveInstance.isPresent()) { return slaveInstance.get(); } else { - Optional masterInstance = dbInstanceSet.stream().filter(instance -> instance.getConfig().isPrimary()).findFirst(); + Optional masterInstance = dbInstanceSet.stream().filter(instance -> !instance.isReadInstance()).findFirst(); return masterInstance.orElse(null); } }