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 d681b205671 Refactor GlobalLockDefinition (#34128)
d681b205671 is described below
commit d681b205671951bc3484aa04bf5728cb071d1e9a
Author: Liang Zhang <[email protected]>
AuthorDate: Mon Dec 23 22:03:30 2024 +0800
Refactor GlobalLockDefinition (#34128)
---
.../scenario/migration/preparer/MigrationJobPreparer.java | 2 +-
.../globalclock/executor/GlobalClockTransactionHook.java | 2 +-
.../shardingsphere/mode/lock/global/GlobalLockDefinition.java | 4 ++++
.../refresher/ShardingSphereStatisticsRefreshEngine.java | 2 +-
.../mode/lock/global/GlobalLockDefinitionTest.java | 2 +-
.../mode/manager/cluster/lock/ClusterLockContextTest.java | 3 ++-
.../cluster/persist/service/GlobalLockPersistServiceTest.java | 9 +++++----
.../handler/distsql/ral/updatable/LockClusterExecutor.java | 2 +-
.../handler/distsql/ral/updatable/UnlockClusterExecutor.java | 2 +-
9 files changed, 17 insertions(+), 11 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 6f88bce5f3f..7c505dd0694 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
@@ -118,7 +118,7 @@ public final class MigrationJobPreparer implements
PipelineJobPreparer<Migration
if (!jobItemManager.getProgress(jobId,
jobItemContext.getShardingItem()).isPresent()) {
jobItemManager.persistProgress(jobItemContext);
}
- LockDefinition lockDefinition = new
GlobalLockDefinition(String.format(GlobalLockNames.PREPARE.getLockName(),
jobConfig.getJobId()));
+ LockDefinition lockDefinition = new
GlobalLockDefinition(GlobalLockNames.PREPARE, 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/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 abe1f6436c5..16e01e9c3ee 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
@@ -41,7 +41,7 @@ import java.util.Optional;
*/
public final class GlobalClockTransactionHook implements
TransactionHook<GlobalClockRule> {
- private final LockDefinition lockDefinition = new
GlobalLockDefinition(GlobalLockNames.GLOBAL_LOCK.getLockName());
+ private final LockDefinition lockDefinition = new
GlobalLockDefinition(GlobalLockNames.GLOBAL_LOCK);
@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/GlobalLockDefinition.java
b/mode/core/src/main/java/org/apache/shardingsphere/mode/lock/global/GlobalLockDefinition.java
index 43cc3a02154..9988d61cb97 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 String lockName) {
lockKey = String.format(KEY_PATTERN, lockName);
}
+
+ public GlobalLockDefinition(final GlobalLockNames lockName, final
Object... lockParams) {
+ lockKey = String.format(KEY_PATTERN,
String.format(lockName.getLockName(), lockParams));
+ }
}
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 c87b8e19043..59aab09ab85 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
@@ -84,7 +84,7 @@ public final class ShardingSphereStatisticsRefreshEngine {
}
private void collectAndRefresh() {
- GlobalLockDefinition lockDefinition = new
GlobalLockDefinition(GlobalLockNames.STATISTICS.getLockName());
+ GlobalLockDefinition lockDefinition = new
GlobalLockDefinition(GlobalLockNames.STATISTICS);
if (lockContext.tryLock(lockDefinition, 5000L)) {
try {
ShardingSphereStatistics statistics =
contextManager.getMetaDataContexts().getStatistics();
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 8f28aeafd06..8e273682d8a 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
@@ -26,6 +26,6 @@ class GlobalLockDefinitionTest {
@Test
void assertGetLockKey() {
- assertThat(new GlobalLockDefinition("foo_lock").getLockKey(),
is("/lock/exclusive/locks/foo_lock"));
+ assertThat(new
GlobalLockDefinition(GlobalLockNames.CLUSTER_LOCK).getLockKey(),
is("/lock/exclusive/locks/cluster_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 e9c5a39d9a0..711d7335a00 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
@@ -19,6 +19,7 @@ package org.apache.shardingsphere.mode.manager.cluster.lock;
import org.apache.shardingsphere.mode.lock.LockPersistService;
import org.apache.shardingsphere.mode.lock.global.GlobalLockDefinition;
+import org.apache.shardingsphere.mode.lock.global.GlobalLockNames;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
@@ -32,7 +33,7 @@ import static org.mockito.Mockito.when;
@ExtendWith(MockitoExtension.class)
class ClusterLockContextTest {
- private final GlobalLockDefinition lockDefinition = new
GlobalLockDefinition("foo_lock");
+ private final GlobalLockDefinition lockDefinition = new
GlobalLockDefinition(GlobalLockNames.CLUSTER_LOCK);
@Mock
private LockPersistService<GlobalLockDefinition> 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 690d86303cc..164a4402b57 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
@@ -18,6 +18,7 @@
package org.apache.shardingsphere.mode.manager.cluster.persist.service;
import org.apache.shardingsphere.mode.lock.global.GlobalLockDefinition;
+import org.apache.shardingsphere.mode.lock.global.GlobalLockNames;
import
org.apache.shardingsphere.mode.repository.cluster.ClusterPersistRepository;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
@@ -37,15 +38,15 @@ class GlobalLockPersistServiceTest {
@Test
void assertTryLock() {
-
when(repository.getDistributedLockHolder().getDistributedLock("/lock/exclusive/locks/foo_lock").tryLock(1000L)).thenReturn(true);
- GlobalLockDefinition lockDefinition = new
GlobalLockDefinition("foo_lock");
+
when(repository.getDistributedLockHolder().getDistributedLock("/lock/exclusive/locks/cluster_lock").tryLock(1000L)).thenReturn(true);
+ GlobalLockDefinition lockDefinition = new
GlobalLockDefinition(GlobalLockNames.CLUSTER_LOCK);
assertTrue(new
GlobalLockPersistService(repository).tryLock(lockDefinition, 1000L));
}
@Test
void assertUnlock() {
- GlobalLockDefinition lockDefinition = new
GlobalLockDefinition("foo_lock");
+ GlobalLockDefinition lockDefinition = new
GlobalLockDefinition(GlobalLockNames.CLUSTER_LOCK);
new GlobalLockPersistService(repository).unlock(lockDefinition);
-
verify(repository.getDistributedLockHolder().getDistributedLock("/lock/exclusive/locks/foo_lock")).unlock();
+
verify(repository.getDistributedLockHolder().getDistributedLock("/lock/exclusive/locks/cluster_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 7316f5405c5..a35bf9bf128 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
@@ -43,7 +43,7 @@ public final class LockClusterExecutor implements
DistSQLUpdateExecutor<LockClus
checkState(contextManager);
checkAlgorithm(sqlStatement);
LockContext lockContext =
contextManager.getComputeNodeInstanceContext().getLockContext();
- GlobalLockDefinition lockDefinition = new
GlobalLockDefinition(GlobalLockNames.CLUSTER_LOCK.getLockName());
+ GlobalLockDefinition lockDefinition = new
GlobalLockDefinition(GlobalLockNames.CLUSTER_LOCK);
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 a32b2e650fd..6c24fdc623a 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
@@ -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(GlobalLockNames.CLUSTER_LOCK.getLockName());
+ GlobalLockDefinition lockDefinition = new
GlobalLockDefinition(GlobalLockNames.CLUSTER_LOCK);
if (lockContext.tryLock(lockDefinition, 3000L)) {
try {
checkState(contextManager);