This is an automated email from the ASF dual-hosted git repository. zhaojinchao 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 a6bf7d86e9b Rename mutex lock to internal lock (#18723) a6bf7d86e9b is described below commit a6bf7d86e9bb03c60822285512ebe2aa06d9f1b9 Author: gin <jacky7...@163.com> AuthorDate: Thu Jun 30 14:44:00 2022 +0800 Rename mutex lock to internal lock (#18723) --- .../coordinator/lock/DistributedLockContext.java | 6 +-- .../ShardingSphereDistributedDatabaseLock.java | 20 ++++----- .../distributed/ShardingSphereDistributedLock.java | 18 ++++---- .../ShardingSphereDistributedLockManager.java | 4 +- .../lock/manager/ShardingSphereLockManager.java | 4 +- .../internal/ExclusiveInternalLock.java} | 24 +++++------ .../internal/InternalLock.java} | 7 ++- .../{mutex => manager/internal}/LockAckAble.java | 5 ++- .../internal/ReentrantInternalLock.java} | 4 +- .../ShardingSphereInternalLockHolder.java} | 50 +++++++++++----------- 10 files changed, 74 insertions(+), 68 deletions(-) diff --git a/shardingsphere-mode/shardingsphere-mode-type/shardingsphere-cluster-mode/shardingsphere-cluster-mode-core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/coordinator/lock/DistributedLockContext.java b/shardingsphere-mode/shardingsphere-mode-type/shardingsphere-cluster-mode/shardingsphere-cluster-mode-core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/coordinator/lock/DistributedLockContext.java index 4ba58e75e05..03f8c8c0f1e 100644 --- a/shardingsphere-mode/shardingsphere-mode-type/shardingsphere-cluster-mode/shardingsphere-cluster-mode-core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/coordinator/lock/DistributedLockContext.java +++ b/shardingsphere-mode/shardingsphere-mode-type/shardingsphere-cluster-mode/shardingsphere-cluster-mode-core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/coordinator/lock/DistributedLockContext.java @@ -21,7 +21,7 @@ import lombok.RequiredArgsConstructor; import org.apache.shardingsphere.infra.instance.InstanceContext; import org.apache.shardingsphere.infra.lock.ShardingSphereLock; import org.apache.shardingsphere.mode.manager.cluster.coordinator.lock.manager.ShardingSphereLockManager; -import org.apache.shardingsphere.mode.manager.cluster.coordinator.lock.mutex.ShardingSphereInterMutexLockHolder; +import org.apache.shardingsphere.mode.manager.cluster.coordinator.lock.manager.internal.ShardingSphereInternalLockHolder; import org.apache.shardingsphere.mode.manager.lock.AbstractLockContext; import org.apache.shardingsphere.mode.manager.lock.definition.DatabaseLockNameDefinition; import org.apache.shardingsphere.mode.repository.cluster.ClusterPersistRepository; @@ -44,10 +44,10 @@ public final class DistributedLockContext extends AbstractLockContext { @Override public void initLockState(final InstanceContext instanceContext) { - loadLockManager(new ShardingSphereInterMutexLockHolder(repository, instanceContext.getInstance(), instanceContext.getComputeNodeInstances())); + loadLockManager(new ShardingSphereInternalLockHolder(repository, instanceContext.getInstance(), instanceContext.getComputeNodeInstances())); } - private void loadLockManager(final ShardingSphereInterMutexLockHolder lockHolder) { + private void loadLockManager(final ShardingSphereInternalLockHolder lockHolder) { lockManager = RequiredSPIRegistry.getRegisteredService(ShardingSphereLockManager.class); lockManager.init(lockHolder); } diff --git a/shardingsphere-mode/shardingsphere-mode-type/shardingsphere-cluster-mode/shardingsphere-cluster-mode-core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/coordinator/lock/database/ShardingSphereDistributedDatabaseLock.java b/shardingsphere-mode/shardingsphere-mode-type/shardingsphere-cluster-mode/shardingsphere-cluster-mode-core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/coordinator/lock/database/ShardingSphereDistributedDatabaseLock.java index a7d70f1edac..4de03a2774a 100644 --- a/shardingsphere-mode/shardingsphere-mode-type/shardingsphere-cluster-mode/shardingsphere-cluster-mode-core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/coordinator/lock/database/ShardingSphereDistributedDatabaseLock.java +++ b/shardingsphere-mode/shardingsphere-mode-type/shardingsphere-cluster-mode/shardingsphere-cluster-mode-core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/coordinator/lock/database/ShardingSphereDistributedDatabaseLock.java @@ -27,8 +27,8 @@ import org.apache.shardingsphere.mode.manager.cluster.coordinator.lock.database. import org.apache.shardingsphere.mode.manager.cluster.coordinator.lock.database.event.DatabaseAckLockedEvent; import org.apache.shardingsphere.mode.manager.cluster.coordinator.lock.database.event.DatabaseLockReleasedEvent; import org.apache.shardingsphere.mode.manager.cluster.coordinator.lock.database.event.DatabaseLockedEvent; -import org.apache.shardingsphere.mode.manager.cluster.coordinator.lock.mutex.InterMutexLock; -import org.apache.shardingsphere.mode.manager.cluster.coordinator.lock.mutex.ShardingSphereInterMutexLockHolder; +import org.apache.shardingsphere.mode.manager.cluster.coordinator.lock.manager.internal.ExclusiveInternalLock; +import org.apache.shardingsphere.mode.manager.cluster.coordinator.lock.manager.internal.ShardingSphereInternalLockHolder; import org.apache.shardingsphere.mode.manager.cluster.coordinator.lock.util.LockNodeType; import org.apache.shardingsphere.mode.manager.cluster.coordinator.lock.util.TimeoutMilliseconds; @@ -41,11 +41,11 @@ public final class ShardingSphereDistributedDatabaseLock implements ShardingSphe private final LockNodeService lockNodeService = LockNodeServiceFactory.getInstance().getLockNodeService(LockNodeType.DATABASE); - private final ShardingSphereInterMutexLockHolder lockHolder; + private final ShardingSphereInternalLockHolder lockHolder; private final LockStateContext lockStateContext; - public ShardingSphereDistributedDatabaseLock(final ShardingSphereInterMutexLockHolder lockHolder, final LockStateContext lockStateContext) { + public ShardingSphereDistributedDatabaseLock(final ShardingSphereInternalLockHolder lockHolder, final LockStateContext lockStateContext) { this.lockHolder = lockHolder; this.lockStateContext = lockStateContext; ShardingSphereEventBus.getInstance().register(this); @@ -70,13 +70,13 @@ public final class ShardingSphereDistributedDatabaseLock implements ShardingSphe return false; } - private Optional<InterMutexLock> getInterMutexLock(final String lockName) { + private Optional<ExclusiveInternalLock> getInterMutexLock(final String lockName) { return lockHolder.getInterMutexLock(lockNodeService.generateLocksName(lockName)); } @Override public void releaseLock(final String lockName) { - Optional<InterMutexLock> interMutexLock = getInterMutexLock(lockName); + Optional<ExclusiveInternalLock> interMutexLock = getInterMutexLock(lockName); if (interMutexLock.isPresent()) { interMutexLock.get().unlock(); lockStateContext.unregister(lockName); @@ -85,7 +85,7 @@ public final class ShardingSphereDistributedDatabaseLock implements ShardingSphe @Override public boolean isLocked(final String lockName) { - return getInterMutexLock(lockName).map(InterMutexLock::isLocked).orElse(false); + return getInterMutexLock(lockName).map(ExclusiveInternalLock::isLocked).orElse(false); } /** @@ -97,8 +97,8 @@ public final class ShardingSphereDistributedDatabaseLock implements ShardingSphe public synchronized void locked(final DatabaseLockedEvent event) { String database = event.getDatabase(); String lockedInstanceId = lockHolder.getCurrentInstanceId(); - InterMutexLock interMutexLock = lockHolder.getOrCreateInterMutexLock(lockNodeService.generateLocksName(database)); - interMutexLock.ackLock(lockNodeService.generateAckLockName(database, lockedInstanceId), lockedInstanceId); + ExclusiveInternalLock exclusiveLock = lockHolder.getOrCreateInterMutexLock(lockNodeService.generateLocksName(database)); + exclusiveLock.ackLock(lockNodeService.generateAckLockName(database, lockedInstanceId), lockedInstanceId); lockStateContext.register(database); } @@ -111,7 +111,7 @@ public final class ShardingSphereDistributedDatabaseLock implements ShardingSphe public synchronized void lockReleased(final DatabaseLockReleasedEvent event) { String database = event.getDatabase(); String lockedInstanceId = lockHolder.getCurrentInstanceId(); - Optional<InterMutexLock> interMutexLock = getInterMutexLock(database); + Optional<ExclusiveInternalLock> interMutexLock = getInterMutexLock(database); if (interMutexLock.isPresent()) { interMutexLock.get().releaseAckLock(lockNodeService.generateAckLockName(database, lockedInstanceId), lockedInstanceId); lockStateContext.unregister(database); diff --git a/shardingsphere-mode/shardingsphere-mode-type/shardingsphere-cluster-mode/shardingsphere-cluster-mode-core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/coordinator/lock/distributed/ShardingSphereDistributedLock.java b/shardingsphere-mode/shardingsphere-mode-type/shardingsphere-cluster-mode/shardingsphere-cluster-mode-core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/coordinator/lock/distributed/ShardingSphereDistributedLock.java index 02fed75e65c..30baa863438 100644 --- a/shardingsphere-mode/shardingsphere-mode-type/shardingsphere-cluster-mode/shardingsphere-cluster-mode-core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/coordinator/lock/distributed/ShardingSphereDistributedLock.java +++ b/shardingsphere-mode/shardingsphere-mode-type/shardingsphere-cluster-mode/shardingsphere-cluster-mode-core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/coordinator/lock/distributed/ShardingSphereDistributedLock.java @@ -23,8 +23,8 @@ import org.apache.shardingsphere.infra.eventbus.ShardingSphereEventBus; import org.apache.shardingsphere.infra.lock.ShardingSphereLock; import org.apache.shardingsphere.mode.manager.cluster.coordinator.lock.LockNodeService; import org.apache.shardingsphere.mode.manager.cluster.coordinator.lock.service.LockNodeServiceFactory; -import org.apache.shardingsphere.mode.manager.cluster.coordinator.lock.mutex.InterMutexLock; -import org.apache.shardingsphere.mode.manager.cluster.coordinator.lock.mutex.ShardingSphereInterMutexLockHolder; +import org.apache.shardingsphere.mode.manager.cluster.coordinator.lock.manager.internal.ExclusiveInternalLock; +import org.apache.shardingsphere.mode.manager.cluster.coordinator.lock.manager.internal.ShardingSphereInternalLockHolder; import org.apache.shardingsphere.mode.manager.cluster.coordinator.lock.distributed.event.DistributedAckLockReleasedEvent; import org.apache.shardingsphere.mode.manager.cluster.coordinator.lock.distributed.event.DistributedAckLockedEvent; import org.apache.shardingsphere.mode.manager.cluster.coordinator.lock.distributed.event.DistributedLockReleasedEvent; @@ -42,9 +42,9 @@ public final class ShardingSphereDistributedLock implements ShardingSphereLock { private final LockNodeService lockNodeService = LockNodeServiceFactory.getInstance().getLockNodeService(LockNodeType.DISTRIBUTED); - private final ShardingSphereInterMutexLockHolder lockHolder; + private final ShardingSphereInternalLockHolder lockHolder; - public ShardingSphereDistributedLock(final ShardingSphereInterMutexLockHolder lockHolder) { + public ShardingSphereDistributedLock(final ShardingSphereInternalLockHolder lockHolder) { this.lockHolder = lockHolder; ShardingSphereEventBus.getInstance().register(this); syncDistributedLockStatus(); @@ -68,18 +68,18 @@ public final class ShardingSphereDistributedLock implements ShardingSphereLock { return lockHolder.getOrCreateInterMutexLock(lockNodeService.generateLocksName(lockName)).tryLock(timeoutMillis); } - private Optional<InterMutexLock> getInterMutexLock(final String lockName) { + private Optional<ExclusiveInternalLock> getInterMutexLock(final String lockName) { return lockHolder.getInterMutexLock(lockNodeService.generateLocksName(lockName)); } @Override public void releaseLock(final String lockName) { - getInterMutexLock(lockName).ifPresent(InterMutexLock::unlock); + getInterMutexLock(lockName).ifPresent(ExclusiveInternalLock::unlock); } @Override public boolean isLocked(final String lockName) { - return getInterMutexLock(lockName).map(InterMutexLock::isLocked).orElse(false); + return getInterMutexLock(lockName).map(ExclusiveInternalLock::isLocked).orElse(false); } /** @@ -91,8 +91,8 @@ public final class ShardingSphereDistributedLock implements ShardingSphereLock { public synchronized void locked(final DistributedLockedEvent event) { String lockName = event.getLockedName(); String lockedInstanceId = lockHolder.getCurrentInstanceId(); - InterMutexLock interMutexLock = lockHolder.getOrCreateInterMutexLock(lockNodeService.generateLocksName(lockName)); - interMutexLock.ackLock(lockNodeService.generateAckLockName(lockName, lockedInstanceId), lockedInstanceId); + ExclusiveInternalLock exclusiveLock = lockHolder.getOrCreateInterMutexLock(lockNodeService.generateLocksName(lockName)); + exclusiveLock.ackLock(lockNodeService.generateAckLockName(lockName, lockedInstanceId), lockedInstanceId); } /** diff --git a/shardingsphere-mode/shardingsphere-mode-type/shardingsphere-cluster-mode/shardingsphere-cluster-mode-core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/coordinator/lock/manager/ShardingSphereDistributedLockManager.java b/shardingsphere-mode/shardingsphere-mode-type/shardingsphere-cluster-mode/shardingsphere-cluster-mode-core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/coordinator/lock/manager/ShardingSphereDistributedLockManager.java index 541ca5054ee..714214ade6c 100644 --- a/shardingsphere-mode/shardingsphere-mode-type/shardingsphere-cluster-mode/shardingsphere-cluster-mode-core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/coordinator/lock/manager/ShardingSphereDistributedLockManager.java +++ b/shardingsphere-mode/shardingsphere-mode-type/shardingsphere-cluster-mode/shardingsphere-cluster-mode-core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/coordinator/lock/manager/ShardingSphereDistributedLockManager.java @@ -24,7 +24,7 @@ import org.apache.shardingsphere.infra.lock.ShardingSphereLock; import org.apache.shardingsphere.mode.manager.cluster.coordinator.lock.database.ShardingSphereDistributedDatabaseLock; import org.apache.shardingsphere.mode.manager.cluster.coordinator.lock.distributed.ShardingSphereDistributedLock; import org.apache.shardingsphere.mode.manager.cluster.coordinator.lock.manager.state.LockStateContextFactory; -import org.apache.shardingsphere.mode.manager.cluster.coordinator.lock.mutex.ShardingSphereInterMutexLockHolder; +import org.apache.shardingsphere.mode.manager.cluster.coordinator.lock.manager.internal.ShardingSphereInternalLockHolder; import org.apache.shardingsphere.mode.manager.cluster.coordinator.lock.util.TimeoutMilliseconds; import org.apache.shardingsphere.mode.manager.lock.definition.DatabaseLockNameDefinition; @@ -39,7 +39,7 @@ public final class ShardingSphereDistributedLockManager implements ShardingSpher private ShardingSphereLock databaseLock; @Override - public void init(final ShardingSphereInterMutexLockHolder lockHolder) { + public void init(final ShardingSphereInternalLockHolder lockHolder) { distributedLock = new ShardingSphereDistributedLock(lockHolder); databaseLock = new ShardingSphereDistributedDatabaseLock(lockHolder, LockStateContextFactory.getLockStateContext()); } diff --git a/shardingsphere-mode/shardingsphere-mode-type/shardingsphere-cluster-mode/shardingsphere-cluster-mode-core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/coordinator/lock/manager/ShardingSphereLockManager.java b/shardingsphere-mode/shardingsphere-mode-type/shardingsphere-cluster-mode/shardingsphere-cluster-mode-core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/coordinator/lock/manager/ShardingSphereLockManager.java index 6c6fcf6140e..06c835b69cd 100644 --- a/shardingsphere-mode/shardingsphere-mode-type/shardingsphere-cluster-mode/shardingsphere-cluster-mode-core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/coordinator/lock/manager/ShardingSphereLockManager.java +++ b/shardingsphere-mode/shardingsphere-mode-type/shardingsphere-cluster-mode/shardingsphere-cluster-mode-core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/coordinator/lock/manager/ShardingSphereLockManager.java @@ -18,7 +18,7 @@ package org.apache.shardingsphere.mode.manager.cluster.coordinator.lock.manager; import org.apache.shardingsphere.infra.lock.ShardingSphereLock; -import org.apache.shardingsphere.mode.manager.cluster.coordinator.lock.mutex.ShardingSphereInterMutexLockHolder; +import org.apache.shardingsphere.mode.manager.cluster.coordinator.lock.manager.internal.ShardingSphereInternalLockHolder; import org.apache.shardingsphere.mode.manager.lock.definition.DatabaseLockNameDefinition; import org.apache.shardingsphere.spi.annotation.SingletonSPI; import org.apache.shardingsphere.spi.type.required.RequiredSPI; @@ -34,7 +34,7 @@ public interface ShardingSphereLockManager extends RequiredSPI { * * @param lockHolder lock holder */ - void init(ShardingSphereInterMutexLockHolder lockHolder); + void init(ShardingSphereInternalLockHolder lockHolder); /** * Get distributed lock. diff --git a/shardingsphere-mode/shardingsphere-mode-type/shardingsphere-cluster-mode/shardingsphere-cluster-mode-core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/coordinator/lock/mutex/InterMutexLock.java b/shardingsphere-mode/shardingsphere-mode-type/shardingsphere-cluster-mode/shardingsphere-cluster-mode-core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/coordinator/lock/manager/internal/ExclusiveInternalLock.java similarity index 88% rename from shardingsphere-mode/shardingsphere-mode-type/shardingsphere-cluster-mode/shardingsphere-cluster-mode-core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/coordinator/lock/mutex/InterMutexLock.java rename to shardingsphere-mode/shardingsphere-mode-type/shardingsphere-cluster-mode/shardingsphere-cluster-mode-core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/coordinator/lock/manager/internal/ExclusiveInternalLock.java index 229fa30c561..643bf7c54be 100644 --- a/shardingsphere-mode/shardingsphere-mode-type/shardingsphere-cluster-mode/shardingsphere-cluster-mode-core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/coordinator/lock/mutex/InterMutexLock.java +++ b/shardingsphere-mode/shardingsphere-mode-type/shardingsphere-cluster-mode/shardingsphere-cluster-mode-core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/coordinator/lock/manager/internal/ExclusiveInternalLock.java @@ -15,7 +15,7 @@ * limitations under the License. */ -package org.apache.shardingsphere.mode.manager.cluster.coordinator.lock.mutex; +package org.apache.shardingsphere.mode.manager.cluster.coordinator.lock.manager.internal; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; @@ -32,15 +32,15 @@ import java.util.concurrent.atomic.AtomicBoolean; import java.util.concurrent.atomic.AtomicReference; /** - * Inter mutex lock. + * Exclusive lock. */ @Slf4j @RequiredArgsConstructor -public final class InterMutexLock implements MutexLock, LockAckAble { +public final class ExclusiveInternalLock implements InternalLock, LockAckAble { private final String lockName; - private final MutexLock sequence; + private final InternalLock sequencedInternalLock; private final LockRegistryService lockService; @@ -61,32 +61,32 @@ public final class InterMutexLock implements MutexLock, LockAckAble { @Override public boolean tryLock(final long timeoutMillis) { - if (!sequence.tryLock(TimeoutMilliseconds.DEFAULT_REGISTRY)) { - log.debug("Inter mutex sequence lock acquire sequenced failed, lock name: {}", lockName); + if (!sequencedInternalLock.tryLock(TimeoutMilliseconds.DEFAULT_REGISTRY)) { + log.debug("Exclusive lock acquire sequenced failed, lock name: {}", lockName); return false; } try { long timeoutMilliseconds = Math.max(timeoutMillis, TimeoutMilliseconds.MIN_TRY_LOCK); - log.debug("Inter mutex sequence lock acquire sequenced success, lock name: {}, timeout milliseconds: {}ms", lockName, timeoutMilliseconds); + log.debug("Exclusive lock acquire sequenced success, lock name: {}, timeout milliseconds: {}ms", lockName, timeoutMilliseconds); return innerTryLock(lockName, timeoutMilliseconds); } finally { - sequence.unlock(); - log.debug("Inter mutex sequence lock release sequenced success, database name: {}", lockName); + sequencedInternalLock.unlock(); + log.debug("Exclusive lock release sequenced success, database name: {}", lockName); } } private boolean innerTryLock(final String lockName, final long timeout) { if (!synchronizedLockState.compareAndSet(LockState.UNLOCKED, LockState.LOCKING)) { - log.debug("Inter mutex lock try Lock set lock state failed, lock name: {}, lock state: {}", lockName, synchronizedLockState.get().name()); + log.debug("Exclusive lock try Lock set lock state failed, lock name: {}, lock state: {}", lockName, synchronizedLockState.get().name()); return false; } if (!isOwner.compareAndSet(false, true)) { - log.debug("Inter mutex lock try Lock set lock owner failed, lock name: {}, lock is owner: {}", lockName, isOwner.get()); + log.debug("Exclusive lock try Lock set lock owner failed, lock name: {}, lock is owner: {}", lockName, isOwner.get()); return false; } if (acquire(lockName, timeout)) { if (synchronizedLockState.compareAndSet(LockState.LOCKING, LockState.LOCKED)) { - log.debug("Inter mutex lock try Lock acquire lock success, lock name: {}", lockName); + log.debug("Exclusive lock try Lock acquire lock success, lock name: {}", lockName); return true; } } diff --git a/shardingsphere-mode/shardingsphere-mode-type/shardingsphere-cluster-mode/shardingsphere-cluster-mode-core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/coordinator/lock/mutex/MutexLock.java b/shardingsphere-mode/shardingsphere-mode-type/shardingsphere-cluster-mode/shardingsphere-cluster-mode-core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/coordinator/lock/manager/internal/InternalLock.java similarity index 93% rename from shardingsphere-mode/shardingsphere-mode-type/shardingsphere-cluster-mode/shardingsphere-cluster-mode-core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/coordinator/lock/mutex/MutexLock.java rename to shardingsphere-mode/shardingsphere-mode-type/shardingsphere-cluster-mode/shardingsphere-cluster-mode-core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/coordinator/lock/manager/internal/InternalLock.java index 16365825ba9..a03e5e039fd 100644 --- a/shardingsphere-mode/shardingsphere-mode-type/shardingsphere-cluster-mode/shardingsphere-cluster-mode-core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/coordinator/lock/mutex/MutexLock.java +++ b/shardingsphere-mode/shardingsphere-mode-type/shardingsphere-cluster-mode/shardingsphere-cluster-mode-core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/coordinator/lock/manager/internal/InternalLock.java @@ -15,9 +15,12 @@ * limitations under the License. */ -package org.apache.shardingsphere.mode.manager.cluster.coordinator.lock.mutex; +package org.apache.shardingsphere.mode.manager.cluster.coordinator.lock.manager.internal; -public interface MutexLock { +/** + * Internal lock. + */ +public interface InternalLock { /** * Try lock. diff --git a/shardingsphere-mode/shardingsphere-mode-type/shardingsphere-cluster-mode/shardingsphere-cluster-mode-core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/coordinator/lock/mutex/LockAckAble.java b/shardingsphere-mode/shardingsphere-mode-type/shardingsphere-cluster-mode/shardingsphere-cluster-mode-core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/coordinator/lock/manager/internal/LockAckAble.java similarity index 96% rename from shardingsphere-mode/shardingsphere-mode-type/shardingsphere-cluster-mode/shardingsphere-cluster-mode-core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/coordinator/lock/mutex/LockAckAble.java rename to shardingsphere-mode/shardingsphere-mode-type/shardingsphere-cluster-mode/shardingsphere-cluster-mode-core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/coordinator/lock/manager/internal/LockAckAble.java index 3cc4144939a..ee0ed43e42a 100644 --- a/shardingsphere-mode/shardingsphere-mode-type/shardingsphere-cluster-mode/shardingsphere-cluster-mode-core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/coordinator/lock/mutex/LockAckAble.java +++ b/shardingsphere-mode/shardingsphere-mode-type/shardingsphere-cluster-mode/shardingsphere-cluster-mode-core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/coordinator/lock/manager/internal/LockAckAble.java @@ -15,8 +15,11 @@ * limitations under the License. */ -package org.apache.shardingsphere.mode.manager.cluster.coordinator.lock.mutex; +package org.apache.shardingsphere.mode.manager.cluster.coordinator.lock.manager.internal; +/** + * Lock ack able. + */ public interface LockAckAble { /** diff --git a/shardingsphere-mode/shardingsphere-mode-type/shardingsphere-cluster-mode/shardingsphere-cluster-mode-core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/coordinator/lock/mutex/InterReentrantMutexLock.java b/shardingsphere-mode/shardingsphere-mode-type/shardingsphere-cluster-mode/shardingsphere-cluster-mode-core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/coordinator/lock/manager/internal/ReentrantInternalLock.java similarity index 94% rename from shardingsphere-mode/shardingsphere-mode-type/shardingsphere-cluster-mode/shardingsphere-cluster-mode-core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/coordinator/lock/mutex/InterReentrantMutexLock.java rename to shardingsphere-mode/shardingsphere-mode-type/shardingsphere-cluster-mode/shardingsphere-cluster-mode-core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/coordinator/lock/manager/internal/ReentrantInternalLock.java index 8c739d6c1a9..556b19d1306 100644 --- a/shardingsphere-mode/shardingsphere-mode-type/shardingsphere-cluster-mode/shardingsphere-cluster-mode-core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/coordinator/lock/mutex/InterReentrantMutexLock.java +++ b/shardingsphere-mode/shardingsphere-mode-type/shardingsphere-cluster-mode/shardingsphere-cluster-mode-core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/coordinator/lock/manager/internal/ReentrantInternalLock.java @@ -15,7 +15,7 @@ * limitations under the License. */ -package org.apache.shardingsphere.mode.manager.cluster.coordinator.lock.mutex; +package org.apache.shardingsphere.mode.manager.cluster.coordinator.lock.manager.internal; import lombok.RequiredArgsConstructor; import org.apache.shardingsphere.mode.manager.cluster.coordinator.lock.util.TimeoutMilliseconds; @@ -27,7 +27,7 @@ import java.util.concurrent.locks.Lock; * Inter mutex reentrant lock. */ @RequiredArgsConstructor -public final class InterReentrantMutexLock implements MutexLock { +public final class ReentrantInternalLock implements InternalLock { private final Lock internalLock; diff --git a/shardingsphere-mode/shardingsphere-mode-type/shardingsphere-cluster-mode/shardingsphere-cluster-mode-core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/coordinator/lock/mutex/ShardingSphereInterMutexLockHolder.java b/shardingsphere-mode/shardingsphere-mode-type/shardingsphere-cluster-mode/shardingsphere-cluster-mode-core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/coordinator/lock/manager/internal/ShardingSphereInternalLockHolder.java similarity index 66% rename from shardingsphere-mode/shardingsphere-mode-type/shardingsphere-cluster-mode/shardingsphere-cluster-mode-core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/coordinator/lock/mutex/ShardingSphereInterMutexLockHolder.java rename to shardingsphere-mode/shardingsphere-mode-type/shardingsphere-cluster-mode/shardingsphere-cluster-mode-core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/coordinator/lock/manager/internal/ShardingSphereInternalLockHolder.java index a589aad21d0..6512a9284a8 100644 --- a/shardingsphere-mode/shardingsphere-mode-type/shardingsphere-cluster-mode/shardingsphere-cluster-mode-core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/coordinator/lock/mutex/ShardingSphereInterMutexLockHolder.java +++ b/shardingsphere-mode/shardingsphere-mode-type/shardingsphere-cluster-mode/shardingsphere-cluster-mode-core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/coordinator/lock/manager/internal/ShardingSphereInternalLockHolder.java @@ -15,7 +15,7 @@ * limitations under the License. */ -package org.apache.shardingsphere.mode.manager.cluster.coordinator.lock.mutex; +package org.apache.shardingsphere.mode.manager.cluster.coordinator.lock.manager.internal; import org.apache.shardingsphere.infra.instance.ComputeNodeInstance; import org.apache.shardingsphere.mode.manager.cluster.coordinator.lock.LockNodeService; @@ -31,11 +31,11 @@ import java.util.Map; import java.util.Optional; /** - * Inter mutex lock holder of ShardingSphere. + * Lock holder of ShardingSphere. */ -public final class ShardingSphereInterMutexLockHolder { +public final class ShardingSphereInternalLockHolder { - private final Map<String, MutexLock> mutexLocks = new LinkedHashMap<>(); + private final Map<String, InternalLock> internalLocks = new LinkedHashMap<>(); private final ClusterPersistRepository clusterRepository; @@ -45,7 +45,7 @@ public final class ShardingSphereInterMutexLockHolder { private final LockRegistryService mutexLockRegistryService; - public ShardingSphereInterMutexLockHolder(final ClusterPersistRepository repository, final ComputeNodeInstance instance, final Collection<ComputeNodeInstance> nodeInstances) { + public ShardingSphereInternalLockHolder(final ClusterPersistRepository repository, final ComputeNodeInstance instance, final Collection<ComputeNodeInstance> nodeInstances) { clusterRepository = repository; currentInstance = instance; computeNodeInstances = nodeInstances; @@ -58,22 +58,22 @@ public final class ShardingSphereInterMutexLockHolder { * @param locksName locks name * @return inter mutex lock */ - public synchronized InterMutexLock getOrCreateInterMutexLock(final String locksName) { - MutexLock result = mutexLocks.get(locksName); + public synchronized ExclusiveInternalLock getOrCreateInterMutexLock(final String locksName) { + InternalLock result = internalLocks.get(locksName); if (null == result) { result = createInterMutexLock(locksName); - mutexLocks.put(locksName, result); + internalLocks.put(locksName, result); } - return (InterMutexLock) result; + return (ExclusiveInternalLock) result; } - private InterMutexLock createInterMutexLock(final String locksName) { - InterReentrantMutexLock interReentrantMutexLock = createInterReentrantMutexLock(LockNodeUtil.generateLockSequenceNodePath(locksName)); - return new InterMutexLock(locksName, interReentrantMutexLock, mutexLockRegistryService, currentInstance, computeNodeInstances); + private ExclusiveInternalLock createInterMutexLock(final String locksName) { + ReentrantInternalLock reentrantExclusiveLock = createInterReentrantMutexLock(LockNodeUtil.generateLockSequenceNodePath(locksName)); + return new ExclusiveInternalLock(locksName, reentrantExclusiveLock, mutexLockRegistryService, currentInstance, computeNodeInstances); } - private InterReentrantMutexLock createInterReentrantMutexLock(final String lockNodePath) { - return new InterReentrantMutexLock(clusterRepository.getInternalReentrantMutexLock(lockNodePath)); + private ReentrantInternalLock createInterReentrantMutexLock(final String lockNodePath) { + return new ReentrantInternalLock(clusterRepository.getInternalReentrantMutexLock(lockNodePath)); } /** @@ -82,11 +82,11 @@ public final class ShardingSphereInterMutexLockHolder { * @param locksName locks name * @return inter mutex lock */ - public Optional<InterMutexLock> getInterMutexLock(final String locksName) { - if (mutexLocks.isEmpty()) { + public Optional<ExclusiveInternalLock> getInterMutexLock(final String locksName) { + if (internalLocks.isEmpty()) { return Optional.empty(); } - return Optional.ofNullable((InterMutexLock) mutexLocks.get(locksName)); + return Optional.ofNullable((ExclusiveInternalLock) internalLocks.get(locksName)); } /** @@ -95,13 +95,13 @@ public final class ShardingSphereInterMutexLockHolder { * @param locksName locks name * @return inter reentrant mutex lock */ - public synchronized InterReentrantMutexLock getOrCreateInterReentrantMutexLock(final String locksName) { - MutexLock result = mutexLocks.get(locksName); + public synchronized ReentrantInternalLock getOrCreateInterReentrantMutexLock(final String locksName) { + InternalLock result = internalLocks.get(locksName); if (null == result) { result = createInterReentrantMutexLock(locksName); - mutexLocks.put(locksName, result); + internalLocks.put(locksName, result); } - return (InterReentrantMutexLock) result; + return (ReentrantInternalLock) result; } /** @@ -110,11 +110,11 @@ public final class ShardingSphereInterMutexLockHolder { * @param locksName locks name * @return inter mutex lock */ - public Optional<InterReentrantMutexLock> getInterReentrantMutexLock(final String locksName) { - if (mutexLocks.isEmpty()) { + public Optional<ReentrantInternalLock> getInterReentrantMutexLock(final String locksName) { + if (internalLocks.isEmpty()) { return Optional.empty(); } - return Optional.ofNullable((InterReentrantMutexLock) mutexLocks.get(locksName)); + return Optional.ofNullable((ReentrantInternalLock) internalLocks.get(locksName)); } /** @@ -133,7 +133,7 @@ public final class ShardingSphereInterMutexLockHolder { } for (String each : allGlobalLock) { Optional<String> generalLock = lockNodeService.parseLocksNodePath(each); - generalLock.ifPresent(optional -> mutexLocks.put(optional, createInterMutexLock(optional))); + generalLock.ifPresent(optional -> internalLocks.put(optional, createInterMutexLock(optional))); } }