THIS IS A TEST INSTANCE. ALL YOUR CHANGES WILL BE LOST!!!!
...
Internally, both implementations: persistent (RocksDB), and in-memory (TreeMap) support reverse/descending iteration:
Code Block |
---|
final RocksIterator iter = db.newIterator();
iter.seekToFirst();
iter.next();
final RocksIterator reverse = db.newIterator();
reverse.seekToLast();
reverse.prev();
final TreeMap<String, String> map = new TreeMap<>();
final NavigableSet<String> nav = map.navigableKeySet();
final NavigableSet<String> rev = map.descendingKeySet(); |
Reference issues
...
Code Block |
---|
public interface ReadOnlyWindowStore<K, V> { default WindowStoreIterator<V> backwardFetch(K key, Instant from, Instant to) throws IllegalArgumentException { throw new UnsupportedOperationException(); } default KeyValueIterator<Windowed<K>, V> backwardFetch(K from, K to, Instant fromTime, Instant toTime) throws IllegalArgumentException { throw new UnsupportedOperationException(); } default KeyValueIterator<Windowed<K>, V> backwardAll() { throw new UnsupportedOperationException(); } default KeyValueIterator<Windowed<K>, V> backwardFetchAll(Instant from, Instant to) throws IllegalArgumentException { throw new UnsupportedOperationException(); } } public interface ReadOnlySessionStore<K, AGG> { // Moving read functions from SessionStore to ReadOnlySessionStore default KeyValueIterator<Windowed<K>, AGG> findSessions(final K key, final long earliestSessionEndTime, final long latestSessionStartTime) { throw new UnsupportedOperationException("Moved from SessionStore"); } default KeyValueIterator<Windowed<K>, AGG> findSessions(final K keyFrom, final K keyTo, final long earliestSessionEndTime, final long latestSessionStartTime) { throw new UnsupportedOperationException("Moved from SessionStore"); } default AGG fetchSession(final K key, final long startTime, final long endTime) { throw new UnsupportedOperationException("Moved from SessionStore"); } // New default KeyValueIterator<Windowed<K>, AGG> backwardFindSessions(final K key, final long earliestSessionEndTime, final long latestSessionStartTime) { throw new UnsupportedOperationException(); } default KeyValueIterator<Windowed<K>, AGG> backwardFindSessions(final K keyFrom, final K keyTo, final long earliestSessionEndTime, final long latestSessionStartTime) { throw new UnsupportedOperationException(); } default KeyValueIterator<Windowed<K>, AGG> backwardFetch(final K key) { throw new UnsupportedOperationException(); } default KeyValueIterator<Windowed<K>, AGG> backwardFetch(final K from, final K to) { throw new UnsupportedOperationException(); } } |
...