From 3f2a420b023341fefef56f30778a272994ecbc5f 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 fe5759cd3..93eff2e65 100644 --- a/src/main/java/com/actiontech/dble/backend/pool/ConnectionPool.java +++ b/src/main/java/com/actiontech/dble/backend/pool/ConnectionPool.java @@ -298,10 +298,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 a921f2893..2c2a8ed7c 100644 --- a/src/main/java/com/actiontech/dble/net/connection/BackendConnection.java +++ b/src/main/java/com/actiontech/dble/net/connection/BackendConnection.java @@ -179,6 +179,10 @@ public class BackendConnection extends PooledConnection { return instance; } + public boolean isFromSlaveDB() { + return instance.isReadInstance(); + } + @Override public String toString() { return "BackendConnection[id = " + id + " host = " + host + " port = " + port + " localPort = " + localPort + " mysqlId = " + threadId + " db config = " + instance; 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 d39bd9ba7..1072c19e5 100644 --- a/src/main/java/com/actiontech/dble/net/connection/PooledConnection.java +++ b/src/main/java/com/actiontech/dble/net/connection/PooledConnection.java @@ -104,10 +104,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 5e65c845b..f4f2f9515 100644 --- a/src/main/java/com/actiontech/dble/route/handler/HintDbInstanceHandler.java +++ b/src/main/java/com/actiontech/dble/route/handler/HintDbInstanceHandler.java @@ -57,11 +57,11 @@ public class HintDbInstanceHandler implements HintHandler { 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.isPresent() ? masterInstance.get() : null; } }