Class CachingSessionDataStore

  • All Implemented Interfaces:
    SessionDataMap, SessionDataStore, Container, Destroyable, Dumpable, Dumpable.DumpableContainer, LifeCycle

    public class CachingSessionDataStore
    extends ContainerLifeCycle
    implements SessionDataStore
    CachingSessionDataStore A SessionDataStore is a mechanism for (persistently) storing data associated with sessions. This implementation delegates to a pluggable SessionDataStore for actually storing the session data. It also uses a pluggable cache implementation in front of the delegate SessionDataStore to improve performance: accessing most persistent store technology can be expensive time-wise, so introducing a fronting cache can increase performance. The cache implementation can either be a local cache, a remote cache, or a clustered cache. The implementation here will try to read first from the cache and fallback to reading from the SessionDataStore if the session key is not found. On writes, the session data is written first to the SessionDataStore, and then to the cache. On deletes, the data is deleted first from the SessionDataStore, and then from the cache. There is no transaction manager ensuring atomic operations, so it is possible that failures can result in cache inconsistency.
    • Constructor Detail

      • CachingSessionDataStore

        public CachingSessionDataStore​(SessionDataMap cache,
                                       SessionDataStore store)
        Parameters:
        cache - the front cache to use
        store - the actual store for the the session data