@@ -27,11 +27,10 @@ public abstract class AbstractRedisService implements RedisService {
27
27
private static final String ATLAS_REDIS_MASTER_NAME = "atlas.redis.master_name" ;
28
28
private static final String ATLAS_REDIS_LOCK_WAIT_TIME_MS = "atlas.redis.lock.wait_time.ms" ;
29
29
private static final String ATLAS_REDIS_LOCK_WATCHDOG_TIMEOUT_MS = "atlas.redis.lock.watchdog_timeout.ms" ;
30
- private static final String ATLAS_REDIS_LOCK_LEASE_TIME_MS = "atlas.redis.lock .lease_time.ms" ;
30
+ private static final String ATLAS_REDIS_LEASE_TIME_MS = "atlas.redis.lease_time.ms" ;
31
31
private static final int DEFAULT_REDIS_WAIT_TIME_MS = 15_000 ;
32
32
private static final int DEFAULT_REDIS_LOCK_WATCHDOG_TIMEOUT_MS = 600_000 ;
33
- // Added default lease time of 30 seconds
34
- private static final int DEFAULT_REDIS_LOCK_LEASE_TIME_MS = 30_000 ;
33
+ private static final int DEFAULT_REDIS_LEASE_TIME_MS = 60_000 ;
35
34
private static final String ATLAS_METASTORE_SERVICE = "atlas-metastore-service" ;
36
35
37
36
RedissonClient redisClient ;
@@ -48,7 +47,7 @@ public boolean acquireDistributedLock(String key) throws Exception {
48
47
boolean isLockAcquired ;
49
48
try {
50
49
RLock lock = redisClient .getFairLock (key );
51
- isLockAcquired = lock .tryLock (waitTimeInMS , leaseTimeInMS , TimeUnit .MILLISECONDS );
50
+ isLockAcquired = lock .tryLock (waitTimeInMS , leaseTimeInMS , TimeUnit .MILLISECONDS );
52
51
if (isLockAcquired ) {
53
52
keyLockMap .put (key , lock );
54
53
} else {
@@ -61,20 +60,20 @@ public boolean acquireDistributedLock(String key) throws Exception {
61
60
return isLockAcquired ;
62
61
}
63
62
63
+
64
64
@ Override
65
65
public void releaseDistributedLock (String key ) {
66
- if (!keyLockMap .containsKey (key )) {
67
- return ;
68
- }
66
+ if (!keyLockMap .containsKey (key )) {
67
+ return ;
68
+ }
69
69
try {
70
70
RLock lock = keyLockMap .get (key );
71
71
if (lock .isHeldByCurrentThread ()) {
72
72
lock .unlock ();
73
73
}
74
- keyLockMap . remove ( key );
74
+
75
75
} catch (Exception e ) {
76
76
getLogger ().error ("Failed to release distributed lock for {}" , key , e );
77
- keyLockMap .remove (key );
78
77
}
79
78
}
80
79
@@ -112,7 +111,7 @@ private Config initAtlasConfig() throws AtlasException {
112
111
keyLockMap = new ConcurrentHashMap <>();
113
112
atlasConfig = ApplicationProperties .get ();
114
113
waitTimeInMS = atlasConfig .getLong (ATLAS_REDIS_LOCK_WAIT_TIME_MS , DEFAULT_REDIS_WAIT_TIME_MS );
115
- leaseTimeInMS = atlasConfig .getLong (ATLAS_REDIS_LOCK_LEASE_TIME_MS , DEFAULT_REDIS_LOCK_LEASE_TIME_MS );
114
+ leaseTimeInMS = atlasConfig .getLong (ATLAS_REDIS_LEASE_TIME_MS , DEFAULT_REDIS_LEASE_TIME_MS );
116
115
watchdogTimeoutInMS = atlasConfig .getLong (ATLAS_REDIS_LOCK_WATCHDOG_TIMEOUT_MS , DEFAULT_REDIS_LOCK_WATCHDOG_TIMEOUT_MS );
117
116
Config redisConfig = new Config ();
118
117
redisConfig .setLockWatchdogTimeout (watchdogTimeoutInMS );
0 commit comments