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