@Override
  public V get(@NotNull K key) throws IOException {
    int keyHash = keyEquality.getHashCode(key);
    int adjustedHash = HashUtils.adjustHash(keyHash);

    Ref<Entry<K, V>> resultRef = new Ref<>();
    keyHashToIdMap.lookup(adjustedHash, recordId -> {
      int logRecordId = convertStoredIdToLogId(recordId);
      Entry<K, V> entry = readEntryIfKeyMatch(logRecordId, key);
      if (entry != null) {
        resultRef.set(entry);
        return true;
      }
      else {
        return false;
      }
    });

    Entry<K, V> entry = resultRef.get();
    if (entry == null) {
      return null;
    }
    else {
      return entry.value();
    }
  }
@Override
  public V get(@NotNull K key)