This is an automated email from the ASF dual-hosted git repository.
zhangliang pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/shardingsphere.git
The following commit(s) were added to refs/heads/master by this push:
new a01e7ef37bf Add GlobalLock (#34131)
a01e7ef37bf is described below
commit a01e7ef37bf991870ac54ca159fd77a3d3b7b10c
Author: Liang Zhang <[email protected]>
AuthorDate: Tue Dec 24 07:44:02 2024 +0800
Add GlobalLock (#34131)
* Add GlobalLock
* Add GlobalLock
---
.../migration/preparer/MigrationJobPreparer.java | 3 +--
.../migration/preparer/MigrationPrepareLock.java | 22 ++++++++------------
.../globalclock/executor/GlobalClockLock.java | 24 ++++++++--------------
.../executor/GlobalClockTransactionHook.java | 3 +--
.../{GlobalLockName.java => GlobalLock.java} | 24 ++++++++--------------
.../mode/lock/global/GlobalLockDefinition.java | 4 ++++
.../mode/lock/global/GlobalLockName.java | 6 ------
.../ShardingSphereStatisticsRefreshEngine.java | 4 ++--
.../refresher/lock/StatisticsLock.java} | 24 ++++++++--------------
.../mode/lock/global/GlobalLockDefinitionTest.java | 6 +++++-
.../cluster/lock/ClusterLockContextTest.java | 9 ++++++--
.../service/GlobalLockPersistServiceTest.java | 19 ++++++++++++-----
.../distsql/ral/updatable/LockClusterExecutor.java | 4 ++--
.../ral/updatable/UnlockClusterExecutor.java | 4 ++--
.../distsql/ral/updatable/lock/ClusterLock.java | 24 ++++++++--------------
15 files changed, 79 insertions(+), 101 deletions(-)
diff --git
a/kernel/data-pipeline/scenario/migration/src/main/java/org/apache/shardingsphere/data/pipeline/scenario/migration/preparer/MigrationJobPreparer.java
b/kernel/data-pipeline/scenario/migration/src/main/java/org/apache/shardingsphere/data/pipeline/scenario/migration/preparer/MigrationJobPreparer.java
index 0bed58cbd4c..1d2314aa29e 100644
---
a/kernel/data-pipeline/scenario/migration/src/main/java/org/apache/shardingsphere/data/pipeline/scenario/migration/preparer/MigrationJobPreparer.java
+++
b/kernel/data-pipeline/scenario/migration/src/main/java/org/apache/shardingsphere/data/pipeline/scenario/migration/preparer/MigrationJobPreparer.java
@@ -70,7 +70,6 @@ import org.apache.shardingsphere.infra.lock.LockDefinition;
import org.apache.shardingsphere.infra.metadata.ShardingSphereMetaData;
import org.apache.shardingsphere.infra.parser.SQLParserEngine;
import org.apache.shardingsphere.mode.lock.global.GlobalLockDefinition;
-import org.apache.shardingsphere.mode.lock.global.GlobalLockName;
import org.apache.shardingsphere.mode.manager.ContextManager;
import org.apache.shardingsphere.parser.rule.SQLParserRule;
@@ -118,7 +117,7 @@ public final class MigrationJobPreparer implements
PipelineJobPreparer<Migration
if (!jobItemManager.getProgress(jobId,
jobItemContext.getShardingItem()).isPresent()) {
jobItemManager.persistProgress(jobItemContext);
}
- LockDefinition lockDefinition = new
GlobalLockDefinition(GlobalLockName.PREPARE, jobConfig.getJobId());
+ LockDefinition lockDefinition = new GlobalLockDefinition(new
MigrationPrepareLock(jobConfig.getJobId()));
long startTimeMillis = System.currentTimeMillis();
if (lockContext.tryLock(lockDefinition, 600 * 1000L)) {
log.info("Lock success, jobId={}, shardingItem={}, cost {} ms.",
jobId, jobItemContext.getShardingItem(), System.currentTimeMillis() -
startTimeMillis);
diff --git
a/mode/core/src/main/java/org/apache/shardingsphere/mode/lock/global/GlobalLockName.java
b/kernel/data-pipeline/scenario/migration/src/main/java/org/apache/shardingsphere/data/pipeline/scenario/migration/preparer/MigrationPrepareLock.java
similarity index 70%
copy from
mode/core/src/main/java/org/apache/shardingsphere/mode/lock/global/GlobalLockName.java
copy to
kernel/data-pipeline/scenario/migration/src/main/java/org/apache/shardingsphere/data/pipeline/scenario/migration/preparer/MigrationPrepareLock.java
index 782c0818ce0..958045d301f 100644
---
a/mode/core/src/main/java/org/apache/shardingsphere/mode/lock/global/GlobalLockName.java
+++
b/kernel/data-pipeline/scenario/migration/src/main/java/org/apache/shardingsphere/data/pipeline/scenario/migration/preparer/MigrationPrepareLock.java
@@ -15,25 +15,21 @@
* limitations under the License.
*/
-package org.apache.shardingsphere.mode.lock.global;
+package org.apache.shardingsphere.data.pipeline.scenario.migration.preparer;
-import lombok.Getter;
import lombok.RequiredArgsConstructor;
+import org.apache.shardingsphere.mode.lock.global.GlobalLock;
/**
- * Global lock name.
+ * Migration prepare lock.
*/
@RequiredArgsConstructor
-@Getter
-public enum GlobalLockName {
+public final class MigrationPrepareLock implements GlobalLock {
- CLUSTER_LOCK("cluster_lock"),
+ private final String jobId;
- PREPARE("prepare_%s"),
-
- GLOBAL_CLOCK("global_clock"),
-
- STATISTICS("statistics");
-
- private final String lockName;
+ @Override
+ public String getName() {
+ return String.format("migration_prepare_%s", jobId);
+ }
}
diff --git
a/mode/core/src/main/java/org/apache/shardingsphere/mode/lock/global/GlobalLockName.java
b/kernel/global-clock/core/src/main/java/org/apache/shardingsphere/globalclock/executor/GlobalClockLock.java
similarity index 68%
copy from
mode/core/src/main/java/org/apache/shardingsphere/mode/lock/global/GlobalLockName.java
copy to
kernel/global-clock/core/src/main/java/org/apache/shardingsphere/globalclock/executor/GlobalClockLock.java
index 782c0818ce0..589b13b4e81 100644
---
a/mode/core/src/main/java/org/apache/shardingsphere/mode/lock/global/GlobalLockName.java
+++
b/kernel/global-clock/core/src/main/java/org/apache/shardingsphere/globalclock/executor/GlobalClockLock.java
@@ -15,25 +15,17 @@
* limitations under the License.
*/
-package org.apache.shardingsphere.mode.lock.global;
+package org.apache.shardingsphere.globalclock.executor;
-import lombok.Getter;
-import lombok.RequiredArgsConstructor;
+import org.apache.shardingsphere.mode.lock.global.GlobalLock;
/**
- * Global lock name.
+ * Global clock lock.
*/
-@RequiredArgsConstructor
-@Getter
-public enum GlobalLockName {
+public final class GlobalClockLock implements GlobalLock {
- CLUSTER_LOCK("cluster_lock"),
-
- PREPARE("prepare_%s"),
-
- GLOBAL_CLOCK("global_clock"),
-
- STATISTICS("statistics");
-
- private final String lockName;
+ @Override
+ public String getName() {
+ return "global_clock";
+ }
}
diff --git
a/kernel/global-clock/core/src/main/java/org/apache/shardingsphere/globalclock/executor/GlobalClockTransactionHook.java
b/kernel/global-clock/core/src/main/java/org/apache/shardingsphere/globalclock/executor/GlobalClockTransactionHook.java
index 3a36bf69dca..c6093c1d03e 100644
---
a/kernel/global-clock/core/src/main/java/org/apache/shardingsphere/globalclock/executor/GlobalClockTransactionHook.java
+++
b/kernel/global-clock/core/src/main/java/org/apache/shardingsphere/globalclock/executor/GlobalClockTransactionHook.java
@@ -23,7 +23,6 @@ import
org.apache.shardingsphere.globalclock.rule.GlobalClockRule;
import org.apache.shardingsphere.globalclock.rule.constant.GlobalClockOrder;
import
org.apache.shardingsphere.infra.database.core.spi.DatabaseTypedSPILoader;
import org.apache.shardingsphere.infra.database.core.type.DatabaseType;
-import org.apache.shardingsphere.mode.lock.global.GlobalLockName;
import org.apache.shardingsphere.infra.lock.LockContext;
import org.apache.shardingsphere.infra.lock.LockDefinition;
import
org.apache.shardingsphere.infra.session.connection.transaction.TransactionConnectionContext;
@@ -41,7 +40,7 @@ import java.util.Optional;
*/
public final class GlobalClockTransactionHook implements
TransactionHook<GlobalClockRule> {
- private final LockDefinition lockDefinition = new
GlobalLockDefinition(GlobalLockName.GLOBAL_CLOCK);
+ private final LockDefinition lockDefinition = new GlobalLockDefinition(new
GlobalClockLock());
@Override
public void beforeBegin(final GlobalClockRule rule, final DatabaseType
databaseType, final TransactionConnectionContext transactionContext) {
diff --git
a/mode/core/src/main/java/org/apache/shardingsphere/mode/lock/global/GlobalLockName.java
b/mode/core/src/main/java/org/apache/shardingsphere/mode/lock/global/GlobalLock.java
similarity index 72%
copy from
mode/core/src/main/java/org/apache/shardingsphere/mode/lock/global/GlobalLockName.java
copy to
mode/core/src/main/java/org/apache/shardingsphere/mode/lock/global/GlobalLock.java
index 782c0818ce0..c4c54b55c36 100644
---
a/mode/core/src/main/java/org/apache/shardingsphere/mode/lock/global/GlobalLockName.java
+++
b/mode/core/src/main/java/org/apache/shardingsphere/mode/lock/global/GlobalLock.java
@@ -17,23 +17,15 @@
package org.apache.shardingsphere.mode.lock.global;
-import lombok.Getter;
-import lombok.RequiredArgsConstructor;
-
/**
- * Global lock name.
+ * Global lock.
*/
-@RequiredArgsConstructor
-@Getter
-public enum GlobalLockName {
-
- CLUSTER_LOCK("cluster_lock"),
-
- PREPARE("prepare_%s"),
-
- GLOBAL_CLOCK("global_clock"),
-
- STATISTICS("statistics");
+public interface GlobalLock {
- private final String lockName;
+ /**
+ * Get lock name.
+ *
+ * @return lock name
+ */
+ String getName();
}
diff --git
a/mode/core/src/main/java/org/apache/shardingsphere/mode/lock/global/GlobalLockDefinition.java
b/mode/core/src/main/java/org/apache/shardingsphere/mode/lock/global/GlobalLockDefinition.java
index bee425df49d..a886d715dc8 100644
---
a/mode/core/src/main/java/org/apache/shardingsphere/mode/lock/global/GlobalLockDefinition.java
+++
b/mode/core/src/main/java/org/apache/shardingsphere/mode/lock/global/GlobalLockDefinition.java
@@ -33,4 +33,8 @@ public final class GlobalLockDefinition implements
LockDefinition {
public GlobalLockDefinition(final GlobalLockName lockName, final Object...
lockParams) {
lockKey = String.format(KEY_PATTERN,
String.format(lockName.getLockName(), lockParams));
}
+
+ public GlobalLockDefinition(final GlobalLock globalLock) {
+ lockKey = String.format(KEY_PATTERN, globalLock.getName());
+ }
}
diff --git
a/mode/core/src/main/java/org/apache/shardingsphere/mode/lock/global/GlobalLockName.java
b/mode/core/src/main/java/org/apache/shardingsphere/mode/lock/global/GlobalLockName.java
index 782c0818ce0..b05d10e0d76 100644
---
a/mode/core/src/main/java/org/apache/shardingsphere/mode/lock/global/GlobalLockName.java
+++
b/mode/core/src/main/java/org/apache/shardingsphere/mode/lock/global/GlobalLockName.java
@@ -27,12 +27,6 @@ import lombok.RequiredArgsConstructor;
@Getter
public enum GlobalLockName {
- CLUSTER_LOCK("cluster_lock"),
-
- PREPARE("prepare_%s"),
-
- GLOBAL_CLOCK("global_clock"),
-
STATISTICS("statistics");
private final String lockName;
diff --git
a/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/refresher/ShardingSphereStatisticsRefreshEngine.java
b/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/refresher/ShardingSphereStatisticsRefreshEngine.java
index d3add96827b..61fe8413cb7 100644
---
a/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/refresher/ShardingSphereStatisticsRefreshEngine.java
+++
b/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/refresher/ShardingSphereStatisticsRefreshEngine.java
@@ -36,8 +36,8 @@ import
org.apache.shardingsphere.infra.spi.type.typed.TypedSPILoader;
import
org.apache.shardingsphere.infra.yaml.data.swapper.YamlShardingSphereRowDataSwapper;
import
org.apache.shardingsphere.metadata.persist.data.AlteredShardingSphereDatabaseData;
import org.apache.shardingsphere.mode.lock.global.GlobalLockDefinition;
-import org.apache.shardingsphere.mode.lock.global.GlobalLockName;
import org.apache.shardingsphere.mode.manager.ContextManager;
+import org.apache.shardingsphere.mode.metadata.refresher.lock.StatisticsLock;
import java.util.ArrayList;
import java.util.Map;
@@ -84,7 +84,7 @@ public final class ShardingSphereStatisticsRefreshEngine {
}
private void collectAndRefresh() {
- GlobalLockDefinition lockDefinition = new
GlobalLockDefinition(GlobalLockName.STATISTICS);
+ GlobalLockDefinition lockDefinition = new GlobalLockDefinition(new
StatisticsLock());
if (lockContext.tryLock(lockDefinition, 5000L)) {
try {
ShardingSphereStatistics statistics =
contextManager.getMetaDataContexts().getStatistics();
diff --git
a/mode/core/src/main/java/org/apache/shardingsphere/mode/lock/global/GlobalLockName.java
b/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/refresher/lock/StatisticsLock.java
similarity index 68%
copy from
mode/core/src/main/java/org/apache/shardingsphere/mode/lock/global/GlobalLockName.java
copy to
mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/refresher/lock/StatisticsLock.java
index 782c0818ce0..db5d4951027 100644
---
a/mode/core/src/main/java/org/apache/shardingsphere/mode/lock/global/GlobalLockName.java
+++
b/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/refresher/lock/StatisticsLock.java
@@ -15,25 +15,17 @@
* limitations under the License.
*/
-package org.apache.shardingsphere.mode.lock.global;
+package org.apache.shardingsphere.mode.metadata.refresher.lock;
-import lombok.Getter;
-import lombok.RequiredArgsConstructor;
+import org.apache.shardingsphere.mode.lock.global.GlobalLock;
/**
- * Global lock name.
+ * Statistics lock.
*/
-@RequiredArgsConstructor
-@Getter
-public enum GlobalLockName {
+public final class StatisticsLock implements GlobalLock {
- CLUSTER_LOCK("cluster_lock"),
-
- PREPARE("prepare_%s"),
-
- GLOBAL_CLOCK("global_clock"),
-
- STATISTICS("statistics");
-
- private final String lockName;
+ @Override
+ public String getName() {
+ return "statistics";
+ }
}
diff --git
a/mode/core/src/test/java/org/apache/shardingsphere/mode/lock/global/GlobalLockDefinitionTest.java
b/mode/core/src/test/java/org/apache/shardingsphere/mode/lock/global/GlobalLockDefinitionTest.java
index 19732c7a989..82ee55f24a6 100644
---
a/mode/core/src/test/java/org/apache/shardingsphere/mode/lock/global/GlobalLockDefinitionTest.java
+++
b/mode/core/src/test/java/org/apache/shardingsphere/mode/lock/global/GlobalLockDefinitionTest.java
@@ -21,11 +21,15 @@ import org.junit.jupiter.api.Test;
import static org.hamcrest.CoreMatchers.is;
import static org.hamcrest.MatcherAssert.assertThat;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.when;
class GlobalLockDefinitionTest {
@Test
void assertGetLockKey() {
- assertThat(new
GlobalLockDefinition(GlobalLockName.CLUSTER_LOCK).getLockKey(),
is("/lock/exclusive/locks/cluster_lock"));
+ GlobalLock globalLock = mock(GlobalLock.class);
+ when(globalLock.getName()).thenReturn("foo_lock");
+ assertThat(new GlobalLockDefinition(globalLock).getLockKey(),
is("/lock/exclusive/locks/foo_lock"));
}
}
diff --git
a/mode/type/cluster/core/src/test/java/org/apache/shardingsphere/mode/manager/cluster/lock/ClusterLockContextTest.java
b/mode/type/cluster/core/src/test/java/org/apache/shardingsphere/mode/manager/cluster/lock/ClusterLockContextTest.java
index 08d857be142..8b168bad457 100644
---
a/mode/type/cluster/core/src/test/java/org/apache/shardingsphere/mode/manager/cluster/lock/ClusterLockContextTest.java
+++
b/mode/type/cluster/core/src/test/java/org/apache/shardingsphere/mode/manager/cluster/lock/ClusterLockContextTest.java
@@ -18,8 +18,8 @@
package org.apache.shardingsphere.mode.manager.cluster.lock;
import org.apache.shardingsphere.mode.lock.LockPersistService;
+import org.apache.shardingsphere.mode.lock.global.GlobalLock;
import org.apache.shardingsphere.mode.lock.global.GlobalLockDefinition;
-import org.apache.shardingsphere.mode.lock.global.GlobalLockName;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
@@ -33,15 +33,20 @@ import static org.mockito.Mockito.when;
@ExtendWith(MockitoExtension.class)
class ClusterLockContextTest {
- private final GlobalLockDefinition lockDefinition = new
GlobalLockDefinition(GlobalLockName.CLUSTER_LOCK);
+ @Mock
+ private GlobalLock globalLock;
@Mock
private LockPersistService<GlobalLockDefinition> lockPersistService;
+ private GlobalLockDefinition lockDefinition;
+
private ClusterLockContext lockContext;
@BeforeEach
void init() {
+ when(globalLock.getName()).thenReturn("foo_lock");
+ lockDefinition = new GlobalLockDefinition(globalLock);
lockContext = new ClusterLockContext(lockPersistService);
}
diff --git
a/mode/type/cluster/core/src/test/java/org/apache/shardingsphere/mode/manager/cluster/persist/service/GlobalLockPersistServiceTest.java
b/mode/type/cluster/core/src/test/java/org/apache/shardingsphere/mode/manager/cluster/persist/service/GlobalLockPersistServiceTest.java
index 77ea847d5e0..6a34617d5b2 100644
---
a/mode/type/cluster/core/src/test/java/org/apache/shardingsphere/mode/manager/cluster/persist/service/GlobalLockPersistServiceTest.java
+++
b/mode/type/cluster/core/src/test/java/org/apache/shardingsphere/mode/manager/cluster/persist/service/GlobalLockPersistServiceTest.java
@@ -17,9 +17,10 @@
package org.apache.shardingsphere.mode.manager.cluster.persist.service;
+import org.apache.shardingsphere.mode.lock.global.GlobalLock;
import org.apache.shardingsphere.mode.lock.global.GlobalLockDefinition;
-import org.apache.shardingsphere.mode.lock.global.GlobalLockName;
import
org.apache.shardingsphere.mode.repository.cluster.ClusterPersistRepository;
+import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
import org.mockito.Answers;
@@ -33,20 +34,28 @@ import static org.mockito.Mockito.when;
@ExtendWith(MockitoExtension.class)
class GlobalLockPersistServiceTest {
+ @Mock
+ private GlobalLock globalLock;
+
@Mock(answer = Answers.RETURNS_DEEP_STUBS)
private ClusterPersistRepository repository;
+ @BeforeEach
+ void setUp() {
+ when(globalLock.getName()).thenReturn("foo_lock");
+ }
+
@Test
void assertTryLock() {
-
when(repository.getDistributedLockHolder().getDistributedLock("/lock/exclusive/locks/cluster_lock").tryLock(1000L)).thenReturn(true);
- GlobalLockDefinition lockDefinition = new
GlobalLockDefinition(GlobalLockName.CLUSTER_LOCK);
+
when(repository.getDistributedLockHolder().getDistributedLock("/lock/exclusive/locks/foo_lock").tryLock(1000L)).thenReturn(true);
+ GlobalLockDefinition lockDefinition = new
GlobalLockDefinition(globalLock);
assertTrue(new
GlobalLockPersistService(repository).tryLock(lockDefinition, 1000L));
}
@Test
void assertUnlock() {
- GlobalLockDefinition lockDefinition = new
GlobalLockDefinition(GlobalLockName.CLUSTER_LOCK);
+ GlobalLockDefinition lockDefinition = new
GlobalLockDefinition(globalLock);
new GlobalLockPersistService(repository).unlock(lockDefinition);
-
verify(repository.getDistributedLockHolder().getDistributedLock("/lock/exclusive/locks/cluster_lock")).unlock();
+
verify(repository.getDistributedLockHolder().getDistributedLock("/lock/exclusive/locks/foo_lock")).unlock();
}
}
diff --git
a/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/updatable/LockClusterExecutor.java
b/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/updatable/LockClusterExecutor.java
index ebaf98e816d..73d2bb59f26 100644
---
a/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/updatable/LockClusterExecutor.java
+++
b/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/updatable/LockClusterExecutor.java
@@ -23,13 +23,13 @@ import
org.apache.shardingsphere.distsql.statement.ral.updatable.LockClusterStat
import
org.apache.shardingsphere.infra.algorithm.core.exception.MissingRequiredAlgorithmException;
import
org.apache.shardingsphere.infra.exception.core.ShardingSpherePreconditions;
import
org.apache.shardingsphere.infra.exception.core.external.sql.identifier.SQLExceptionIdentifier;
-import org.apache.shardingsphere.mode.lock.global.GlobalLockName;
import org.apache.shardingsphere.infra.lock.LockContext;
import org.apache.shardingsphere.infra.spi.type.typed.TypedSPILoader;
import org.apache.shardingsphere.infra.state.cluster.ClusterState;
import org.apache.shardingsphere.mode.exception.LockedClusterException;
import org.apache.shardingsphere.mode.lock.global.GlobalLockDefinition;
import org.apache.shardingsphere.mode.manager.ContextManager;
+import
org.apache.shardingsphere.proxy.backend.handler.distsql.ral.updatable.lock.ClusterLock;
import org.apache.shardingsphere.proxy.backend.lock.spi.ClusterLockStrategy;
/**
@@ -43,7 +43,7 @@ public final class LockClusterExecutor implements
DistSQLUpdateExecutor<LockClus
checkState(contextManager);
checkAlgorithm(sqlStatement);
LockContext lockContext =
contextManager.getComputeNodeInstanceContext().getLockContext();
- GlobalLockDefinition lockDefinition = new
GlobalLockDefinition(GlobalLockName.CLUSTER_LOCK);
+ GlobalLockDefinition lockDefinition = new GlobalLockDefinition(new
ClusterLock());
if (lockContext.tryLock(lockDefinition, 3000L)) {
try {
checkState(contextManager);
diff --git
a/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/updatable/UnlockClusterExecutor.java
b/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/updatable/UnlockClusterExecutor.java
index 701e1c0eee3..d9d28b883f8 100644
---
a/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/updatable/UnlockClusterExecutor.java
+++
b/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/updatable/UnlockClusterExecutor.java
@@ -21,12 +21,12 @@ import
org.apache.shardingsphere.distsql.handler.engine.update.DistSQLUpdateExec
import
org.apache.shardingsphere.distsql.handler.required.DistSQLExecutorClusterModeRequired;
import
org.apache.shardingsphere.distsql.statement.ral.updatable.UnlockClusterStatement;
import
org.apache.shardingsphere.infra.exception.core.ShardingSpherePreconditions;
-import org.apache.shardingsphere.mode.lock.global.GlobalLockName;
import org.apache.shardingsphere.infra.lock.LockContext;
import org.apache.shardingsphere.infra.state.cluster.ClusterState;
import org.apache.shardingsphere.mode.exception.NotLockedClusterException;
import org.apache.shardingsphere.mode.lock.global.GlobalLockDefinition;
import org.apache.shardingsphere.mode.manager.ContextManager;
+import
org.apache.shardingsphere.proxy.backend.handler.distsql.ral.updatable.lock.ClusterLock;
/**
* Unlock cluster executor.
@@ -38,7 +38,7 @@ public final class UnlockClusterExecutor implements
DistSQLUpdateExecutor<Unlock
public void executeUpdate(final UnlockClusterStatement sqlStatement, final
ContextManager contextManager) {
checkState(contextManager);
LockContext lockContext =
contextManager.getComputeNodeInstanceContext().getLockContext();
- GlobalLockDefinition lockDefinition = new
GlobalLockDefinition(GlobalLockName.CLUSTER_LOCK);
+ GlobalLockDefinition lockDefinition = new GlobalLockDefinition(new
ClusterLock());
if (lockContext.tryLock(lockDefinition, 3000L)) {
try {
checkState(contextManager);
diff --git
a/mode/core/src/main/java/org/apache/shardingsphere/mode/lock/global/GlobalLockName.java
b/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/updatable/lock/ClusterLock.java
similarity index 68%
copy from
mode/core/src/main/java/org/apache/shardingsphere/mode/lock/global/GlobalLockName.java
copy to
proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/updatable/lock/ClusterLock.java
index 782c0818ce0..a75d35773e1 100644
---
a/mode/core/src/main/java/org/apache/shardingsphere/mode/lock/global/GlobalLockName.java
+++
b/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/updatable/lock/ClusterLock.java
@@ -15,25 +15,17 @@
* limitations under the License.
*/
-package org.apache.shardingsphere.mode.lock.global;
+package
org.apache.shardingsphere.proxy.backend.handler.distsql.ral.updatable.lock;
-import lombok.Getter;
-import lombok.RequiredArgsConstructor;
+import org.apache.shardingsphere.mode.lock.global.GlobalLock;
/**
- * Global lock name.
+ * Cluster lock.
*/
-@RequiredArgsConstructor
-@Getter
-public enum GlobalLockName {
+public final class ClusterLock implements GlobalLock {
- CLUSTER_LOCK("cluster_lock"),
-
- PREPARE("prepare_%s"),
-
- GLOBAL_CLOCK("global_clock"),
-
- STATISTICS("statistics");
-
- private final String lockName;
+ @Override
+ public String getName() {
+ return "cluster_lock";
+ }
}