From 3981a706d8b660bf66ce12fb89458aa225f233a3 Mon Sep 17 00:00:00 2001 From: yanhuqing Date: Thu, 28 May 2020 16:03:15 +0800 Subject: [PATCH] #1849 manager command --- dble_checkstyle_suppression.xml | 3 +- .../backend/datasource/PhysicalDbGroup.java | 6 +- .../datasource/PhysicalDbInstance.java | 70 +++---- .../dble/backend/datasource/ShardingNode.java | 6 +- .../dble/backend/heartbeat/MySQLDetector.java | 10 +- .../backend/heartbeat/MySQLHeartbeat.java | 12 +- .../dble/config/ConfigInitializer.java | 22 +-- .../dble/config/helper/TestSchemasTask.java | 6 +- .../dble/manager/handler/DatabaseHandler.java | 12 +- .../dble/manager/handler/SelectHandler.java | 2 +- .../dble/manager/handler/ShowHandler.java | 14 +- .../dble/manager/response/PauseStart.java | 8 +- .../dble/manager/response/ReloadMetaData.java | 2 +- .../response/SelectSessionTxReadOnly.java | 2 +- .../response/ShowDataDistribution.java | 2 +- .../dble/manager/response/ShowDataSource.java | 4 +- .../manager/response/ShowDatasourceSyn.java | 2 +- .../response/ShowDatasourceSynDetail.java | 2 +- .../dble/manager/response/ShowHelp.java | 14 +- .../manager/response/ShowProcessList.java | 4 +- .../manager/response/ShowShardingNode.java | 2 +- .../dble/manager/response/ShowXASession.java | 2 +- .../meta/table/AbstractTableMetaHandler.java | 4 +- .../dble/meta/table/GetNodeTablesHandler.java | 6 +- .../dble/meta/table/GetTableMetaHandler.java | 4 +- .../dble/route/parser/ManagerParseShow.java | 181 ++++++++++-------- .../dble/sqlengine/SpecialSqlJob.java | 2 +- src/main/resources/bootstrap.cnf | 2 +- .../dble/parser/ManagerParserTest.java | 72 +++---- .../sequence/IncrSequenceZKHandlerTest.java | 3 + 30 files changed, 253 insertions(+), 228 deletions(-) diff --git a/dble_checkstyle_suppression.xml b/dble_checkstyle_suppression.xml index 5548f2444..05c80fb00 100644 --- a/dble_checkstyle_suppression.xml +++ b/dble_checkstyle_suppression.xml @@ -23,5 +23,6 @@ - + + \ No newline at end of file diff --git a/src/main/java/com/actiontech/dble/backend/datasource/PhysicalDbGroup.java b/src/main/java/com/actiontech/dble/backend/datasource/PhysicalDbGroup.java index dc370571a..5f7c8c6f0 100644 --- a/src/main/java/com/actiontech/dble/backend/datasource/PhysicalDbGroup.java +++ b/src/main/java/com/actiontech/dble/backend/datasource/PhysicalDbGroup.java @@ -217,10 +217,10 @@ public class PhysicalDbGroup { theNode = this.getAllActiveDataSources().iterator().next(); } else { if (theNode.isDisabled()) { - String errorMsg = "the dataHost[" + theNode.getHostConfig().getName() + "] is disabled, please check it"; + String errorMsg = "the dataHost[" + theNode.getDbGroupConfig().getName() + "] is disabled, please check it"; throw new IOException(errorMsg); } else { - String errorMsg = "the dataHost[" + theNode.getHostConfig().getName() + "] is a fake node, please check it"; + String errorMsg = "the dataHost[" + theNode.getDbGroupConfig().getName() + "] is a fake node, please check it"; throw new IOException(errorMsg); } } @@ -231,7 +231,7 @@ public class PhysicalDbGroup { heartbeatError += ",Tip:heartbeat[show slave status] need the SUPER or REPLICATION CLIENT privilege(s)"; } LOGGER.warn(heartbeatError); - Map labels = AlertUtil.genSingleLabel("dbInstance", theNode.getHostConfig().getName() + "-" + theNode.getConfig().getInstanceName()); + Map labels = AlertUtil.genSingleLabel("dbInstance", theNode.getDbGroupConfig().getName() + "-" + theNode.getConfig().getInstanceName()); AlertUtil.alert(AlarmCode.DB_INSTANCE_CAN_NOT_REACH, Alert.AlertLevel.WARN, heartbeatError, "mysql", theNode.getConfig().getId(), labels); throw new IOException(heartbeatError); } diff --git a/src/main/java/com/actiontech/dble/backend/datasource/PhysicalDbInstance.java b/src/main/java/com/actiontech/dble/backend/datasource/PhysicalDbInstance.java index 5dc44234e..ccdbe4a9a 100644 --- a/src/main/java/com/actiontech/dble/backend/datasource/PhysicalDbInstance.java +++ b/src/main/java/com/actiontech/dble/backend/datasource/PhysicalDbInstance.java @@ -45,7 +45,7 @@ public abstract class PhysicalDbInstance { private MySQLHeartbeat heartbeat; private volatile boolean readInstance; private volatile long heartbeatRecoveryTime; - private final DbGroupConfig hostConfig; + private final DbGroupConfig dbGroupConfig; private PhysicalDbGroup dbGroup; private final AtomicInteger connectionCount; private volatile AtomicBoolean disabled; @@ -58,11 +58,11 @@ public abstract class PhysicalDbInstance { private AtomicLong writeCount = new AtomicLong(0); private String dsVersion; - public PhysicalDbInstance(DbInstanceConfig config, DbGroupConfig hostConfig, boolean isReadNode) { + public PhysicalDbInstance(DbInstanceConfig config, DbGroupConfig dbGroupConfig, boolean isReadNode) { this.size = config.getMaxCon(); this.config = config; this.name = config.getInstanceName(); - this.hostConfig = hostConfig; + this.dbGroupConfig = dbGroupConfig; heartbeat = this.createHeartBeat(); this.readInstance = isReadNode; this.connectionCount = new AtomicInteger(); @@ -73,7 +73,7 @@ public abstract class PhysicalDbInstance { this.size = org.size; this.config = org.config; this.name = org.name; - this.hostConfig = org.hostConfig; + this.dbGroupConfig = org.dbGroupConfig; this.readInstance = org.readInstance; this.connectionCount = org.connectionCount; this.disabled = new AtomicBoolean(org.disabled.get()); @@ -111,8 +111,8 @@ public abstract class PhysicalDbInstance { writeCount.addAndGet(1); } - public DbGroupConfig getHostConfig() { - return hostConfig; + public DbGroupConfig getDbGroupConfig() { + return dbGroupConfig; } @@ -305,17 +305,17 @@ public abstract class PhysicalDbInstance { } else { break; } - if (ToResolveContainer.CREATE_CONN_FAIL.contains(this.getHostConfig().getName() + "-" + this.getConfig().getInstanceName())) { - Map labels = AlertUtil.genSingleLabel("data_host", this.getHostConfig().getName() + "-" + this.getConfig().getInstanceName()); + if (ToResolveContainer.CREATE_CONN_FAIL.contains(this.getDbGroupConfig().getName() + "-" + this.getConfig().getInstanceName())) { + Map labels = AlertUtil.genSingleLabel("data_host", this.getDbGroupConfig().getName() + "-" + this.getConfig().getInstanceName()); AlertUtil.alertResolve(AlarmCode.CREATE_CONN_FAIL, Alert.AlertLevel.WARN, "mysql", this.getConfig().getId(), - labels, ToResolveContainer.CREATE_CONN_FAIL, this.getHostConfig().getName() + "-" + this.getConfig().getInstanceName()); + labels, ToResolveContainer.CREATE_CONN_FAIL, this.getDbGroupConfig().getName() + "-" + this.getConfig().getInstanceName()); } } catch (IOException e) { String errMsg = "create connection err:"; LOGGER.warn(errMsg, e); - Map labels = AlertUtil.genSingleLabel("data_host", this.getHostConfig().getName() + "-" + this.getConfig().getInstanceName()); + Map labels = AlertUtil.genSingleLabel("data_host", this.getDbGroupConfig().getName() + "-" + this.getConfig().getInstanceName()); AlertUtil.alert(AlarmCode.CREATE_CONN_FAIL, Alert.AlertLevel.WARN, errMsg + e.getMessage(), "mysql", this.getConfig().getId(), labels); - ToResolveContainer.CREATE_CONN_FAIL.add(this.getHostConfig().getName() + "-" + this.getConfig().getInstanceName()); + ToResolveContainer.CREATE_CONN_FAIL.add(this.getDbGroupConfig().getName() + "-" + this.getConfig().getInstanceName()); } } } @@ -377,10 +377,10 @@ public abstract class PhysicalDbInstance { private void takeCon(BackendConnection conn, final ResponseHandler handler, final Object attachment, String schema) { - if (ToResolveContainer.CREATE_CONN_FAIL.contains(this.getHostConfig().getName() + "-" + this.getConfig().getInstanceName())) { - Map labels = AlertUtil.genSingleLabel("data_host", this.getHostConfig().getName() + "-" + this.getConfig().getInstanceName()); + if (ToResolveContainer.CREATE_CONN_FAIL.contains(this.getDbGroupConfig().getName() + "-" + this.getConfig().getInstanceName())) { + Map labels = AlertUtil.genSingleLabel("data_host", this.getDbGroupConfig().getName() + "-" + this.getConfig().getInstanceName()); AlertUtil.alertResolve(AlarmCode.CREATE_CONN_FAIL, Alert.AlertLevel.WARN, "mysql", this.getConfig().getId(), labels, - ToResolveContainer.CREATE_CONN_FAIL, this.getHostConfig().getName() + "-" + this.getConfig().getInstanceName()); + ToResolveContainer.CREATE_CONN_FAIL, this.getDbGroupConfig().getName() + "-" + this.getConfig().getInstanceName()); } takeCon(conn, schema); conn.setAttachment(attachment); @@ -396,9 +396,9 @@ public abstract class PhysicalDbInstance { createNewConnection(new DelegateResponseHandler(handler) { @Override public void connectionError(Throwable e, BackendConnection conn) { - Map labels = AlertUtil.genSingleLabel("data_host", hostConfig.getName() + "-" + config.getInstanceName()); + Map labels = AlertUtil.genSingleLabel("data_host", dbGroupConfig.getName() + "-" + config.getInstanceName()); AlertUtil.alert(AlarmCode.CREATE_CONN_FAIL, Alert.AlertLevel.WARN, "createNewConn Error" + e.getMessage(), "mysql", config.getId(), labels); - ToResolveContainer.CREATE_CONN_FAIL.add(hostConfig.getName() + "-" + config.getInstanceName()); + ToResolveContainer.CREATE_CONN_FAIL.add(dbGroupConfig.getName() + "-" + config.getInstanceName()); handler.connectionError(e, conn); } @@ -430,24 +430,24 @@ public abstract class PhysicalDbInstance { } else if (!this.createNewCount()) { if (forceCreate) { this.connectionCount.incrementAndGet(); - LOGGER.warn("connection pool [" + hostConfig.getName() + "." + this.name + "] has reached maxCon, but we still try to create new connection for important task"); + LOGGER.warn("connection pool [" + dbGroupConfig.getName() + "." + this.name + "] has reached maxCon, but we still try to create new connection for important task"); createNewConnection(handler, attachment, schema, mustWrite); } else { - String maxConError = "the max active Connections size can not be max than maxCon for data host[" + this.getHostConfig().getName() + "." + this.getName() + "]"; + String maxConError = "the max active Connections size can not be max than maxCon for data host[" + this.getDbGroupConfig().getName() + "." + this.getName() + "]"; LOGGER.warn(maxConError); - Map labels = AlertUtil.genSingleLabel("data_host", this.getHostConfig().getName() + "-" + this.getConfig().getInstanceName()); + Map labels = AlertUtil.genSingleLabel("data_host", this.getDbGroupConfig().getName() + "-" + this.getConfig().getInstanceName()); AlertUtil.alert(AlarmCode.REACH_MAX_CON, Alert.AlertLevel.WARN, maxConError, "dble", this.getConfig().getId(), labels); - ToResolveContainer.REACH_MAX_CON.add(this.getHostConfig().getName() + "-" + this.getConfig().getInstanceName()); + ToResolveContainer.REACH_MAX_CON.add(this.getDbGroupConfig().getName() + "-" + this.getConfig().getInstanceName()); throw new IOException(maxConError); } } else { // create connection - if (ToResolveContainer.REACH_MAX_CON.contains(this.getHostConfig().getName() + "-" + this.getConfig().getInstanceName())) { - Map labels = AlertUtil.genSingleLabel("data_host", this.getHostConfig().getName() + "-" + this.getConfig().getInstanceName()); + if (ToResolveContainer.REACH_MAX_CON.contains(this.getDbGroupConfig().getName() + "-" + this.getConfig().getInstanceName())) { + Map labels = AlertUtil.genSingleLabel("data_host", this.getDbGroupConfig().getName() + "-" + this.getConfig().getInstanceName()); AlertUtil.alertResolve(AlarmCode.REACH_MAX_CON, Alert.AlertLevel.WARN, "dble", this.getConfig().getId(), labels, - ToResolveContainer.REACH_MAX_CON, this.getHostConfig().getName() + "-" + this.getConfig().getInstanceName()); + ToResolveContainer.REACH_MAX_CON, this.getDbGroupConfig().getName() + "-" + this.getConfig().getInstanceName()); } - LOGGER.info("no idle connection in pool [" + hostConfig.getName() + "." + this.name + "],create new connection for schema: " + schema); + LOGGER.info("no idle connection in pool [" + dbGroupConfig.getName() + "." + this.name + "],create new connection for schema: " + schema); createNewConnection(handler, attachment, schema, mustWrite); } } @@ -469,17 +469,17 @@ public abstract class PhysicalDbInstance { if (disabled.get()) { throw new IOException("the dataSource is disabled [" + this.name + "]"); } else if (!this.createNewCount()) { - String maxConError = "the max active Connections size can not be max than maxCon data host[" + this.getHostConfig().getName() + "." + this.getName() + "]"; + String maxConError = "the max active Connections size can not be max than maxCon data host[" + this.getDbGroupConfig().getName() + "." + this.getName() + "]"; LOGGER.warn(maxConError); - Map labels = AlertUtil.genSingleLabel("data_host", this.getHostConfig().getName() + "-" + this.getConfig().getInstanceName()); + Map labels = AlertUtil.genSingleLabel("data_host", this.getDbGroupConfig().getName() + "-" + this.getConfig().getInstanceName()); AlertUtil.alert(AlarmCode.REACH_MAX_CON, Alert.AlertLevel.WARN, maxConError, "dble", this.getConfig().getId(), labels); - ToResolveContainer.REACH_MAX_CON.add(this.getHostConfig().getName() + "-" + this.getConfig().getInstanceName()); + ToResolveContainer.REACH_MAX_CON.add(this.getDbGroupConfig().getName() + "-" + this.getConfig().getInstanceName()); throw new IOException(maxConError); } else { // create connection - if (ToResolveContainer.REACH_MAX_CON.contains(this.getHostConfig().getName() + "-" + this.getConfig().getInstanceName())) { - Map labels = AlertUtil.genSingleLabel("data_host", this.getHostConfig().getName() + "-" + this.getConfig().getInstanceName()); + if (ToResolveContainer.REACH_MAX_CON.contains(this.getDbGroupConfig().getName() + "-" + this.getConfig().getInstanceName())) { + Map labels = AlertUtil.genSingleLabel("data_host", this.getDbGroupConfig().getName() + "-" + this.getConfig().getInstanceName()); AlertUtil.alertResolve(AlarmCode.REACH_MAX_CON, Alert.AlertLevel.WARN, "dble", this.getConfig().getId(), labels, - ToResolveContainer.REACH_MAX_CON, this.getHostConfig().getName() + "-" + this.getConfig().getInstanceName()); + ToResolveContainer.REACH_MAX_CON, this.getDbGroupConfig().getName() + "-" + this.getConfig().getInstanceName()); } LOGGER.info("no ilde connection in pool,create new connection for " + this.name + " of schema " + schema); con = createNewBackendConnection(schema); @@ -521,15 +521,15 @@ public abstract class PhysicalDbInstance { NewConnectionRespHandler simpleHandler = new NewConnectionRespHandler(); this.createNewConnection(simpleHandler, schema); con = simpleHandler.getBackConn(); - if (ToResolveContainer.CREATE_CONN_FAIL.contains(this.getHostConfig().getName() + "-" + this.getConfig().getInstanceName())) { - Map labels = AlertUtil.genSingleLabel("data_host", this.getHostConfig().getName() + "-" + this.getConfig().getInstanceName()); + if (ToResolveContainer.CREATE_CONN_FAIL.contains(this.getDbGroupConfig().getName() + "-" + this.getConfig().getInstanceName())) { + Map labels = AlertUtil.genSingleLabel("data_host", this.getDbGroupConfig().getName() + "-" + this.getConfig().getInstanceName()); AlertUtil.alertResolve(AlarmCode.CREATE_CONN_FAIL, Alert.AlertLevel.WARN, "mysql", this.getConfig().getId(), labels, - ToResolveContainer.CREATE_CONN_FAIL, this.getHostConfig().getName() + "-" + this.getConfig().getInstanceName()); + ToResolveContainer.CREATE_CONN_FAIL, this.getDbGroupConfig().getName() + "-" + this.getConfig().getInstanceName()); } } catch (IOException e) { - Map labels = AlertUtil.genSingleLabel("data_host", this.getHostConfig().getName() + "-" + this.getConfig().getInstanceName()); + Map labels = AlertUtil.genSingleLabel("data_host", this.getDbGroupConfig().getName() + "-" + this.getConfig().getInstanceName()); AlertUtil.alert(AlarmCode.CREATE_CONN_FAIL, Alert.AlertLevel.WARN, "createNewConn Error" + e.getMessage(), "mysql", this.getConfig().getId(), labels); - ToResolveContainer.CREATE_CONN_FAIL.add(this.getHostConfig().getName() + "-" + this.getConfig().getInstanceName()); + ToResolveContainer.CREATE_CONN_FAIL.add(this.getDbGroupConfig().getName() + "-" + this.getConfig().getInstanceName()); throw e; } return con; diff --git a/src/main/java/com/actiontech/dble/backend/datasource/ShardingNode.java b/src/main/java/com/actiontech/dble/backend/datasource/ShardingNode.java index a50b607aa..61030eee4 100644 --- a/src/main/java/com/actiontech/dble/backend/datasource/ShardingNode.java +++ b/src/main/java/com/actiontech/dble/backend/datasource/ShardingNode.java @@ -125,7 +125,7 @@ public class ShardingNode { heartbeatError += ",Tip:heartbeat[show slave status] need the SUPER or REPLICATION CLIENT privilege(s)"; } LOGGER.warn(heartbeatError); - Map labels = AlertUtil.genSingleLabel("dbInstance", readSource.getHostConfig().getName() + "-" + readSource.getConfig().getInstanceName()); + Map labels = AlertUtil.genSingleLabel("dbInstance", readSource.getDbGroupConfig().getName() + "-" + readSource.getConfig().getInstanceName()); AlertUtil.alert(AlarmCode.DB_INSTANCE_CAN_NOT_REACH, Alert.AlertLevel.WARN, heartbeatError, "mysql", readSource.getConfig().getId(), labels); throw new IOException(heartbeatError); } @@ -156,9 +156,9 @@ public class ShardingNode { if (dbGroup.isInitSuccess()) { PhysicalDbInstance writeSource = dbGroup.getWriteSource(); if (writeSource.isDisabled()) { - throw new IllegalArgumentException("[" + writeSource.getHostConfig().getName() + "." + writeSource.getConfig().getInstanceName() + "] is disabled"); + throw new IllegalArgumentException("[" + writeSource.getDbGroupConfig().getName() + "." + writeSource.getConfig().getInstanceName() + "] is disabled"); } else if (writeSource.isFakeNode()) { - throw new IllegalArgumentException("[" + writeSource.getHostConfig().getName() + "." + writeSource.getConfig().getInstanceName() + "] is fake node"); + throw new IllegalArgumentException("[" + writeSource.getDbGroupConfig().getName() + "." + writeSource.getConfig().getInstanceName() + "] is fake node"); } if (writeSource.isReadOnly()) { throw new IllegalArgumentException("The Data Source[" + writeSource.getConfig().getUrl() + "] is running with the --read-only option so it cannot execute this statement"); diff --git a/src/main/java/com/actiontech/dble/backend/heartbeat/MySQLDetector.java b/src/main/java/com/actiontech/dble/backend/heartbeat/MySQLDetector.java index a0d09526d..ce8d6bb51 100644 --- a/src/main/java/com/actiontech/dble/backend/heartbeat/MySQLDetector.java +++ b/src/main/java/com/actiontech/dble/backend/heartbeat/MySQLDetector.java @@ -82,9 +82,9 @@ public class MySQLDetector implements SQLQueryResultListener resultResult = result.getResult(); - if (source.getHostConfig().isShowSlaveSql()) { + if (source.getDbGroupConfig().isShowSlaveSql()) { setStatusBySlave(source, resultResult); - } else if (source.getHostConfig().isSelectReadOnlySql()) { + } else if (source.getDbGroupConfig().isSelectReadOnlySql()) { setStatusByReadOnly(source, resultResult); } else { setStatusForNormalHeartbeat(source); @@ -198,7 +198,7 @@ public class MySQLDetector implements SQLQueryResultListener source.getHostConfig().getDelayThreshold()) { + if (behindMaster > source.getDbGroupConfig().getDelayThreshold()) { MySQLHeartbeat.LOGGER.warn("found MySQL master/slave Replication delay !!! " + heartbeat.getSource().getConfig() + ", binlog sync time delay: " + behindMaster + "s"); } heartbeat.setSlaveBehindMaster(behindMaster); diff --git a/src/main/java/com/actiontech/dble/backend/heartbeat/MySQLHeartbeat.java b/src/main/java/com/actiontech/dble/backend/heartbeat/MySQLHeartbeat.java index b33089b70..191b7be26 100644 --- a/src/main/java/com/actiontech/dble/backend/heartbeat/MySQLHeartbeat.java +++ b/src/main/java/com/actiontech/dble/backend/heartbeat/MySQLHeartbeat.java @@ -52,9 +52,9 @@ public class MySQLHeartbeat { public MySQLHeartbeat(MySQLInstance source) { this.source = source; this.status = INIT_STATUS; - this.errorRetryCount = source.getHostConfig().getErrorRetryCount(); - this.heartbeatTimeout = source.getHostConfig().getHeartbeatTimeout(); - this.heartbeatSQL = source.getHostConfig().getHearbeatSQL(); + this.errorRetryCount = source.getDbGroupConfig().getErrorRetryCount(); + this.heartbeatTimeout = source.getDbGroupConfig().getHeartbeatTimeout(); + this.heartbeatSQL = source.getDbGroupConfig().getHearbeatSQL(); } public String getMessage() { @@ -114,7 +114,7 @@ public class MySQLHeartbeat { this.isChecking.set(false); this.message = errMsg; setError(); - Map labels = AlertUtil.genSingleLabel("data_host", this.source.getHostConfig().getName() + "-" + this.source.getConfig().getInstanceName()); + Map labels = AlertUtil.genSingleLabel("data_host", this.source.getDbGroupConfig().getName() + "-" + this.source.getConfig().getInstanceName()); AlertUtil.alert(AlarmCode.HEARTBEAT_FAIL, Alert.AlertLevel.WARN, "heartbeat status:" + this.status, "mysql", this.source.getConfig().getId(), labels); } @@ -132,7 +132,7 @@ public class MySQLHeartbeat { break; } if (this.status != OK_STATUS) { - Map labels = AlertUtil.genSingleLabel("data_host", this.source.getHostConfig().getName() + "-" + this.source.getConfig().getInstanceName()); + Map labels = AlertUtil.genSingleLabel("data_host", this.source.getDbGroupConfig().getName() + "-" + this.source.getConfig().getInstanceName()); AlertUtil.alert(AlarmCode.HEARTBEAT_FAIL, Alert.AlertLevel.WARN, "heartbeat status:" + this.status, "mysql", this.source.getConfig().getId(), labels); } } @@ -158,7 +158,7 @@ public class MySQLHeartbeat { this.status = OK_STATUS; this.errorCount = 0; this.startErrorTime.set(-1); - Map labels = AlertUtil.genSingleLabel("data_host", this.source.getHostConfig().getName() + "-" + this.source.getConfig().getInstanceName()); + Map labels = AlertUtil.genSingleLabel("data_host", this.source.getDbGroupConfig().getName() + "-" + this.source.getConfig().getInstanceName()); AlertUtil.alertResolve(AlarmCode.HEARTBEAT_FAIL, Alert.AlertLevel.WARN, "mysql", this.source.getConfig().getId(), labels); } if (isStop) { diff --git a/src/main/java/com/actiontech/dble/config/ConfigInitializer.java b/src/main/java/com/actiontech/dble/config/ConfigInitializer.java index b14d82bc3..fd088cab5 100644 --- a/src/main/java/com/actiontech/dble/config/ConfigInitializer.java +++ b/src/main/java/com/actiontech/dble/config/ConfigInitializer.java @@ -94,7 +94,7 @@ public class ConfigInitializer implements ProblemReporter { // if there are dbGroups exists. no empty shardingNodes allowed for (ShardingNode shardingNode : this.shardingNodes.values()) { if (shardingNode.getDbGroup() == null) { - throw new ConfigException("dataHost not exists " + shardingNode.getDbGroupName()); + throw new ConfigException("dbGroup not exists " + shardingNode.getDbGroupName()); } } } @@ -140,8 +140,8 @@ public class ConfigInitializer implements ProblemReporter { allUseHost.add(entry.getValue().getDbGroup().getGroupName()); } } else { - LOGGER.info("dataNode " + shardingNodeName + " is useless,server will ignore it"); - errorInfos.add(new ErrorInfo("Xml", "WARNING", "dataNode " + shardingNodeName + " is useless")); + LOGGER.info("shardingNode " + shardingNodeName + " is useless,server will ignore it"); + errorInfos.add(new ErrorInfo("Xml", "WARNING", "shardingNode " + shardingNodeName + " is useless")); iterator.remove(); } } @@ -175,13 +175,13 @@ public class ConfigInitializer implements ProblemReporter { checkMaxCon(pool); for (PhysicalDbInstance ds : pool.getAllDataSources()) { if (ds.getConfig().isDisabled()) { - errorInfos.add(new ErrorInfo("Backend", "WARNING", "DataHost[" + pool.getGroupName() + "," + ds.getName() + "] is disabled")); - LOGGER.info("DataHost[" + ds.getHostConfig().getName() + "] is disabled,just mark testing failed and skip it"); + errorInfos.add(new ErrorInfo("Backend", "WARNING", "dbGroup[" + pool.getGroupName() + "," + ds.getName() + "] is disabled")); + LOGGER.info("dbGroup[" + ds.getDbGroupConfig().getName() + "] is disabled,just mark testing failed and skip it"); ds.setTestConnSuccess(false); continue; } else if (ds.isFakeNode()) { - errorInfos.add(new ErrorInfo("Backend", "WARNING", "DataHost[" + pool.getGroupName() + "," + ds.getName() + "] is fake Node")); - LOGGER.info("DataHost[" + ds.getHostConfig().getName() + "] is disabled,just mark testing failed and skip it"); + errorInfos.add(new ErrorInfo("Backend", "WARNING", "dbGroup[" + pool.getGroupName() + "," + ds.getName() + "] is fake Node")); + LOGGER.info("dbGroup[" + ds.getDbGroupConfig().getName() + "] is disabled,just mark testing failed and skip it"); ds.setTestConnSuccess(false); continue; } @@ -220,12 +220,12 @@ public class ConfigInitializer implements ProblemReporter { } for (PhysicalDbInstance dataSource : pool.getAllDataSources()) { if (dataSource.getConfig().getMaxCon() < Math.max(schemasCount + 1, dataSource.getConfig().getMinCon())) { - errorInfos.add(new ErrorInfo("Xml", "NOTICE", "dbInstance[" + pool.getGroupName() + "." + dataSource.getConfig().getInstanceName() + "] maxCon too little,would be change to " + + errorInfos.add(new ErrorInfo("Xml", "NOTICE", "dbGroup[" + pool.getGroupName() + "." + dataSource.getConfig().getInstanceName() + "] maxCon too little,would be change to " + Math.max(schemasCount + 1, dataSource.getConfig().getMinCon()))); } if (Math.max(schemasCount + 1, dataSource.getConfig().getMinCon()) != dataSource.getConfig().getMinCon()) { - errorInfos.add(new ErrorInfo("Xml", "NOTICE", "DataHost[" + pool.getGroupName() + "] minCon too little,Dble would init dataHost" + + errorInfos.add(new ErrorInfo("Xml", "NOTICE", "dbGroup[" + pool.getGroupName() + "] minCon too little, Dble would init dbGroup" + " with " + (schemasCount + 1) + " connections")); } } @@ -234,7 +234,7 @@ public class ConfigInitializer implements ProblemReporter { private void testDataSource(Set errNodeKeys, Set errSourceKeys, BoolPtr isConnectivity, BoolPtr isAllDataSourceConnected, List> nodeList, PhysicalDbGroup pool, PhysicalDbInstance ds) { boolean isMaster = ds == pool.getWriteSource(); - String dataSourceName = "DataHost[" + ds.getHostConfig().getName() + "." + ds.getName() + "]"; + String dataSourceName = "dbInstance[" + ds.getDbGroupConfig().getName() + "." + ds.getName() + "]"; try { BoolPtr isDSConnectedPtr = new BoolPtr(false); TestTask testDsTask = new TestTask(ds, isDSConnectedPtr); @@ -246,7 +246,7 @@ public class ConfigInitializer implements ProblemReporter { isConnectivity.set(false); isAllDataSourceConnected.set(false); errSourceKeys.add(dataSourceName); - errorInfos.add(new ErrorInfo("Backend", "WARNING", "Can't connect to [" + ds.getHostConfig().getName() + "," + ds.getName() + "]")); + errorInfos.add(new ErrorInfo("Backend", "WARNING", "Can't connect to [" + ds.getDbGroupConfig().getName() + "," + ds.getName() + "]")); markDataSourceSchemaFail(errNodeKeys, nodeList, dataSourceName); } else { BoolPtr isSchemaConnectedPtr = new BoolPtr(true); diff --git a/src/main/java/com/actiontech/dble/config/helper/TestSchemasTask.java b/src/main/java/com/actiontech/dble/config/helper/TestSchemasTask.java index 1cbb0ac26..a2fdd249f 100644 --- a/src/main/java/com/actiontech/dble/config/helper/TestSchemasTask.java +++ b/src/main/java/com/actiontech/dble/config/helper/TestSchemasTask.java @@ -89,7 +89,7 @@ public class TestSchemasTask extends Thread { } String nodeName = nodes.remove(schema); if (nodeName != null) { - String key = "DataHost[" + ds.getHostConfig().getName() + "." + ds.getConfig().getInstanceName() + "],data_node[" + nodeName + "],schema[" + schema + "]"; + String key = "DataHost[" + ds.getDbGroupConfig().getName() + "." + ds.getConfig().getInstanceName() + "],data_node[" + nodeName + "],schema[" + schema + "]"; LOGGER.info("SelfCheck### test " + key + " database connection success "); } } @@ -102,11 +102,11 @@ public class TestSchemasTask extends Thread { for (Map.Entry node : nodes.entrySet()) { boolPtr.set(false); String nodeName = node.getValue(); - String key = "dbInstance[" + ds.getHostConfig().getName() + "." + ds.getConfig().getInstanceName() + "],sharding_node[" + nodeName + "],schema[" + node.getKey() + "]"; + String key = "dbInstance[" + ds.getDbGroupConfig().getName() + "." + ds.getConfig().getInstanceName() + "],sharding_node[" + nodeName + "],schema[" + node.getKey() + "]"; errKeys.add(key); LOGGER.warn("test conn " + key + " error"); if (needAlert) { - Map labels = AlertUtil.genSingleLabel("dbInstance", ds.getHostConfig().getName() + "-" + ds.getConfig().getInstanceName()); + Map labels = AlertUtil.genSingleLabel("dbInstance", ds.getDbGroupConfig().getName() + "-" + ds.getConfig().getInstanceName()); labels.put("sharding_node", nodeName); AlertUtil.alert(AlarmCode.SHARDING_NODE_LACK, Alert.AlertLevel.WARN, "{" + key + "} is lack", "mysql", ds.getConfig().getId(), labels); ToResolveContainer.SHARDING_NODE_LACK.add(key); diff --git a/src/main/java/com/actiontech/dble/manager/handler/DatabaseHandler.java b/src/main/java/com/actiontech/dble/manager/handler/DatabaseHandler.java index 809478c92..fd46e769f 100644 --- a/src/main/java/com/actiontech/dble/manager/handler/DatabaseHandler.java +++ b/src/main/java/com/actiontech/dble/manager/handler/DatabaseHandler.java @@ -36,7 +36,7 @@ import java.util.regex.Pattern; public final class DatabaseHandler { private static final OkPacket OK = new OkPacket(); - private static final Pattern PATTERN = Pattern.compile("^\\s*(create|drop)\\s*database\\s*@@dataNode\\s*=\\s*(['\"])([a-zA-Z_0-9,$\\-]+)(['\"])\\s*$", Pattern.CASE_INSENSITIVE); + private static final Pattern PATTERN = Pattern.compile("^\\s*(create|drop)\\s*database\\s*@@shardingNode\\s*=\\s*(['\"])([a-zA-Z_0-9,$\\-]+)(['\"])\\s*$", Pattern.CASE_INSENSITIVE); private static final String CREATE_DATABASE = "create database if not exists `%s`"; private static final String DROP_DATABASE = "drop database if exists `%s`"; @@ -54,15 +54,15 @@ public final class DatabaseHandler { Matcher ma = PATTERN.matcher(stmt); if (!ma.matches() || !ma.group(2).equals(ma.group(4))) { - c.writeErrMessage(ErrorCode.ER_UNKNOWN_ERROR, "The sql did not match create|drop database @@dataNode ='dn......'"); + c.writeErrMessage(ErrorCode.ER_UNKNOWN_ERROR, "The sql did not match create|drop database @@shardingNode ='dn......'"); return; } String shardingNodeStr = ma.group(3); Set shardingNodes = new HashSet<>(Arrays.asList(SplitUtil.split(shardingNodeStr, ',', '$', '-'))); - //check dataNodes + //check shardingNodes for (String singleDn : shardingNodes) { if (DbleServer.getInstance().getConfig().getShardingNodes().get(singleDn) == null) { - c.writeErrMessage(ErrorCode.ER_UNKNOWN_ERROR, "DataNode " + singleDn + " does not exists"); + c.writeErrMessage(ErrorCode.ER_UNKNOWN_ERROR, "shardingNode " + singleDn + " does not exists"); return; } } @@ -82,10 +82,10 @@ public final class DatabaseHandler { errShardingNodes.add(shardingNode); } else if (isCreate) { dn.setSchemaExists(true); - tryResolve(ds.getHostConfig().getName(), ds.getConfig().getInstanceName(), shardingNode, schema, ds.getConfig().getId()); + tryResolve(ds.getDbGroupConfig().getName(), ds.getConfig().getInstanceName(), shardingNode, schema, ds.getConfig().getId()); } else { dn.setSchemaExists(false); - tryAlert(ds.getHostConfig().getName(), ds.getConfig().getInstanceName(), shardingNode, schema, ds.getConfig().getId()); + tryAlert(ds.getDbGroupConfig().getName(), ds.getConfig().getInstanceName(), shardingNode, schema, ds.getConfig().getId()); } numberCount.decrementAndGet(); } diff --git a/src/main/java/com/actiontech/dble/manager/handler/SelectHandler.java b/src/main/java/com/actiontech/dble/manager/handler/SelectHandler.java index 58f6a09b4..12f17ac75 100644 --- a/src/main/java/com/actiontech/dble/manager/handler/SelectHandler.java +++ b/src/main/java/com/actiontech/dble/manager/handler/SelectHandler.java @@ -64,7 +64,7 @@ public final class SelectHandler { TransformSQLJob sqlJob = new TransformSQLJob(stmt, null, source, c); sqlJob.run(); } else { - c.writeErrMessage(ErrorCode.ER_YES, "no valid data host"); + c.writeErrMessage(ErrorCode.ER_YES, "no valid dbGroup/dbInstance"); } } else { c.writeErrMessage(ErrorCode.ER_YES, "Unsupported statement"); diff --git a/src/main/java/com/actiontech/dble/manager/handler/ShowHandler.java b/src/main/java/com/actiontech/dble/manager/handler/ShowHandler.java index c6134865e..250dc1f48 100644 --- a/src/main/java/com/actiontech/dble/manager/handler/ShowHandler.java +++ b/src/main/java/com/actiontech/dble/manager/handler/ShowHandler.java @@ -63,10 +63,10 @@ public final class ShowHandler { case ManagerParseShow.DATABASE: ShowDatabase.execute(c); break; - case ManagerParseShow.DATA_NODE: + case ManagerParseShow.SHARDING_NODE: ShowShardingNode.execute(c, null); break; - case ManagerParseShow.DATANODE_SCHEMA: { + case ManagerParseShow.SHARDING_NODE_SCHEMA: { String name = stmt.substring(rs >>> 8).trim(); if (StringUtil.isEmpty(name)) { c.writeErrMessage(ErrorCode.ER_YES, "Unsupported statement"); @@ -75,10 +75,10 @@ public final class ShowHandler { } break; } - case ManagerParseShow.DATASOURCE: + case ManagerParseShow.DB_INSTANCE: ShowDataSource.execute(c, null); break; - case ManagerParseShow.DATASOURCE_WHERE: { + case ManagerParseShow.DB_INSTANCE_WHERE: { String name = stmt.substring(rs >>> 8).trim(); if (StringUtil.isEmpty(name)) { c.writeErrMessage(ErrorCode.ER_YES, "Unsupported statement"); @@ -87,7 +87,7 @@ public final class ShowHandler { } break; } - case ManagerParseShow.TABLE_DATA_NODE: { + case ManagerParseShow.TABLE_SHARDING_NODE: { String tableInfo = stmt.substring(rs >>> 8).trim(); ShowTableShardingNode.execute(c, tableInfo); break; @@ -170,10 +170,10 @@ public final class ShowHandler { case ManagerParseShow.HEARTBEAT_DETAIL://by songwie ShowHeartbeatDetail.response(c, stmt); break; - case ManagerParseShow.DATASOURCE_SYNC://by songwie + case ManagerParseShow.DB_INSTANCE_SYNC://by songwie ShowDatasourceSyn.response(c); break; - case ManagerParseShow.DATASOURCE_SYNC_DETAIL://by songwie + case ManagerParseShow.DB_INSTANCE_SYNC_DETAIL://by songwie ShowDatasourceSynDetail.response(c, stmt); break; case ManagerParseShow.DIRECTMEMORY: diff --git a/src/main/java/com/actiontech/dble/manager/response/PauseStart.java b/src/main/java/com/actiontech/dble/manager/response/PauseStart.java index dade7b1d6..c41d1b814 100644 --- a/src/main/java/com/actiontech/dble/manager/response/PauseStart.java +++ b/src/main/java/com/actiontech/dble/manager/response/PauseStart.java @@ -27,7 +27,7 @@ import java.util.regex.Matcher; import java.util.regex.Pattern; public final class PauseStart { - private static final Pattern PATTERN_FOR_PAUSE = Pattern.compile("^\\s*pause\\s*@@dataNode\\s*=\\s*'([a-zA-Z_0-9,]+)'\\s*and\\s*timeout\\s*=\\s*([0-9]+)\\s*(,\\s*queue\\s*=\\s*([0-9]+)){0,1}\\s*(,\\s*wait_limit\\s*=\\s*([0-9]+)){0,1}\\s*$", Pattern.CASE_INSENSITIVE); + private static final Pattern PATTERN_FOR_PAUSE = Pattern.compile("^\\s*pause\\s*@@shardingNode\\s*=\\s*'([a-zA-Z_0-9,]+)'\\s*and\\s*timeout\\s*=\\s*([0-9]+)\\s*(,\\s*queue\\s*=\\s*([0-9]+)){0,1}\\s*(,\\s*wait_limit\\s*=\\s*([0-9]+)){0,1}\\s*$", Pattern.CASE_INSENSITIVE); private static final OkPacket OK = new OkPacket(); private static final int DEFAULT_CONNECTION_TIME_OUT = 120000; private static final int DEFAULT_QUEUE_LIMIT = 200; @@ -57,7 +57,7 @@ public final class PauseStart { Matcher ma = PATTERN_FOR_PAUSE.matcher(sql); if (!ma.matches()) { - c.writeErrMessage(ErrorCode.ER_UNKNOWN_ERROR, "The sql did not match pause @@dataNode ='dn......' and timeout = ([0-9]+)"); + c.writeErrMessage(ErrorCode.ER_UNKNOWN_ERROR, "The sql did not match pause @@shardingNode ='dn......' and timeout = ([0-9]+)"); return; } String shardingNode = ma.group(1); @@ -67,7 +67,7 @@ public final class PauseStart { //check dataNodes for (String singleDn : shardingNodes) { if (DbleServer.getInstance().getConfig().getShardingNodes().get(singleDn) == null) { - c.writeErrMessage(ErrorCode.ER_UNKNOWN_ERROR, "DataNode " + singleDn + " did not exists"); + c.writeErrMessage(ErrorCode.ER_UNKNOWN_ERROR, "ShardingNode " + singleDn + " did not exists"); return; } } @@ -81,7 +81,7 @@ public final class PauseStart { if (!PauseDatanodeManager.getInstance().startPausing(connectionTimeOut, shardingNodes, queueLimit)) { - c.writeErrMessage(ErrorCode.ER_UNKNOWN_ERROR, "Some dataNodes is paused, please resume first"); + c.writeErrMessage(ErrorCode.ER_UNKNOWN_ERROR, "Some shardingNodes is paused, please resume first"); return; } diff --git a/src/main/java/com/actiontech/dble/manager/response/ReloadMetaData.java b/src/main/java/com/actiontech/dble/manager/response/ReloadMetaData.java index 84bf58b9e..9056e754c 100644 --- a/src/main/java/com/actiontech/dble/manager/response/ReloadMetaData.java +++ b/src/main/java/com/actiontech/dble/manager/response/ReloadMetaData.java @@ -52,7 +52,7 @@ public final class ReloadMetaData { } } - String msg = "data host has no write_host"; + String msg = "dbGroup has no primary dbInstance"; boolean isOK = true; boolean interrupt = false; final ReentrantLock lock = ProxyMeta.getInstance().getTmManager().getMetaLock(); diff --git a/src/main/java/com/actiontech/dble/manager/response/SelectSessionTxReadOnly.java b/src/main/java/com/actiontech/dble/manager/response/SelectSessionTxReadOnly.java index dc5555eb4..62180505f 100644 --- a/src/main/java/com/actiontech/dble/manager/response/SelectSessionTxReadOnly.java +++ b/src/main/java/com/actiontech/dble/manager/response/SelectSessionTxReadOnly.java @@ -44,7 +44,7 @@ public final class SelectSessionTxReadOnly { // write rows RowDataPacket row = new RowDataPacket(1); row.setPacketId(++packetId); - row.add(LongUtil.toBytes(0)); + row.add(LongUtil.toBytes(c.getUserConfig().isReadOnly() ? 1 : 0)); buffer = row.write(buffer, c, true); // write last eof diff --git a/src/main/java/com/actiontech/dble/manager/response/ShowDataDistribution.java b/src/main/java/com/actiontech/dble/manager/response/ShowDataDistribution.java index 899080259..d9346b82d 100644 --- a/src/main/java/com/actiontech/dble/manager/response/ShowDataDistribution.java +++ b/src/main/java/com/actiontech/dble/manager/response/ShowDataDistribution.java @@ -45,7 +45,7 @@ public final class ShowDataDistribution { byte packetId = 0; HEADER.setPacketId(++packetId); - FIELDS[i] = PacketUtil.getField("DATANODE", Fields.FIELD_TYPE_VAR_STRING); + FIELDS[i] = PacketUtil.getField("SHARDING_NODE", Fields.FIELD_TYPE_VAR_STRING); FIELDS[i++].setPacketId(++packetId); FIELDS[i] = PacketUtil.getField("COUNT", Fields.FIELD_TYPE_LONG); FIELDS[i].setPacketId(++packetId); diff --git a/src/main/java/com/actiontech/dble/manager/response/ShowDataSource.java b/src/main/java/com/actiontech/dble/manager/response/ShowDataSource.java index b480dd273..91756549a 100644 --- a/src/main/java/com/actiontech/dble/manager/response/ShowDataSource.java +++ b/src/main/java/com/actiontech/dble/manager/response/ShowDataSource.java @@ -44,7 +44,7 @@ public final class ShowDataSource { byte packetId = 0; HEADER.setPacketId(++packetId); - FIELDS[i] = PacketUtil.getField("DATAHOST", Fields.FIELD_TYPE_VAR_STRING); + FIELDS[i] = PacketUtil.getField("DB_GROUP", Fields.FIELD_TYPE_VAR_STRING); FIELDS[i++].setPacketId(++packetId); FIELDS[i] = PacketUtil.getField("NAME", Fields.FIELD_TYPE_VAR_STRING); @@ -104,7 +104,7 @@ public final class ShowDataSource { if (null != name) { ShardingNode dn = conf.getShardingNodes().get(name); for (PhysicalDbInstance w : dn.getDbGroup().getAllDataSources()) { - RowDataPacket row = getRow(w.getHostConfig().getName(), w, c.getCharset().getResults()); + RowDataPacket row = getRow(w.getDbGroupConfig().getName(), w, c.getCharset().getResults()); row.setPacketId(++packetId); buffer = row.write(buffer, c, true); } diff --git a/src/main/java/com/actiontech/dble/manager/response/ShowDatasourceSyn.java b/src/main/java/com/actiontech/dble/manager/response/ShowDatasourceSyn.java index b491062db..8c8626fd0 100644 --- a/src/main/java/com/actiontech/dble/manager/response/ShowDatasourceSyn.java +++ b/src/main/java/com/actiontech/dble/manager/response/ShowDatasourceSyn.java @@ -45,7 +45,7 @@ public final class ShowDatasourceSyn { byte packetId = 0; HEADER.setPacketId(++packetId); - FIELDS[i] = PacketUtil.getField("DATAHOST", Fields.FIELD_TYPE_VAR_STRING); + FIELDS[i] = PacketUtil.getField("DB_GROUP", Fields.FIELD_TYPE_VAR_STRING); FIELDS[i++].setPacketId(++packetId); FIELDS[i] = PacketUtil.getField("NAME", Fields.FIELD_TYPE_VAR_STRING); diff --git a/src/main/java/com/actiontech/dble/manager/response/ShowDatasourceSynDetail.java b/src/main/java/com/actiontech/dble/manager/response/ShowDatasourceSynDetail.java index 8e650386b..17a8fd4f9 100644 --- a/src/main/java/com/actiontech/dble/manager/response/ShowDatasourceSynDetail.java +++ b/src/main/java/com/actiontech/dble/manager/response/ShowDatasourceSynDetail.java @@ -49,7 +49,7 @@ public final class ShowDatasourceSynDetail { byte packetId = 0; HEADER.setPacketId(++packetId); - FIELDS[i] = PacketUtil.getField("DATAHOST", Fields.FIELD_TYPE_VAR_STRING); + FIELDS[i] = PacketUtil.getField("DB_GROUP", Fields.FIELD_TYPE_VAR_STRING); FIELDS[i++].setPacketId(++packetId); FIELDS[i] = PacketUtil.getField("NAME", Fields.FIELD_TYPE_VAR_STRING); diff --git a/src/main/java/com/actiontech/dble/manager/response/ShowHelp.java b/src/main/java/com/actiontech/dble/manager/response/ShowHelp.java index a9896a5de..74ed037eb 100644 --- a/src/main/java/com/actiontech/dble/manager/response/ShowHelp.java +++ b/src/main/java/com/actiontech/dble/manager/response/ShowHelp.java @@ -156,7 +156,7 @@ public final class ShowHelp { HELPS.put("kill @@ddl_lock where schema='?' and table='?'", "Kill ddl lock held by the specified ddl"); // stop - HELPS.put("stop @@heartbeat name:time", "Pause dataNode heartbeat"); + HELPS.put("stop @@heartbeat name:time", "Pause shardingNode heartbeat"); // reload HELPS.put("reload @@config", "Reload basic config from file"); @@ -190,9 +190,9 @@ public final class ShowHelp { HELPS.put("dryrun", "Dry run to check config before reload xml"); //pause - HELPS.put("pause @@DataNode = 'dn1,dn2,....' and timeout = ? [,queue = ?,wait_limit = ?]", "Block query requests witch specified dataNodes involved "); - HELPS.put("RESUME", "Resume the query requests of the paused dataNodes"); - HELPS.put("show @@pause", "Show which dataNodes have bean pause"); + HELPS.put("pause @@shardingNode = 'dn1,dn2,....' and timeout = ? [,queue = ?,wait_limit = ?]", "Block query requests witch specified shardingNodes involved "); + HELPS.put("RESUME", "Resume the query requests of the paused shardingNodes"); + HELPS.put("show @@pause", "Show which shardingNodes have bean pause"); //slow_query_log HELPS.put("show @@slow_query_log", "Show if the slow query log is enabled"); @@ -206,9 +206,9 @@ public final class ShowHelp { HELPS.put("reload @@slow_query.flushsize", "Reset the flush size"); //create database - HELPS.put("create database @@dataNode ='dn......'", "create database for shardingNode setted in sharding.xml"); + HELPS.put("create database @@shardingNode ='dn......'", "create database for shardingNode set in sharding.xml"); //drop database - HELPS.put("drop database @@dataNode ='dn......'", "drop database for shardingNode setted in sharding.xml"); + HELPS.put("drop database @@shardingNode ='dn......'", "drop database for shardingNode set in sharding.xml"); //check @@metadata HELPS.put("check @@metadata", "show last time of `reload @@metadata`/start dble"); @@ -225,7 +225,7 @@ public final class ShowHelp { HELPS.put("dataHost @@events ", "show all the dataHost ha event which not finished yet "); //dump file - HELPS.put("split src dest -sschema -r500 -w500 -l10000", "split dump file into multi dump files according to dataNode"); + HELPS.put("split src dest -sschema -r500 -w500 -l10000", "split dump file into multi dump files according to shardingNode"); // list sort KEYS.addAll(HELPS.keySet()); diff --git a/src/main/java/com/actiontech/dble/manager/response/ShowProcessList.java b/src/main/java/com/actiontech/dble/manager/response/ShowProcessList.java index e4b074717..f9ec1501f 100644 --- a/src/main/java/com/actiontech/dble/manager/response/ShowProcessList.java +++ b/src/main/java/com/actiontech/dble/manager/response/ShowProcessList.java @@ -51,7 +51,7 @@ public final class ShowProcessList { FIELDS[i] = PacketUtil.getField("Front_Id", Fields.FIELD_TYPE_LONG); FIELDS[i++].setPacketId(++packetId); - FIELDS[i] = PacketUtil.getField("Datanode", Fields.FIELD_TYPE_VAR_STRING); + FIELDS[i] = PacketUtil.getField("shardingNode", Fields.FIELD_TYPE_VAR_STRING); FIELDS[i++].setPacketId(++packetId); FIELDS[i] = PacketUtil.getField("MysqlId", Fields.FIELD_TYPE_VAR_STRING); @@ -174,7 +174,7 @@ public final class ShowProcessList { RowDataPacket row = new RowDataPacket(FIELD_COUNT); // Front_Id row.add(LongUtil.toBytes(fc.getId())); - // Datanode + // shardingNode row.add(StringUtil.encode(shardingNode == null ? NULL_VAL : shardingNode, charset)); // BconnID row.add(threadId == null ? StringUtil.encode(NULL_VAL, charset) : LongUtil.toBytes(threadId)); diff --git a/src/main/java/com/actiontech/dble/manager/response/ShowShardingNode.java b/src/main/java/com/actiontech/dble/manager/response/ShowShardingNode.java index 7fe1c3205..cc304ce32 100644 --- a/src/main/java/com/actiontech/dble/manager/response/ShowShardingNode.java +++ b/src/main/java/com/actiontech/dble/manager/response/ShowShardingNode.java @@ -53,7 +53,7 @@ public final class ShowShardingNode { FIELDS[i] = PacketUtil.getField("NAME", Fields.FIELD_TYPE_VAR_STRING); FIELDS[i++].setPacketId(++packetId); - FIELDS[i] = PacketUtil.getField("DATHOST", Fields.FIELD_TYPE_VAR_STRING); + FIELDS[i] = PacketUtil.getField("DBGROUP", Fields.FIELD_TYPE_VAR_STRING); FIELDS[i++].setPacketId(++packetId); FIELDS[i] = PacketUtil.getField("SCHEMA_EXISTS", Fields.FIELD_TYPE_VAR_STRING); diff --git a/src/main/java/com/actiontech/dble/manager/response/ShowXASession.java b/src/main/java/com/actiontech/dble/manager/response/ShowXASession.java index 60efa932d..bdcde9688 100644 --- a/src/main/java/com/actiontech/dble/manager/response/ShowXASession.java +++ b/src/main/java/com/actiontech/dble/manager/response/ShowXASession.java @@ -47,7 +47,7 @@ public final class ShowXASession { FIELDS[i] = PacketUtil.getField("XA_STATE", Fields.FIELD_TYPE_VARCHAR); FIELDS[i++].setPacketId(++packetId); - FIELDS[i] = PacketUtil.getField("DATANODES", Fields.FIELD_TYPE_VARCHAR); + FIELDS[i] = PacketUtil.getField("SHARDING_NODES", Fields.FIELD_TYPE_VARCHAR); FIELDS[i].setPacketId(++packetId); EOF.setPacketId(++packetId); diff --git a/src/main/java/com/actiontech/dble/meta/table/AbstractTableMetaHandler.java b/src/main/java/com/actiontech/dble/meta/table/AbstractTableMetaHandler.java index 65a7b43c1..c650c1d7c 100644 --- a/src/main/java/com/actiontech/dble/meta/table/AbstractTableMetaHandler.java +++ b/src/main/java/com/actiontech/dble/meta/table/AbstractTableMetaHandler.java @@ -92,7 +92,7 @@ public abstract class AbstractTableMetaHandler { logger.info(tableId + " on result " + result.isSuccess() + " count is " + nodesNumber); String key = null; if (ds != null) { - key = "dbInstance[" + ds.getHostConfig().getName() + "." + ds.getConfig().getInstanceName() + "],sharding_node[" + shardingNode + "],schema[" + schema + "]"; + key = "dbInstance[" + ds.getDbGroupConfig().getName() + "." + ds.getConfig().getInstanceName() + "],sharding_node[" + shardingNode + "],schema[" + schema + "]"; } if (!result.isSuccess()) { //not thread safe @@ -113,7 +113,7 @@ public abstract class AbstractTableMetaHandler { ToResolveContainer.TABLE_LACK, tableId); } if (ds != null && ToResolveContainer.SHARDING_NODE_LACK.contains(key)) { - Map labels = AlertUtil.genSingleLabel("dbInstance", ds.getHostConfig().getName() + "-" + ds.getConfig().getInstanceName()); + Map labels = AlertUtil.genSingleLabel("dbInstance", ds.getDbGroupConfig().getName() + "-" + ds.getConfig().getInstanceName()); labels.put("sharding_node", shardingNode); AlertUtil.alertResolve(AlarmCode.SHARDING_NODE_LACK, Alert.AlertLevel.WARN, "mysql", ds.getConfig().getId(), labels, ToResolveContainer.SHARDING_NODE_LACK, key); diff --git a/src/main/java/com/actiontech/dble/meta/table/GetNodeTablesHandler.java b/src/main/java/com/actiontech/dble/meta/table/GetNodeTablesHandler.java index 3fc1be5be..1b85fd866 100644 --- a/src/main/java/com/actiontech/dble/meta/table/GetNodeTablesHandler.java +++ b/src/main/java/com/actiontech/dble/meta/table/GetNodeTablesHandler.java @@ -89,14 +89,14 @@ public abstract class GetNodeTablesHandler { public void onResult(SQLQueryResult>> result) { String key = null; if (ds != null) { - key = "dbInstance[" + ds.getHostConfig().getName() + "." + ds.getConfig().getInstanceName() + "],sharding_node[" + shardingNode + "],schema[" + schema + "]"; + key = "dbInstance[" + ds.getDbGroupConfig().getName() + "." + ds.getConfig().getInstanceName() + "],sharding_node[" + shardingNode + "],schema[" + schema + "]"; } if (!result.isSuccess()) { //not thread safe String warnMsg = "Can't show tables from DataNode:" + shardingNode + "! Maybe the data node is not initialized!"; LOGGER.warn(warnMsg); if (ds != null) { - Map labels = AlertUtil.genSingleLabel("dbInstance", ds.getHostConfig().getName() + "-" + ds.getConfig().getInstanceName()); + Map labels = AlertUtil.genSingleLabel("dbInstance", ds.getDbGroupConfig().getName() + "-" + ds.getConfig().getInstanceName()); labels.put("sharding_node", shardingNode); AlertUtil.alert(AlarmCode.SHARDING_NODE_LACK, Alert.AlertLevel.WARN, "{" + key + "} is lack", "mysql", ds.getConfig().getId(), labels); ToResolveContainer.SHARDING_NODE_LACK.add(key); @@ -105,7 +105,7 @@ public abstract class GetNodeTablesHandler { return; } if (ds != null && ToResolveContainer.SHARDING_NODE_LACK.contains(key)) { - Map labels = AlertUtil.genSingleLabel("dbInstance", ds.getHostConfig().getName() + "-" + ds.getConfig().getInstanceName()); + Map labels = AlertUtil.genSingleLabel("dbInstance", ds.getDbGroupConfig().getName() + "-" + ds.getConfig().getInstanceName()); labels.put("sharding_node", shardingNode); AlertUtil.alertResolve(AlarmCode.SHARDING_NODE_LACK, Alert.AlertLevel.WARN, "mysql", ds.getConfig().getId(), labels, ToResolveContainer.SHARDING_NODE_LACK, key); diff --git a/src/main/java/com/actiontech/dble/meta/table/GetTableMetaHandler.java b/src/main/java/com/actiontech/dble/meta/table/GetTableMetaHandler.java index 758637a7d..746e6547e 100644 --- a/src/main/java/com/actiontech/dble/meta/table/GetTableMetaHandler.java +++ b/src/main/java/com/actiontech/dble/meta/table/GetTableMetaHandler.java @@ -82,10 +82,10 @@ public abstract class GetTableMetaHandler { public void onResult(SQLQueryResult>> result) { String key = null; if (ds != null) { - key = "dbInstance[" + ds.getHostConfig().getName() + "." + ds.getConfig().getInstanceName() + "],sharding_node[" + shardingNode + "],schema[" + schema + "]"; + key = "dbInstance[" + ds.getDbGroupConfig().getName() + "." + ds.getConfig().getInstanceName() + "],sharding_node[" + shardingNode + "],schema[" + schema + "]"; } if (ds != null && ToResolveContainer.SHARDING_NODE_LACK.contains(key)) { - Map labels = AlertUtil.genSingleLabel("dbInstance", ds.getHostConfig().getName() + "-" + ds.getConfig().getInstanceName()); + Map labels = AlertUtil.genSingleLabel("dbInstance", ds.getDbGroupConfig().getName() + "-" + ds.getConfig().getInstanceName()); labels.put("sharding_node", shardingNode); AlertUtil.alertResolve(AlarmCode.SHARDING_NODE_LACK, Alert.AlertLevel.WARN, "mysql", ds.getConfig().getId(), labels, ToResolveContainer.SHARDING_NODE_LACK, key); diff --git a/src/main/java/com/actiontech/dble/route/parser/ManagerParseShow.java b/src/main/java/com/actiontech/dble/route/parser/ManagerParseShow.java index cfb903b7c..271284157 100644 --- a/src/main/java/com/actiontech/dble/route/parser/ManagerParseShow.java +++ b/src/main/java/com/actiontech/dble/route/parser/ManagerParseShow.java @@ -17,8 +17,8 @@ public final class ManagerParseShow { public static final int COMMAND = 1; public static final int CONNECTION = 2; public static final int DATABASE = 3; - public static final int DATA_NODE = 4; - public static final int DATASOURCE = 5; + public static final int SHARDING_NODE = 4; + public static final int DB_INSTANCE = 5; public static final int HELP = 6; public static final int CUSTOM_MYSQL_HA = 7; public static final int PROCESSOR = 8; @@ -37,10 +37,10 @@ public final class ManagerParseShow { public static final int VERSION = 24; public static final int CONNECTION_SQL_STATUS = 26; public static final int CONNECTION_SQL = 27; - public static final int DATANODE_SCHEMA = 28; - public static final int DATASOURCE_WHERE = 29; + public static final int SHARDING_NODE_SCHEMA = 28; + public static final int DB_INSTANCE_WHERE = 29; public static final int HEARTBEAT = 30; - public static final int TABLE_DATA_NODE = 31; + public static final int TABLE_SHARDING_NODE = 31; public static final int BACKEND = 33; public static final int BACKEND_OLD = 34; public static final int CACHE = 35; @@ -48,8 +48,8 @@ public final class ManagerParseShow { public static final int SYSPARAM = 37; public static final int SYSLOG = 38; public static final int HEARTBEAT_DETAIL = 39; - public static final int DATASOURCE_SYNC = 40; - public static final int DATASOURCE_SYNC_DETAIL = 41; + public static final int DB_INSTANCE_SYNC = 40; + public static final int DB_INSTANCE_SYNC_DETAIL = 41; public static final int WHITE_HOST = 43; public static final int DIRECTMEMORY = 45; public static final int BINLOG_STATUS = 47; @@ -447,6 +447,9 @@ public final class ManagerParseShow { case 'I': case 'i': return show2DICheck(stmt, offset); + case 'b': + case 'B': + return show2DBCheck(stmt, offset); default: return OTHER; } @@ -464,12 +467,6 @@ public final class ManagerParseShow { case 'B': case 'b': return show2DataBCheck(stmt, offset); - case 'N': - case 'n': - return show2DataNCheck(stmt, offset); - case 'S': - case 's': - return show2DataSCheck(stmt, offset); case '_': return show2DataDistributionCheck(stmt, offset); default: @@ -536,8 +533,7 @@ public final class ManagerParseShow { return OTHER; } - // SHOW @@DataSyn - private static int show2DataSynCheck(String stmt, int offset) { + private static int show2DBinsSynCheck(String stmt, int offset) { if (stmt.length() > ++offset) { switch (stmt.charAt(offset)) { case 'S': @@ -569,7 +565,7 @@ public final class ManagerParseShow { return OTHER; } - //show @@datasource.syndetail + //show @@dbinstance.syndetail private static int show2SynDetailCheck(String stmt, int offset) { if (stmt.length() > offset + "etail where name=".length()) { char c1 = stmt.charAt(++offset); @@ -620,7 +616,7 @@ public final class ManagerParseShow { } String name = stmt.substring(offset).trim(); if (name.length() > 0 && !name.contains(" ")) { - return DATASOURCE_SYNC_DETAIL; + return DB_INSTANCE_SYNC_DETAIL; } } } @@ -631,7 +627,7 @@ public final class ManagerParseShow { return OTHER; } - //show @@datasource.synstatus + //show @@dbinstance.synstatus private static int show2SynStatuslCheck(String stmt, int offset) { if (stmt.length() > offset + "tatus".length()) { char c1 = stmt.charAt(++offset); @@ -645,7 +641,7 @@ public final class ManagerParseShow { if (ParseUtil.isErrorTail(++offset, stmt)) { return OTHER; } - return DATASOURCE_SYNC; + return DB_INSTANCE_SYNC; } } return OTHER; @@ -792,6 +788,9 @@ public final class ManagerParseShow { case 'L': case 'l': return show2SlCheck(stmt, offset); + case 'H': + case 'h': + return show2ShCheck(stmt, offset); default: return OTHER; } @@ -916,6 +915,53 @@ public final class ManagerParseShow { return OTHER; } + + //show @@shardingnode + private static int show2ShCheck(String stmt, int offset) { + if (stmt.length() > offset + "ARDINGNODE".length()) { + char c1 = stmt.charAt(++offset); + char c2 = stmt.charAt(++offset); + char c3 = stmt.charAt(++offset); + char c4 = stmt.charAt(++offset); + char c5 = stmt.charAt(++offset); + char c6 = stmt.charAt(++offset); + char c7 = stmt.charAt(++offset); + char c8 = stmt.charAt(++offset); + char c9 = stmt.charAt(++offset); + char c10 = stmt.charAt(++offset); + if ((c1 == 'A' || c1 == 'a') && (c2 == 'R' || c2 == 'r') && (c3 == 'D' || c3 == 'd') && + (c4 == 'I' || c4 == 'i') && (c5 == 'N' || c5 == 'n') && (c6 == 'G' || c6 == 'g') && + (c7 == 'N' || c7 == 'n') && (c8 == 'O' || c8 == 'o') && (c9 == 'D' || c9 == 'd') && (c10 == 'E' || c10 == 'e')) { + if ((stmt.length() > offset + 1)) { + char cTest = stmt.charAt(offset + 1); + if (cTest == 'S' || cTest == 's') { + return checkWherePlus(stmt, ++offset, TABLE_SHARDING_NODE); + } + } + while (stmt.length() > ++offset) { + switch (stmt.charAt(offset)) { + case ' ': + case '\r': + case '\n': + case '\t': + continue; + case 'W': + case 'w': + if (!ParseUtil.isSpace(stmt.charAt(offset - 1))) { + return OTHER; + } + return show2ShardingNWhereCheck(stmt, offset); + default: + return OTHER; + } + } + return SHARDING_NODE; + } + } + + return OTHER; + } + //show @@slow_query. private static int show2SlowQueryCheck(String stmt, int offset) { if (stmt.length() > offset + 1) { @@ -1145,41 +1191,6 @@ public final class ManagerParseShow { return OTHER; } - // SHOW @@DATANODE - private static int show2DataNCheck(String stmt, int offset) { - if (stmt.length() > offset + "ODE".length()) { - char c1 = stmt.charAt(++offset); - char c2 = stmt.charAt(++offset); - char c3 = stmt.charAt(++offset); - if ((c1 == 'O' || c1 == 'o') && (c2 == 'D' || c2 == 'd') && (c3 == 'E' || c3 == 'e')) { - if ((stmt.length() > offset + 1)) { - char cTest = stmt.charAt(offset + 1); - if (cTest == 'S' || cTest == 's') { - return checkWherePlus(stmt, ++offset, TABLE_DATA_NODE); - } - } - while (stmt.length() > ++offset) { - switch (stmt.charAt(offset)) { - case ' ': - case '\r': - case '\n': - case '\t': - continue; - case 'W': - case 'w': - if (!ParseUtil.isSpace(stmt.charAt(offset - 1))) { - return OTHER; - } - return show2DataNWhereCheck(stmt, offset); - default: - return OTHER; - } - } - return DATA_NODE; - } - } - return OTHER; - } // SHOW @@aaa WHERE S[chema=? and table =?] private static int checkWhereTableInfo(String stmt, int offset, int expectCode) { @@ -1212,8 +1223,8 @@ public final class ManagerParseShow { return OTHER; } - // SHOW @@DATANODE WHERE - private static int show2DataNWhereCheck(String stmt, int offset) { + // SHOW @@SHARDINGNODE WHERE + private static int show2ShardingNWhereCheck(String stmt, int offset) { if (stmt.length() > offset + "HERE".length()) { char c1 = stmt.charAt(++offset); char c2 = stmt.charAt(++offset); @@ -1230,7 +1241,7 @@ public final class ManagerParseShow { if (stmt.charAt(offset - 1) != ' ') { return OTHER; } - return show2DataNWhereSchemaCheck(stmt, offset); + return show2ShardingNWhereSchemaCheck(stmt, offset); default: return OTHER; } @@ -1240,8 +1251,8 @@ public final class ManagerParseShow { return OTHER; } - // SHOW @@DATANODE WHERE SCHEMA = XXXXXX - private static int show2DataNWhereSchemaCheck(String stmt, int offset) { + // SHOW @@shardingNODE WHERE SCHEMA = XXXXXX + private static int show2ShardingNWhereSchemaCheck(String stmt, int offset) { if (stmt.length() > offset + "CHEMA".length()) { char c1 = stmt.charAt(++offset); char c2 = stmt.charAt(++offset); @@ -1260,7 +1271,7 @@ public final class ManagerParseShow { case ' ': continue; default: - return (offset << 8) | DATANODE_SCHEMA; + return (offset << 8) | SHARDING_NODE_SCHEMA; } } return OTHER; @@ -1273,16 +1284,20 @@ public final class ManagerParseShow { return OTHER; } - // SHOW @@DATASOURCE - private static int show2DataSCheck(String stmt, int offset) { - if (stmt.length() > offset + "OURCE".length()) { + // SHOW @@DBINSTANCE + private static int show2DBCheck(String stmt, int offset) { + if (stmt.length() > offset + "INSTANCE".length()) { char c1 = stmt.charAt(++offset); char c2 = stmt.charAt(++offset); char c3 = stmt.charAt(++offset); char c4 = stmt.charAt(++offset); char c5 = stmt.charAt(++offset); - if ((c1 == 'O' || c1 == 'o') && (c2 == 'U' || c2 == 'u') && (c3 == 'R' || c3 == 'r') && - (c4 == 'C' || c4 == 'c') && (c5 == 'E' || c5 == 'e')) { + char c6 = stmt.charAt(++offset); + char c7 = stmt.charAt(++offset); + char c8 = stmt.charAt(++offset); + if ((c1 == 'I' || c1 == 'i') && (c2 == 'N' || c2 == 'n') && (c3 == 'S' || c3 == 's') && + (c4 == 'T' || c4 == 't') && (c5 == 'A' || c5 == 'a') && (c6 == 'N' || c6 == 'n') && + (c7 == 'C' || c7 == 'c') && (c8 == 'E' || c8 == 'e')) { while (stmt.length() > ++offset) { switch (stmt.charAt(offset)) { case ' ': @@ -1292,15 +1307,15 @@ public final class ManagerParseShow { if (stmt.charAt(offset - 1) != ' ') { return OTHER; } - return show2DataSWhereCheck(stmt, offset); + return show2DBinsWhereCheck(stmt, offset); case '.': - return show2DataSynCheck(stmt, offset); + return show2DBinsSynCheck(stmt, offset); default: return OTHER; } } - return DATASOURCE; + return DB_INSTANCE; } } return OTHER; @@ -1343,8 +1358,8 @@ public final class ManagerParseShow { return OTHER; } - // SHOW @@DATASOURCE WHERE - private static int show2DataSWhereCheck(String stmt, int offset) { + // show @@DBINSTANCE WHERE + private static int show2DBinsWhereCheck(String stmt, int offset) { if (stmt.length() > offset + "HERE".length()) { char c1 = stmt.charAt(++offset); char c2 = stmt.charAt(++offset); @@ -1356,12 +1371,12 @@ public final class ManagerParseShow { switch (stmt.charAt(offset)) { case ' ': continue; - case 'd': - case 'D': + case 's': + case 'S': if (stmt.charAt(offset - 1) != ' ') { return OTHER; } - return show2DataSWhereDatanodeCheck(stmt, offset); + return show2DBinsWhereShardingnodeCheck(stmt, offset); default: return OTHER; } @@ -1429,9 +1444,9 @@ public final class ManagerParseShow { return OTHER; } - // SHOW @@DATASOURCE WHERE DATANODE = XXXXXX - private static int show2DataSWhereDatanodeCheck(String stmt, int offset) { - if (stmt.length() > offset + "ATANODE".length()) { + // show @@DBINSTANCE WHERE shardingNODE = XXXXXX + private static int show2DBinsWhereShardingnodeCheck(String stmt, int offset) { + if (stmt.length() > offset + "HARDINGNODE".length()) { char c1 = stmt.charAt(++offset); char c2 = stmt.charAt(++offset); char c3 = stmt.charAt(++offset); @@ -1439,9 +1454,15 @@ public final class ManagerParseShow { char c5 = stmt.charAt(++offset); char c6 = stmt.charAt(++offset); char c7 = stmt.charAt(++offset); - if ((c1 == 'A' || c1 == 'a') && (c2 == 'T' || c2 == 't') && (c3 == 'A' || c3 == 'a') && - (c4 == 'N' || c4 == 'n') && (c5 == 'O' || c5 == 'o') && (c6 == 'D' || c6 == 'd') && - (c7 == 'E' || c7 == 'e')) { + char c8 = stmt.charAt(++offset); + char c9 = stmt.charAt(++offset); + char ca = stmt.charAt(++offset); + char cb = stmt.charAt(++offset); + if ((c1 == 'H' || c1 == 'h') && (c2 == 'A' || c2 == 'a') && (c3 == 'R' || c3 == 'r') && + (c4 == 'D' || c4 == 'd') && (c5 == 'I' || c5 == 'i') && (c6 == 'N' || c6 == 'n') && + (c7 == 'G' || c7 == 'g') && + (c8 == 'N' || c8 == 'n') && (c9 == 'O' || c9 == 'o') && (ca == 'D' || ca == 'd') && + (cb == 'E' || cb == 'e')) { while (stmt.length() > ++offset) { switch (stmt.charAt(offset)) { case ' ': @@ -1452,7 +1473,7 @@ public final class ManagerParseShow { case ' ': continue; default: - return (offset << 8) | DATASOURCE_WHERE; + return (offset << 8) | DB_INSTANCE_WHERE; } } return OTHER; diff --git a/src/main/java/com/actiontech/dble/sqlengine/SpecialSqlJob.java b/src/main/java/com/actiontech/dble/sqlengine/SpecialSqlJob.java index fa061bfb4..ebe9ef01c 100644 --- a/src/main/java/com/actiontech/dble/sqlengine/SpecialSqlJob.java +++ b/src/main/java/com/actiontech/dble/sqlengine/SpecialSqlJob.java @@ -79,7 +79,7 @@ public class SpecialSqlJob extends SQLJob { @Override public void connectionError(Throwable e, BackendConnection conn) { LOGGER.warn("can't get connection for sql :" + sql, e); - list.add(new ErrorInfo("Meta", "WARNING", "Can't get connection for Meta check in dataNode[" + ds.getName() + "." + schema + "]")); + list.add(new ErrorInfo("Meta", "WARNING", "Can't get connection for Meta check in shardingNode[" + ds.getName() + "." + schema + "]")); doFinished(true); } diff --git a/src/main/resources/bootstrap.cnf b/src/main/resources/bootstrap.cnf index 4687be505..34e71665d 100644 --- a/src/main/resources/bootstrap.cnf +++ b/src/main/resources/bootstrap.cnf @@ -15,7 +15,7 @@ -DhomePath=. -DinstanceName=1 # valid for sequenceHandlerType=2 or 3 -#-DinstanceId=1 +-DinstanceId=1 #-DserverId=xxx1 #-DuseSerializableMode=1 #-DbindIp=0.0.0.0 diff --git a/src/test/java/com/actiontech/dble/parser/ManagerParserTest.java b/src/test/java/com/actiontech/dble/parser/ManagerParserTest.java index 390815a9e..35643285c 100644 --- a/src/test/java/com/actiontech/dble/parser/ManagerParserTest.java +++ b/src/test/java/com/actiontech/dble/parser/ManagerParserTest.java @@ -71,42 +71,42 @@ public class ManagerParserTest { } @Test - public void testShowDataNode() { - Assert.assertEquals(ManagerParseShow.DATA_NODE, ManagerParseShow.parse("show @@datanode", 5)); - Assert.assertEquals(ManagerParseShow.DATA_NODE, ManagerParseShow.parse("SHOW @@DATANODE", 5)); - Assert.assertEquals(ManagerParseShow.DATA_NODE, ManagerParseShow.parse("show @@DATANODE", 5)); - Assert.assertEquals(ManagerParseShow.DATA_NODE, ManagerParseShow.parse("show @@DATANODE ", 5)); - Assert.assertEquals(ManagerParseShow.DATANODE_SCHEMA, - 0xff & ManagerParseShow.parse("show @@DATANODE WHERE SCHEMA=1", 5)); - Assert.assertEquals(ManagerParseShow.DATANODE_SCHEMA, - 0xff & ManagerParseShow.parse("show @@DATANODE WHERE schema =1", 5)); - Assert.assertEquals(ManagerParseShow.DATANODE_SCHEMA, - 0xff & ManagerParseShow.parse("show @@DATANODE WHERE SCHEMA= 1", 5)); + public void testShowShardingNode() { + Assert.assertEquals(ManagerParseShow.SHARDING_NODE, ManagerParseShow.parse("show @@shardingnode", 5)); + Assert.assertEquals(ManagerParseShow.SHARDING_NODE, ManagerParseShow.parse("SHOW @@SHARDINGNODE", 5)); + Assert.assertEquals(ManagerParseShow.SHARDING_NODE, ManagerParseShow.parse("show @@SHARDINGNODE", 5)); + Assert.assertEquals(ManagerParseShow.SHARDING_NODE, ManagerParseShow.parse("show @@SHARDINGNODE ", 5)); + Assert.assertEquals(ManagerParseShow.SHARDING_NODE_SCHEMA, + 0xff & ManagerParseShow.parse("show @@SHARDINGNODE WHERE SCHEMA=1", 5)); + Assert.assertEquals(ManagerParseShow.SHARDING_NODE_SCHEMA, + 0xff & ManagerParseShow.parse("show @@SHARDINGNODE WHERE schema =1", 5)); + Assert.assertEquals(ManagerParseShow.SHARDING_NODE_SCHEMA, + 0xff & ManagerParseShow.parse("show @@SHARDINGNODE WHERE SCHEMA= 1", 5)); Assert.assertEquals(ManagerParseShow.OTHER, - ManagerParseShow.parse("show @@DATANODEWHERE SCHEMA= 1", 5)); + ManagerParseShow.parse("show @@SHARDINGNODEWHERE SCHEMA= 1", 5)); Assert.assertEquals(ManagerParseShow.OTHER, - ManagerParseShow.parse("show @@DATANODE WHERESCHEMA=1", 5)); + ManagerParseShow.parse("show @@SHARDINGNODE WHERESCHEMA=1", 5)); } @Test public void testShowDataSource() { - Assert.assertEquals(ManagerParseShow.DATASOURCE, ManagerParseShow.parse("show @@datasource", 5)); - Assert.assertEquals(ManagerParseShow.DATASOURCE, ManagerParseShow.parse("SHOW @@DATASOURCE", 5)); - Assert.assertEquals(ManagerParseShow.DATASOURCE, ManagerParseShow.parse(" show @@DATASOURCE ", 5)); - Assert.assertEquals(ManagerParseShow.DATASOURCE, ManagerParseShow.parse(" show @@DATASOURCE ", 5)); - Assert.assertEquals(ManagerParseShow.DATASOURCE_WHERE, - 0xff & ManagerParseShow.parse(" show @@DATASOURCE where datanode = 1", 5)); - Assert.assertEquals(ManagerParseShow.DATASOURCE_WHERE, - 0xff & ManagerParseShow.parse(" show @@DATASOURCE where datanode=1", 5)); - Assert.assertEquals(ManagerParseShow.DATASOURCE_WHERE, - 0xff & ManagerParseShow.parse(" show @@DATASOURCE WHERE datanode = 1", 5)); - Assert.assertEquals(ManagerParseShow.DATASOURCE_WHERE, - 0xff & ManagerParseShow.parse(" show @@DATASOURCE where DATAnode= 1 ", 5)); + Assert.assertEquals(ManagerParseShow.DB_INSTANCE, ManagerParseShow.parse("show @@dbinstance", 5)); + Assert.assertEquals(ManagerParseShow.DB_INSTANCE, ManagerParseShow.parse("SHOW @@DBINSTANCE", 5)); + Assert.assertEquals(ManagerParseShow.DB_INSTANCE, ManagerParseShow.parse(" show @@DBINSTANCE ", 5)); + Assert.assertEquals(ManagerParseShow.DB_INSTANCE, ManagerParseShow.parse(" show @@DBINSTANCE ", 5)); + Assert.assertEquals(ManagerParseShow.DB_INSTANCE_WHERE, + 0xff & ManagerParseShow.parse(" show @@DBINSTANCE where shardingnode = 1", 5)); + Assert.assertEquals(ManagerParseShow.DB_INSTANCE_WHERE, + 0xff & ManagerParseShow.parse(" show @@DBINSTANCE where shardingnode=1", 5)); + Assert.assertEquals(ManagerParseShow.DB_INSTANCE_WHERE, + 0xff & ManagerParseShow.parse(" show @@DBINSTANCE WHERE shardingnode = 1", 5)); + Assert.assertEquals(ManagerParseShow.DB_INSTANCE_WHERE, + 0xff & ManagerParseShow.parse(" show @@DBINSTANCE where SHARDINGnode= 1 ", 5)); Assert.assertEquals(ManagerParseShow.OTHER, - ManagerParseShow.parse(" show @@DATASOURCEwhere DATAnode= 1 ", 5)); + ManagerParseShow.parse(" show @@DBINSTANCEwhere SHARDINGnode= 1 ", 5)); Assert.assertEquals(ManagerParseShow.OTHER, - ManagerParseShow.parse(" show @@DATASOURCE whereDATAnode= 1 ", 5)); + ManagerParseShow.parse(" show @@DBINSTANCE whereSHARDINGnode= 1 ", 5)); } @Test @@ -314,22 +314,22 @@ public class ManagerParserTest { @Test public void testSynStatus() { - Assert.assertEquals(ManagerParseShow.DATASOURCE_SYNC, - 0xff & ManagerParseShow.parse("show @@datasource.synstatus", 5)); + Assert.assertEquals(ManagerParseShow.DB_INSTANCE_SYNC, + 0xff & ManagerParseShow.parse("show @@dbinstance.synstatus", 5)); } @Test public void testSynDetail() { - Assert.assertEquals(ManagerParseShow.DATASOURCE_SYNC_DETAIL, - ManagerParseShow.parse("show @@datasource.syndetail where name=slave", 5)); - Assert.assertEquals(ManagerParseShow.DATASOURCE_SYNC_DETAIL, - ManagerParseShow.parse("show @@datasource.syndetail where name = slave", 5)); + Assert.assertEquals(ManagerParseShow.DB_INSTANCE_SYNC_DETAIL, + ManagerParseShow.parse("show @@dbinstance.syndetail where name=slave", 5)); + Assert.assertEquals(ManagerParseShow.DB_INSTANCE_SYNC_DETAIL, + ManagerParseShow.parse("show @@dbinstance.syndetail where name = slave", 5)); Assert.assertEquals(ManagerParseShow.OTHER, - ManagerParseShow.parse("show @@datasource.syndetailwhere name = slave", 5)); + ManagerParseShow.parse("show @@dbinstance.syndetailwhere name = slave", 5)); Assert.assertEquals(ManagerParseShow.OTHER, - ManagerParseShow.parse("show @@datasource.syndetail wherename=slave", 5)); + ManagerParseShow.parse("show @@dbinstance.syndetail wherename=slave", 5)); Assert.assertEquals(ManagerParseShow.OTHER, - ManagerParseShow.parse("show @@datasource.syndetail where name=slave ASDFASDF", 5)); + ManagerParseShow.parse("show @@dbinstance.syndetail where name=slave ASDFASDF", 5)); } @Test diff --git a/src/test/java/com/actiontech/dble/sequence/IncrSequenceZKHandlerTest.java b/src/test/java/com/actiontech/dble/sequence/IncrSequenceZKHandlerTest.java index 88dfbc82c..d1eec3efe 100644 --- a/src/test/java/com/actiontech/dble/sequence/IncrSequenceZKHandlerTest.java +++ b/src/test/java/com/actiontech/dble/sequence/IncrSequenceZKHandlerTest.java @@ -5,6 +5,7 @@ package com.actiontech.dble.sequence; +import com.actiontech.dble.config.model.ClusterConfig; import com.actiontech.dble.route.sequence.handler.IncrSequenceZKHandler; import com.actiontech.dble.route.util.PropertiesUtil; import org.junit.Assert; @@ -40,6 +41,8 @@ public class IncrSequenceZKHandlerTest { testingServer.start(); incrSequenceZKHandler = new IncrSequenceZKHandler[MAX_CONNECTION]; results = new ConcurrentSkipListSet(); + ClusterConfig.getInstance().setRootPath("/dble"); + ClusterConfig.getInstance().setClusterID("test"); } @Test