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 <[email protected]> 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: [email protected] For additional commands, e-mail: [email protected]
