Skip to content

Commit ebc6679

Browse files
committed
remove lock in refreshTableLocationByTabletId
1 parent bec5329 commit ebc6679

File tree

3 files changed

+221
-207
lines changed

3 files changed

+221
-207
lines changed

src/main/java/com/alipay/oceanbase/rpc/ObTableClient.java

Lines changed: 5 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -1336,33 +1336,14 @@ public TableEntry refreshTableLocationByTabletId(TableEntry tableEntry, String t
13361336
}
13371337
long lastRefreshTime = tableEntry.getPartitionEntry().getPartitionInfo(tabletId).getLastUpdateTime();
13381338
long currentTime = System.currentTimeMillis();
1339-
if (currentTime - lastRefreshTime < tableEntryRefreshLockTimeout) {
1339+
if (currentTime - lastRefreshTime < 1000) {
13401340
return tableEntry;
13411341
}
1342-
1343-
Lock lock = tableEntry.refreshLockMap.computeIfAbsent(tabletId, k -> new ReentrantLock());
1344-
1345-
if (!lock.tryLock(tableEntryRefreshLockTimeout, TimeUnit.MILLISECONDS)) {
1346-
String errMsg = String.format("Try to lock table-entry refreshing timeout. DataSource: %s, TableName: %s, Timeout: %d.",
1347-
dataSourceName, tableName, tableEntryRefreshLockTimeout);
1348-
RUNTIME.error(errMsg);
1349-
throw new ObTableEntryRefreshException(errMsg);
1350-
}
1351-
1352-
try {
1353-
lastRefreshTime = tableEntry.getPartitionEntry().getPartitionInfo(tabletId).getLastUpdateTime();
1354-
currentTime = System.currentTimeMillis();
1355-
if (currentTime - lastRefreshTime < tableEntryRefreshLockTimeout) {
1356-
return tableEntry;
1357-
}
1358-
tableEntry = loadTableEntryLocationWithPriority(serverRoster, tableEntryKey, tableEntry, tabletId,
1359-
tableEntryAcquireConnectTimeout, tableEntryAcquireSocketTimeout,
1360-
serverAddressPriorityTimeout, serverAddressCachingTimeout, sysUA);
1342+
tableEntry = loadTableEntryLocationWithPriority(serverRoster, tableEntryKey, tableEntry, tabletId,
1343+
tableEntryAcquireConnectTimeout, tableEntryAcquireSocketTimeout,
1344+
serverAddressPriorityTimeout, serverAddressCachingTimeout, sysUA);
13611345

1362-
tableEntry.prepareForWeakRead(serverRoster.getServerLdcLocation());
1363-
} finally {
1364-
lock.unlock();
1365-
}
1346+
tableEntry.prepareForWeakRead(serverRoster.getServerLdcLocation());
13661347

13671348
} catch (ObTableNotExistException | ObTableServerCacheExpiredException e) {
13681349
RUNTIME.error("RefreshTableEntry encountered an exception", e);

0 commit comments

Comments
 (0)