private SpillableSetImpl<V> getHelper(@NotNull K key) { SpillableSetImpl<V> spillableSet = cache.get(key); if (spillableSet == null) { long keyTime = -1; Pair<Integer, V> meta; if (timeExtractor != null) { keyTime = timeExtractor.getTime(key); } meta = map.get(key); if (meta == null) { return null; } Slice keyPrefix = keyValueSerdeManager.serializeDataKey(key, false); if (timeExtractor != null) { spillableSet = new SpillableSetImpl<>( keyPrefix.toByteArray(), store, valueSerde, new FixedTimeExtractor(keyTime)); } else { spillableSet = new SpillableSetImpl<>(bucket, keyPrefix.toByteArray(), store, valueSerde); } spillableSet.setSize(meta.getLeft()); spillableSet.setHead(meta.getRight()); spillableSet.setup(context); } cache.put(key, spillableSet); return spillableSet; }