Add a 1-hour expiration to all Objectify memcache uses

This protects us from the edge case of potentially stale
memcache data due to a DeadlineExceededExeption, or possibly
from MemcacheServiceException. If memcache gets stale and
misses a write that went to Datastore, it will catch up in
at most one hour.
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=116174023
This commit is contained in:
Justine Tunney 2016-03-02 13:23:29 -08:00
parent 8a68acb84d
commit 689c673a7c
15 changed files with 40 additions and 17 deletions

View file

@ -68,6 +68,15 @@ public class Ofy {
private static final FormattingLogger logger = FormattingLogger.getLoggerForCallerClass();
/**
* Recommended memcache expiration time, which is one hour, specified in seconds.
* <p>
* This value should used as a cache expiration time for any entities annotated with an Objectify
* {@code @Cache} annotation, to put an upper bound on unlikely-but-possible divergence between
* memcache and datastore when a memcache write fails.
*/
public static final int RECOMMENDED_MEMCACHE_EXPIRATION = 3600;
/** Default clock for transactions that don't provide one. */
@NonFinalForTesting
static Clock clock = new SystemClock();