refactoring

pull/2979/head
Nikita Koksharov 5 years ago
parent 68d791e716
commit e06d7af733

@ -48,7 +48,6 @@ public class ClientConnectionsEntry {
public enum FreezeReason {MANAGER, RECONNECT, SYSTEM}
private volatile boolean freezed;
private volatile FreezeReason freezeReason;
final RedisClient client;
@ -110,7 +109,7 @@ public class ClientConnectionsEntry {
}
public boolean isFreezed() {
return freezed;
return freezeReason != null;
}
public void setFreezeReason(FreezeReason freezeReason) {
@ -121,10 +120,6 @@ public class ClientConnectionsEntry {
return freezeReason;
}
public void setFreezed(boolean freezed) {
this.freezed = freezed;
}
public void reset() {
freeConnectionsCounter.removeListeners();
freeSubscribeConnectionsCounter.removeListeners();
@ -250,19 +245,12 @@ public class ClientConnectionsEntry {
freeSubscribeConnectionsCounter.release();
}
public void freezeMaster(FreezeReason reason) {
synchronized (this) {
setFreezed(true);
setFreezeReason(reason);
}
}
@Override
public String toString() {
return "[freeSubscribeConnectionsAmount=" + freeSubscribeConnections.size()
+ ", freeSubscribeConnectionsCounter=" + freeSubscribeConnectionsCounter
+ ", freeConnectionsAmount=" + freeConnections.size() + ", freeConnectionsCounter="
+ freeConnectionsCounter + ", freezed=" + freezed + ", freezeReason=" + freezeReason
+ freeConnectionsCounter + ", freezeReason=" + freezeReason
+ ", client=" + client + ", nodeType=" + nodeType + ", firstFail=" + firstFailTime
+ "]";
}

@ -325,7 +325,6 @@ public class MasterSlaveEntry {
config.getSubscriptionConnectionPoolSize(), connectionManager, nodeType);
if (freezed) {
synchronized (entry) {
entry.setFreezed(freezed);
entry.setFreezeReason(FreezeReason.SYSTEM);
}
}
@ -454,7 +453,9 @@ public class MasterSlaveEntry {
writeConnectionPool.remove(oldMaster);
pubSubConnectionPool.remove(oldMaster);
oldMaster.freezeMaster(FreezeReason.MANAGER);
synchronized (oldMaster) {
oldMaster.setFreezeReason(FreezeReason.MANAGER);
}
slaveDown(oldMaster);
slaveBalancer.changeType(oldMaster.getClient().getAddr(), NodeType.SLAVE);

@ -135,11 +135,10 @@ public class LoadBalancerManager {
if (!entry.isFreezed()) {
return false;
}
if ((freezeReason == FreezeReason.RECONNECT
&& entry.getFreezeReason() == FreezeReason.RECONNECT)
|| freezeReason != FreezeReason.RECONNECT) {
if (freezeReason != FreezeReason.RECONNECT
|| entry.getFreezeReason() == FreezeReason.RECONNECT) {
entry.resetFirstFail();
entry.setFreezed(false);
entry.setFreezeReason(null);
slaveConnectionPool.initConnections(entry);
@ -169,19 +168,19 @@ public class LoadBalancerManager {
}
synchronized (connectionEntry) {
if (connectionEntry.isFreezed()) {
return null;
}
// only RECONNECT freeze reason could be replaced
if (connectionEntry.getFreezeReason() == null
|| connectionEntry.getFreezeReason() == FreezeReason.RECONNECT
|| (freezeReason == FreezeReason.MANAGER
&& connectionEntry.getFreezeReason() != FreezeReason.MANAGER
&& connectionEntry.getNodeType() == NodeType.SLAVE)) {
connectionEntry.setFreezed(true);
connectionEntry.setFreezeReason(freezeReason);
return connectionEntry;
}
if (connectionEntry.isFreezed()) {
return null;
}
}
return connectionEntry;

@ -366,7 +366,6 @@ abstract class ConnectionPool<T extends RedisConnection> {
public void run(Timeout timeout) throws Exception {
synchronized (entry) {
if (entry.getFreezeReason() != FreezeReason.RECONNECT
|| !entry.isFreezed()
|| connectionManager.isShuttingDown()) {
return;
}
@ -375,8 +374,7 @@ abstract class ConnectionPool<T extends RedisConnection> {
RFuture<RedisConnection> connectionFuture = entry.getClient().connectAsync();
connectionFuture.onComplete((c, e) -> {
synchronized (entry) {
if (entry.getFreezeReason() != FreezeReason.RECONNECT
|| !entry.isFreezed()) {
if (entry.getFreezeReason() != FreezeReason.RECONNECT) {
return;
}
}
@ -396,8 +394,7 @@ abstract class ConnectionPool<T extends RedisConnection> {
public void accept(String t, Throwable u) {
try {
synchronized (entry) {
if (entry.getFreezeReason() != FreezeReason.RECONNECT
|| !entry.isFreezed()) {
if (entry.getFreezeReason() != FreezeReason.RECONNECT) {
return;
}
}

Loading…
Cancel
Save