in hbase-oss/src/main/java/org/apache/hadoop/hbase/oss/HBaseObjectStoreSemantics.java [475:499]
public boolean rename(Path src, Path dst) throws IOException {
long startTime = System.currentTimeMillis();
long lockAcquiredTime = startTime;
long doneTime = startTime;
// Future to pass into the AutoLock so it knows if it should clean up.
final CompletableFuture<Boolean> renameResult = new CompletableFuture<>();
try (AutoLock l = sync.lockRename(src, dst, renameResult)) {
lockAcquiredTime = System.currentTimeMillis();
metrics.updateAcquireRenameLockHisto(lockAcquiredTime- startTime);
// Defaulting to false in the case that fs.rename throws an exception
boolean result = false;
try {
result = fs.rename(src, dst);
return result;
} finally {
renameResult.complete(result);
doneTime = System.currentTimeMillis();
metrics.updateRenameFsOperationHisto(doneTime - lockAcquiredTime);
}
}
finally {
long releasedLocksTime = System.currentTimeMillis();
metrics.updateReleaseRenameLockHisto(releasedLocksTime - doneTime);
}
}