Package com.googlecode.objectify.cache
Class CachingAsyncDatastoreReaderWriter
- java.lang.Object
-
- com.googlecode.objectify.cache.CachingAsyncDatastoreReaderWriter
-
- All Implemented Interfaces:
AsyncDatastoreReaderWriter
- Direct Known Subclasses:
CachingAsyncDatastore
,CachingAsyncTransaction
public abstract class CachingAsyncDatastoreReaderWriter extends Object implements AsyncDatastoreReaderWriter
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 ofCachingDatastoreService
, 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 theAsyncCacheFilter
, your cache will go out of sync.- Author:
- Jeff Schnitzer
-
-
Constructor Summary
Constructors Constructor Description CachingAsyncDatastoreReaderWriter()
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description Future<Void>
delete(Iterable<com.google.cloud.datastore.Key> keys)
protected abstract void
empty(Iterable<com.google.cloud.datastore.Key> keys)
Future<List<com.google.cloud.datastore.Key>>
put(Iterable<? extends com.google.cloud.datastore.FullEntity<?>> entities)
<T> com.google.cloud.datastore.QueryResults<T>
run(com.google.cloud.datastore.Query<T> query)
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface com.googlecode.objectify.impl.AsyncDatastoreReaderWriter
get, get, put
-
-
-
-
Method Detail
-
empty
protected abstract void empty(Iterable<com.google.cloud.datastore.Key> keys)
-
delete
public Future<Void> delete(Iterable<com.google.cloud.datastore.Key> keys)
- Specified by:
delete
in interfaceAsyncDatastoreReaderWriter
-
run
public <T> com.google.cloud.datastore.QueryResults<T> run(com.google.cloud.datastore.Query<T> query)
- Specified by:
run
in interfaceAsyncDatastoreReaderWriter
-
put
public Future<List<com.google.cloud.datastore.Key>> put(Iterable<? extends com.google.cloud.datastore.FullEntity<?>> entities)
- Specified by:
put
in interfaceAsyncDatastoreReaderWriter
-
-