public List<byte[]> get(RowData key) throws IOException {
    final byte[] keyBytes = serializeKey(key);
    ByteArrayWrapper keyWrap = wrap(keyBytes);
    List<byte[]> result = guavaCache.getIfPresent(keyWrap);
    if (result == null) {
      try (RocksDBBackend.ValueIterator iterator =
          (RocksDBBackend.ValueIterator) rocksDB.values(columnFamilyName, keyBytes)) {
        result = Lists.newArrayList();
        while (iterator.hasNext()) {
          byte[] targetKeyBytes = iterator.key();
          if (isPrefixKey(targetKeyBytes, keyBytes)) {
            byte[] value =
                Arrays.copyOfRange(targetKeyBytes, keyBytes.length, targetKeyBytes.length);
            result.add(value);
          }
          iterator.next();
        }
        if (!result.isEmpty()) {
          guavaCache.put(keyWrap, result);
        }
      } catch (Exception e) {
        throw new RuntimeException(e);
      }
    }
    return result;
  }
Retrieve the elements of the key.

<p>Fetch the Collection from guava cache, if not present, fetch from rocksDB continuously, via
prefix key scanning the rocksDB; if present, just return the result.

@return not null, but may be empty.
amoro-format-mixed/amoro-mixed-flink/amoro-mixed-flink-common/src/main/java/org/apache/amoro/flink/lookup/RocksDBSetState.java