Class CachingAsyncTransaction

  • All Implemented Interfaces:
    AsyncDatastoreReaderWriter, AsyncTransaction, PrivateAsyncTransaction

    public class CachingAsyncTransaction
    extends CachingAsyncDatastoreReaderWriter
    implements PrivateAsyncTransaction

    A write-through memcache for Entity objects that works for both transactional and nontransactional sessions.

    • Caches negative results as well as positive results.
    • Queries do not affect the cache in any way.
    • Transactional reads bypass the cache, but successful transaction commits will update the cache.
    • This cache has near-transactional integrity. As long as DeadlineExceededException is not hit, cache should not go out of sync even under heavy contention.

    Note: Until Google adds a hook that lets us wrap native Future implementations, you muse install the AsyncCacheFilter to use this cache asynchronously. This is not necessary for synchronous use of CachingDatastoreService, but asynchronous operation requires an extra hook for the end of a request when fired-and-forgotten put()s and delete()s get processed. If you use this cache asynchronously, and you do not use the AsyncCacheFilter, your cache will go out of sync.

    Author:
    Jeff Schnitzer