You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@linkis.apache.org by al...@apache.org on 2022/07/22 12:31:59 UTC

[incubator-linkis] 01/06: Distributed lock sql optimization close 2503

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

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

commit 8265e118f6e9b23f4cf762325b234a3cb57b9182
Author: peacewong <wp...@gmail.com>
AuthorDate: Fri Jul 22 16:23:59 2022 +0800

    Distributed lock sql optimization close 2503
---
 .../java/org/apache/linkis/manager/dao/LockManagerMapper.java     | 6 ++++++
 .../manager/persistence/impl/DefaultLabelManagerPersistence.java  | 2 ++
 .../manager/persistence/impl/DefaultLockManagerPersistence.java   | 8 +++++++-
 3 files changed, 15 insertions(+), 1 deletion(-)

diff --git a/linkis-computation-governance/linkis-manager/linkis-manager-persistence/src/main/java/org/apache/linkis/manager/dao/LockManagerMapper.java b/linkis-computation-governance/linkis-manager/linkis-manager-persistence/src/main/java/org/apache/linkis/manager/dao/LockManagerMapper.java
index 0135ee2a5..14cca3028 100644
--- a/linkis-computation-governance/linkis-manager/linkis-manager-persistence/src/main/java/org/apache/linkis/manager/dao/LockManagerMapper.java
+++ b/linkis-computation-governance/linkis-manager/linkis-manager-persistence/src/main/java/org/apache/linkis/manager/dao/LockManagerMapper.java
@@ -33,6 +33,12 @@ public interface LockManagerMapper {
     @Delete("delete  from linkis_cg_manager_lock where lock_object = #{jsonObject}")
     void unlock(String jsonObject);
 
+    @Delete("delete  from linkis_cg_manager_lock where id = #{id}")
+    void unlock(int id);
+
+    @Select("select * from  linkis_cg_manager_lock where lock_object = #{jsonObject}")
+    List<PersistenceLock> getLockersByLockObject(String jsonObject);
+
     @Select("select * from  linkis_cg_manager_lock")
     @Results({
         @Result(property = "updateTime", column = "update_time"),
diff --git a/linkis-computation-governance/linkis-manager/linkis-manager-persistence/src/main/java/org/apache/linkis/manager/persistence/impl/DefaultLabelManagerPersistence.java b/linkis-computation-governance/linkis-manager/linkis-manager-persistence/src/main/java/org/apache/linkis/manager/persistence/impl/DefaultLabelManagerPersistence.java
index 191882171..2e4798099 100644
--- a/linkis-computation-governance/linkis-manager/linkis-manager-persistence/src/main/java/org/apache/linkis/manager/persistence/impl/DefaultLabelManagerPersistence.java
+++ b/linkis-computation-governance/linkis-manager/linkis-manager-persistence/src/main/java/org/apache/linkis/manager/persistence/impl/DefaultLabelManagerPersistence.java
@@ -139,6 +139,8 @@ public class DefaultLabelManagerPersistence implements LabelManagerPersistence {
 
     @Override
     public PersistenceLabel getLabel(int id) {
+        PersistenceLabel persistenceLabel =  labelManagerMapper.getLabel(id);
+        PersistenceUtils.setValue(persistenceLabel);
         return labelManagerMapper.getLabel(id);
     }
 
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 4ce0b9018..240055df6 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
@@ -70,7 +70,13 @@ public class DefaultLockManagerPersistence implements LockManagerPersistence {
 
     @Override
     public void unlock(PersistenceLock persistenceLock) {
-        lockManagerMapper.unlock(persistenceLock.getLockObject());
+        List<PersistenceLock> lockers =
+                lockManagerMapper.getLockersByLockObject(persistenceLock.getLockObject());
+        if (lockers != null && !lockers.isEmpty()) {
+            for (PersistenceLock lock : lockers) {
+                lockManagerMapper.unlock(lock.getId());
+            }
+        }
     }
 
     @Override


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