You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@linkis.apache.org by ca...@apache.org on 2022/08/22 14:26:24 UTC

[incubator-linkis] branch dev-1.3.0 updated: Optimize the performance of the Manager's distributed locks close #2929 (#2930)

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

casion pushed a commit to branch dev-1.3.0
in repository https://gitbox.apache.org/repos/asf/incubator-linkis.git


The following commit(s) were added to refs/heads/dev-1.3.0 by this push:
     new 19efbe452 Optimize the performance of the Manager's distributed locks close #2929 (#2930)
19efbe452 is described below

commit 19efbe4529d08d7f0e528e9408ab63b02cdb8001
Author: peacewong <wp...@gmail.com>
AuthorDate: Mon Aug 22 22:26:18 2022 +0800

    Optimize the performance of the Manager's distributed locks close #2929 (#2930)
---
 .../persistence/impl/DefaultLockManagerPersistence.java      | 12 ++++++++++--
 1 file changed, 10 insertions(+), 2 deletions(-)

diff --git a/linkis-computation-governance/linkis-manager/linkis-manager-persistence/src/main/java/org/apache/linkis/manager/persistence/impl/DefaultLockManagerPersistence.java b/linkis-computation-governance/linkis-manager/linkis-manager-persistence/src/main/java/org/apache/linkis/manager/persistence/impl/DefaultLockManagerPersistence.java
index 82b0fc026..0236cd61a 100644
--- a/linkis-computation-governance/linkis-manager/linkis-manager-persistence/src/main/java/org/apache/linkis/manager/persistence/impl/DefaultLockManagerPersistence.java
+++ b/linkis-computation-governance/linkis-manager/linkis-manager-persistence/src/main/java/org/apache/linkis/manager/persistence/impl/DefaultLockManagerPersistence.java
@@ -59,8 +59,16 @@ public class DefaultLockManagerPersistence implements LockManagerPersistence {
 
   private boolean tryLock(PersistenceLock persistenceLock, Long timeOut) {
     try {
-      lockManagerMapper.lock(persistenceLock.getLockObject(), timeOut);
-      return true;
+      List<PersistenceLock> lockers =
+          lockManagerMapper.getLockersByLockObject(persistenceLock.getLockObject());
+      if (lockers == null || lockers.isEmpty()) {
+        lockManagerMapper.lock(persistenceLock.getLockObject(), timeOut);
+        return true;
+      } else {
+        logger.info(
+            "Failed to obtain lock {} ,Because locker is exists", persistenceLock.getLockObject());
+        return false;
+      }
     } catch (DataAccessException e) {
       logger.warn("Failed to obtain lock:" + persistenceLock.getLockObject());
       return false;


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@linkis.apache.org
For additional commands, e-mail: commits-help@linkis.apache.org