private Pair<K, ItemsImpl> readEntry(long logChunkId) throws IOException {
    ChunkedAppendOnlyLog.LogChunk chunk = keyValuesLog.read(logChunkId);
    ByteBuffer chunkBuffer = chunk.read();
    int header = readHeader(chunkBuffer);
    int keyRecordSize = keySize(header);
    boolean valueIsAbsent = isValueAbsent(header);

    ByteBuffer keyRecordSlice = chunkBuffer.slice(Integer.BYTES, keyRecordSize)
      .order(chunkBuffer.order());
    K key = keyDescriptor.read(keyRecordSlice);

    if (valueIsAbsent) {
      return Pair.pair(key, null);
    }

    return Pair.pair(key, new ItemsImpl(chunk));
  }
private Pair<K, ItemsImpl> readEntry(long logChunkId)