You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@shardingsphere.apache.org by du...@apache.org on 2022/10/29 06:30:48 UTC

[shardingsphere] branch master updated: Refactor DistributedLock (#21836)

This is an automated email from the ASF dual-hosted git repository.

duanzhengqiang 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 05a88dc658d Refactor DistributedLock (#21836)
05a88dc658d is described below

commit 05a88dc658d47f9f89cd2a948ffb9ccfeefef40d
Author: Liang Zhang <zh...@apache.org>
AuthorDate: Sat Oct 29 14:30:42 2022 +0800

    Refactor DistributedLock (#21836)
    
    * Refactor DistributedLock
    
    * Refactor DistributedLockProvider
---
 .../mode/repository/cluster/consul/lock/ConsulDistributedLock.java | 4 ----
 .../mode/repository/cluster/etcd/lock/EtcdDistributedLock.java     | 4 ++--
 .../repository/cluster/etcd/lock/EtcdDistributedLockProvider.java  | 7 +++----
 .../cluster/zookeeper/lock/CuratorZookeeperDistributedLock.java    | 4 ++--
 .../zookeeper/lock/CuratorZookeeperDistributedLockProvider.java    | 7 +++----
 5 files changed, 10 insertions(+), 16 deletions(-)

diff --git a/mode/type/cluster/repository/provider/consul/src/main/java/org/apache/shardingsphere/mode/repository/cluster/consul/lock/ConsulDistributedLock.java b/mode/type/cluster/repository/provider/consul/src/main/java/org/apache/shardingsphere/mode/repository/cluster/consul/lock/ConsulDistributedLock.java
index ef75e07dea8..050ee7fe7be 100644
--- a/mode/type/cluster/repository/provider/consul/src/main/java/org/apache/shardingsphere/mode/repository/cluster/consul/lock/ConsulDistributedLock.java
+++ b/mode/type/cluster/repository/provider/consul/src/main/java/org/apache/shardingsphere/mode/repository/cluster/consul/lock/ConsulDistributedLock.java
@@ -31,7 +31,6 @@ import com.ecwid.consul.v1.session.model.Session;
 import com.google.common.base.Strings;
 import com.google.common.reflect.TypeToken;
 import lombok.RequiredArgsConstructor;
-import lombok.extern.slf4j.Slf4j;
 import org.apache.shardingsphere.mode.repository.cluster.consul.ShardingSphereConsulClient;
 import org.apache.shardingsphere.mode.repository.cluster.consul.ShardingSphereQueryParams;
 import org.apache.shardingsphere.mode.repository.cluster.consul.props.ConsulProperties;
@@ -47,7 +46,6 @@ import java.util.concurrent.atomic.AtomicBoolean;
  * Consul distributed lock.
  */
 @RequiredArgsConstructor
-@Slf4j
 public final class ConsulDistributedLock implements DistributedLock {
     
     private static final String CONSUL_ROOT_PATH = "sharding/lock";
@@ -100,7 +98,6 @@ public final class ConsulDistributedLock implements DistributedLock {
             // CHECKSTYLE:OFF
         } catch (final Exception ex) {
             // CHECKSTYLE:ON
-            log.error("EtcdRepository tryLock error, lockName:{}", lockName, ex);
             return false;
         }
     }
@@ -190,7 +187,6 @@ public final class ConsulDistributedLock implements DistributedLock {
             // CHECKSTYLE:OFF
         } catch (final Exception ex) {
             // CHECKSTYLE:ON
-            log.error("EtcdRepository unlock error, lockName: {}", lockName, ex);
         } finally {
             lockSessionMap.remove();
         }
diff --git a/mode/type/cluster/repository/provider/etcd/src/main/java/org/apache/shardingsphere/mode/repository/cluster/etcd/lock/EtcdDistributedLock.java b/mode/type/cluster/repository/provider/etcd/src/main/java/org/apache/shardingsphere/mode/repository/cluster/etcd/lock/EtcdDistributedLock.java
index f3b81f8978c..f3f9519a6fe 100644
--- a/mode/type/cluster/repository/provider/etcd/src/main/java/org/apache/shardingsphere/mode/repository/cluster/etcd/lock/EtcdDistributedLock.java
+++ b/mode/type/cluster/repository/provider/etcd/src/main/java/org/apache/shardingsphere/mode/repository/cluster/etcd/lock/EtcdDistributedLock.java
@@ -38,9 +38,9 @@ public final class EtcdDistributedLock implements DistributedLock {
     private final long leaseId;
     
     @Override
-    public boolean tryLock(final long timeout) {
+    public boolean tryLock(final long timeoutMillis) {
         try {
-            this.lock.lock(ByteSequence.from(lockKey, StandardCharsets.UTF_8), leaseId).get(timeout, TimeUnit.MILLISECONDS);
+            lock.lock(ByteSequence.from(lockKey, StandardCharsets.UTF_8), leaseId).get(timeoutMillis, TimeUnit.MILLISECONDS);
             return true;
             // CHECKSTYLE:OFF
         } catch (final Exception ex) {
diff --git a/mode/type/cluster/repository/provider/etcd/src/main/java/org/apache/shardingsphere/mode/repository/cluster/etcd/lock/EtcdDistributedLockProvider.java b/mode/type/cluster/repository/provider/etcd/src/main/java/org/apache/shardingsphere/mode/repository/cluster/etcd/lock/EtcdDistributedLockProvider.java
index aab0d60f32a..99369227468 100644
--- a/mode/type/cluster/repository/provider/etcd/src/main/java/org/apache/shardingsphere/mode/repository/cluster/etcd/lock/EtcdDistributedLockProvider.java
+++ b/mode/type/cluster/repository/provider/etcd/src/main/java/org/apache/shardingsphere/mode/repository/cluster/etcd/lock/EtcdDistributedLockProvider.java
@@ -25,9 +25,8 @@ import org.apache.shardingsphere.mode.repository.cluster.etcd.props.EtcdProperty
 import org.apache.shardingsphere.mode.repository.cluster.lock.DistributedLock;
 import org.apache.shardingsphere.mode.repository.cluster.lock.DistributedLockProvider;
 
-import java.util.LinkedHashMap;
+import java.util.HashMap;
 import java.util.Map;
-import java.util.Objects;
 
 /**
  * Etcd distributed lock provider.
@@ -36,7 +35,7 @@ import java.util.Objects;
 @Slf4j
 public final class EtcdDistributedLockProvider implements DistributedLockProvider {
     
-    private final Map<String, EtcdDistributedLock> locks = new LinkedHashMap<>();
+    private final Map<String, EtcdDistributedLock> locks = new HashMap<>();
     
     private final Client client;
     
@@ -45,7 +44,7 @@ public final class EtcdDistributedLockProvider implements DistributedLockProvide
     @Override
     public synchronized DistributedLock getDistributedLock(final String lockKey) {
         EtcdDistributedLock result = locks.get(lockKey);
-        if (Objects.isNull(result)) {
+        if (null == result) {
             result = createLock(lockKey);
             locks.put(lockKey, result);
         }
diff --git a/mode/type/cluster/repository/provider/zookeeper-curator/src/main/java/org/apache/shardingsphere/mode/repository/cluster/zookeeper/lock/CuratorZookeeperDistributedLock.java b/mode/type/cluster/repository/provider/zookeeper-curator/src/main/java/org/apache/shardingsphere/mode/repository/cluster/zookeeper/lock/CuratorZookeeperDistributedLock.java
index 280e9ad3372..4702ee24ebc 100644
--- a/mode/type/cluster/repository/provider/zookeeper-curator/src/main/java/org/apache/shardingsphere/mode/repository/cluster/zookeeper/lock/CuratorZookeeperDistributedLock.java
+++ b/mode/type/cluster/repository/provider/zookeeper-curator/src/main/java/org/apache/shardingsphere/mode/repository/cluster/zookeeper/lock/CuratorZookeeperDistributedLock.java
@@ -33,9 +33,9 @@ public final class CuratorZookeeperDistributedLock implements DistributedLock {
     private final InterProcessLock lock;
     
     @Override
-    public boolean tryLock(final long timeout) {
+    public boolean tryLock(final long timeoutMillis) {
         try {
-            return lock.acquire(timeout, TimeUnit.MILLISECONDS);
+            return lock.acquire(timeoutMillis, TimeUnit.MILLISECONDS);
             // CHECKSTYLE:OFF
         } catch (final Exception ex) {
             // CHECKSTYLE:ON
diff --git a/mode/type/cluster/repository/provider/zookeeper-curator/src/main/java/org/apache/shardingsphere/mode/repository/cluster/zookeeper/lock/CuratorZookeeperDistributedLockProvider.java b/mode/type/cluster/repository/provider/zookeeper-curator/src/main/java/org/apache/shardingsphere/mode/repository/cluster/zookeeper/lock/CuratorZookeeperDistributedLockProvider.java
index ccd4e2c7638..26afce0601f 100644
--- a/mode/type/cluster/repository/provider/zookeeper-curator/src/main/java/org/apache/shardingsphere/mode/repository/cluster/zookeeper/lock/CuratorZookeeperDistributedLockProvider.java
+++ b/mode/type/cluster/repository/provider/zookeeper-curator/src/main/java/org/apache/shardingsphere/mode/repository/cluster/zookeeper/lock/CuratorZookeeperDistributedLockProvider.java
@@ -23,9 +23,8 @@ import org.apache.curator.framework.recipes.locks.InterProcessMutex;
 import org.apache.shardingsphere.mode.repository.cluster.lock.DistributedLock;
 import org.apache.shardingsphere.mode.repository.cluster.lock.DistributedLockProvider;
 
-import java.util.LinkedHashMap;
+import java.util.HashMap;
 import java.util.Map;
-import java.util.Objects;
 
 /**
  * Curator ZooKeeper distributed lock provider.
@@ -33,14 +32,14 @@ import java.util.Objects;
 @RequiredArgsConstructor
 public final class CuratorZookeeperDistributedLockProvider implements DistributedLockProvider {
     
-    private final Map<String, CuratorZookeeperDistributedLock> locks = new LinkedHashMap<>();
+    private final Map<String, CuratorZookeeperDistributedLock> locks = new HashMap<>();
     
     private final CuratorFramework client;
     
     @Override
     public synchronized DistributedLock getDistributedLock(final String lockKey) {
         CuratorZookeeperDistributedLock result = locks.get(lockKey);
-        if (Objects.isNull(result)) {
+        if (null == result) {
             result = new CuratorZookeeperDistributedLock(new InterProcessMutex(client, lockKey));
             locks.put(lockKey, result);
         }