code: CompletableFuture<Long> getBackpointerOffset(DirectSegmentAccess segment, long offset, Duration timeout) {
          Exceptions.checkNotClosed(this.closed.get(), this);
  
          // First check the index tail cache.
          long cachedBackpointer = this.cache.getBackpointer(segment.getSegmentId(), offset);
          if (cachedBackpointer >= 0) {
              return CompletableFuture.completedFuture(cachedBackpointer);
          }
  
          if (offset <= this.cache.getSegmentIndexOffset(segment.getSegmentId())) {
              // The sought source offset is already indexed; do not bother with waiting for recovery.
              return this.indexReader.getBackpointerOffset(segment, offset, timeout);
          } else {
              // Nothing in the tail cache; look it up in the index.
              return this.recoveryTracker.waitIfNeeded(segment, () -> this.indexReader.getBackpointerOffset(segment, offset, timeout));
          }
      }
docs: Looks up a Backpointer offset.
  
  @param segment A DirectSegmentAccess providing access to the Segment to search in.
  @param offset  The offset to find a backpointer from.
  @param timeout Timeout for the operation.
  @return A CompletableFuture that, when completed, will contain the backpointer offset, or -1 if no such pointer exists.