Interface ReadOnlySessionStore<K,​AGG>

  • Type Parameters:
    K - the key type
    AGG - the aggregated value type
    All Known Subinterfaces:
    SessionStore<K,​AGG>

    public interface ReadOnlySessionStore<K,​AGG>
    A session store that only supports read operations. Implementations should be thread-safe as concurrent reads and writes are expected.
    • Method Summary

      All Methods Instance Methods Abstract Methods Default Methods 
      Modifier and Type Method Description
      default KeyValueIterator<Windowed<K>,​AGG> backwardFetch​(K key)
      Retrieve all aggregated sessions for the provided key.
      default KeyValueIterator<Windowed<K>,​AGG> backwardFetch​(K from, K to)
      Retrieve all aggregated sessions for the given range of keys.
      default KeyValueIterator<Windowed<K>,​AGG> backwardFindSessions​(K key, long earliestSessionEndTime, long latestSessionStartTime)
      Fetch any sessions with the matching key and the sessions end is ≥ earliestSessionEndTime and the sessions start is ≤ latestSessionStartTime iterating from latest to earliest.
      default KeyValueIterator<Windowed<K>,​AGG> backwardFindSessions​(K keyFrom, K keyTo, long earliestSessionEndTime, long latestSessionStartTime)
      Fetch any sessions in the given range of keys and the sessions end is ≥ earliestSessionEndTime and the sessions start is ≤ latestSessionStartTime iterating from latest to earliest.
      KeyValueIterator<Windowed<K>,​AGG> fetch​(K key)
      Retrieve all aggregated sessions for the provided key.
      KeyValueIterator<Windowed<K>,​AGG> fetch​(K from, K to)
      Retrieve all aggregated sessions for the given range of keys.
      default AGG fetchSession​(K key, long startTime, long endTime)
      Get the value of key from a single session.
      default KeyValueIterator<Windowed<K>,​AGG> findSessions​(K key, long earliestSessionEndTime, long latestSessionStartTime)
      Fetch any sessions with the matching key and the sessions end is ≥ earliestSessionEndTime and the sessions start is ≤ latestSessionStartTime iterating from earliest to latest.
      default KeyValueIterator<Windowed<K>,​AGG> findSessions​(K keyFrom, K keyTo, long earliestSessionEndTime, long latestSessionStartTime)
      Fetch any sessions in the given range of keys and the sessions end is ≥ earliestSessionEndTime and the sessions start is ≤ latestSessionStartTime iterating from earliest to latest.
    • Method Detail

      • findSessions

        default KeyValueIterator<Windowed<K>,​AGG> findSessions​(K key,
                                                                     long earliestSessionEndTime,
                                                                     long latestSessionStartTime)
        Fetch any sessions with the matching key and the sessions end is ≥ earliestSessionEndTime and the sessions start is ≤ latestSessionStartTime iterating from earliest to latest.

        This iterator must be closed after use.

        Parameters:
        key - the key to return sessions for
        earliestSessionEndTime - the end timestamp of the earliest session to search for, where iteration starts.
        latestSessionStartTime - the end timestamp of the latest session to search for, where iteration ends.
        Returns:
        iterator of sessions with the matching key and aggregated values, from earliest to latest session time.
        Throws:
        NullPointerException - If null is used for key.
      • backwardFindSessions

        default KeyValueIterator<Windowed<K>,​AGG> backwardFindSessions​(K key,
                                                                             long earliestSessionEndTime,
                                                                             long latestSessionStartTime)
        Fetch any sessions with the matching key and the sessions end is ≥ earliestSessionEndTime and the sessions start is ≤ latestSessionStartTime iterating from latest to earliest.

        This iterator must be closed after use.

        Parameters:
        key - the key to return sessions for
        earliestSessionEndTime - the end timestamp of the earliest session to search for, where iteration ends.
        latestSessionStartTime - the end timestamp of the latest session to search for, where iteration starts.
        Returns:
        backward iterator of sessions with the matching key and aggregated values, from latest to earliest session time.
        Throws:
        NullPointerException - If null is used for key.
      • findSessions

        default KeyValueIterator<Windowed<K>,​AGG> findSessions​(K keyFrom,
                                                                     K keyTo,
                                                                     long earliestSessionEndTime,
                                                                     long latestSessionStartTime)
        Fetch any sessions in the given range of keys and the sessions end is ≥ earliestSessionEndTime and the sessions start is ≤ latestSessionStartTime iterating from earliest to latest.

        This iterator must be closed after use.

        Parameters:
        keyFrom - The first key that could be in the range
        keyTo - The last key that could be in the range
        earliestSessionEndTime - the end timestamp of the earliest session to search for, where iteration starts.
        latestSessionStartTime - the end timestamp of the latest session to search for, where iteration ends.
        Returns:
        iterator of sessions with the matching keys and aggregated values, from earliest to latest session time.
        Throws:
        NullPointerException - If null is used for any key.
      • backwardFindSessions

        default KeyValueIterator<Windowed<K>,​AGG> backwardFindSessions​(K keyFrom,
                                                                             K keyTo,
                                                                             long earliestSessionEndTime,
                                                                             long latestSessionStartTime)
        Fetch any sessions in the given range of keys and the sessions end is ≥ earliestSessionEndTime and the sessions start is ≤ latestSessionStartTime iterating from latest to earliest.

        This iterator must be closed after use.

        Parameters:
        keyFrom - The first key that could be in the range
        keyTo - The last key that could be in the range
        earliestSessionEndTime - the end timestamp of the earliest session to search for, where iteration ends.
        latestSessionStartTime - the end timestamp of the latest session to search for, where iteration starts.
        Returns:
        backward iterator of sessions with the matching keys and aggregated values, from latest to earliest session time.
        Throws:
        NullPointerException - If null is used for any key.
      • fetchSession

        default AGG fetchSession​(K key,
                                 long startTime,
                                 long endTime)
        Get the value of key from a single session.
        Parameters:
        key - the key to fetch
        startTime - start timestamp of the session
        endTime - end timestamp of the session
        Returns:
        The value or null if no session associated with the key can be found
        Throws:
        NullPointerException - If null is used for any key.
      • fetch

        KeyValueIterator<Windowed<K>,​AGG> fetch​(K key)
        Retrieve all aggregated sessions for the provided key. This iterator must be closed after use.

        For each key, the iterator guarantees ordering of sessions, starting from the oldest/earliest available session to the newest/latest session.

        Parameters:
        key - record key to find aggregated session values for
        Returns:
        KeyValueIterator containing all sessions for the provided key, from oldest to newest session.
        Throws:
        NullPointerException - If null is used for key.
      • backwardFetch

        default KeyValueIterator<Windowed<K>,​AGG> backwardFetch​(K key)
        Retrieve all aggregated sessions for the provided key. This iterator must be closed after use.

        For each key, the iterator guarantees ordering of sessions, starting from the newest/latest available session to the oldest/earliest session.

        Parameters:
        key - record key to find aggregated session values for
        Returns:
        backward KeyValueIterator containing all sessions for the provided key, from newest to oldest session.
        Throws:
        NullPointerException - If null is used for key.
      • fetch

        KeyValueIterator<Windowed<K>,​AGG> fetch​(K from,
                                                      K to)
        Retrieve all aggregated sessions for the given range of keys. This iterator must be closed after use.

        For each key, the iterator guarantees ordering of sessions, starting from the oldest/earliest available session to the newest/latest session.

        Parameters:
        from - first key in the range to find aggregated session values for
        to - last key in the range to find aggregated session values for
        Returns:
        KeyValueIterator containing all sessions for the provided key, from oldest to newest session.
        Throws:
        NullPointerException - If null is used for any of the keys.
      • backwardFetch

        default KeyValueIterator<Windowed<K>,​AGG> backwardFetch​(K from,
                                                                      K to)
        Retrieve all aggregated sessions for the given range of keys. This iterator must be closed after use.

        For each key, the iterator guarantees ordering of sessions, starting from the newest/latest available session to the oldest/earliest session.

        Parameters:
        from - first key in the range to find aggregated session values for
        to - last key in the range to find aggregated session values for
        Returns:
        backward KeyValueIterator containing all sessions for the provided key, from newest to oldest session.
        Throws:
        NullPointerException - If null is used for any of the keys.