Skip to content

Commit 1294a56

Browse files
poorbarcodelhotari
authored andcommitted
[fix][ml]Revert a behavior change of releasing idle offloaded ledger handle: only release idle BlobStoreBackedReadHandle (apache#24384)
(cherry picked from commit e0d7faa)
1 parent 9b60bd4 commit 1294a56

File tree

2 files changed

+3
-2
lines changed

2 files changed

+3
-2
lines changed

managed-ledger/src/main/java/org/apache/bookkeeper/mledger/impl/ManagedLedgerImpl.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2660,7 +2660,8 @@ synchronized List<Long> internalEvictOffloadedLedgers() {
26602660
ReadHandle readHandle = ledger.join();
26612661
if (readHandle instanceof OffloadedLedgerHandle offloadedLedgerHandle) {
26622662
int pendingRead = offloadedLedgerHandle.getPendingRead();
2663-
if (pendingRead == 0) {
2663+
long lastAccessTimestamp = offloadedLedgerHandle.lastAccessTimestamp();
2664+
if (lastAccessTimestamp >= 0 && pendingRead == 0) {
26642665
long delta = now - offloadedLedgerHandle.lastAccessTimestamp();
26652666
if (delta >= inactiveOffloadedLedgerEvictionTimeMs) {
26662667
log.info("[{}] Offloaded ledger {} can be released ({} ms elapsed since last access)",

tiered-storage/jcloud/src/main/java/org/apache/bookkeeper/mledger/offload/jcloud/impl/BlobStoreBackedReadHandleImpl.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -135,8 +135,8 @@ public CompletableFuture<LedgerEntries> readAsync(long firstEntry, long lastEntr
135135
// is better.
136136
PENDING_READ_UPDATER.incrementAndGet(this);
137137
promise.whenComplete((__, ex) -> {
138-
PENDING_READ_UPDATER.decrementAndGet(BlobStoreBackedReadHandleImpl.this);
139138
lastAccessTimestamp = System.currentTimeMillis();
139+
PENDING_READ_UPDATER.decrementAndGet(BlobStoreBackedReadHandleImpl.this);
140140
});
141141
executor.execute(() -> {
142142
if (state == State.Closed) {

0 commit comments

Comments
 (0)