| Index: filter/dscache/context.go | 
| diff --git a/filter/dscache/context.go b/filter/dscache/context.go | 
| index a9f10ba1de6fbf0955edf5800ce4f3842925c0e6..87477802d1b16865193911103de8c36ce683e4e8 100644 | 
| --- a/filter/dscache/context.go | 
| +++ b/filter/dscache/context.go | 
| @@ -18,6 +18,10 @@ var dsTxnCacheKey key | 
|  | 
| // FilterRDS installs a caching RawDatastore filter in the context. | 
| // | 
| +// It does nothing if IsGloballyEnabled returns false. That way it is possible | 
| +// to disable the cache in runtime (e.g. in case memcache service is having | 
| +// issues). | 
| +// | 
| // shardsForKey is a user-controllable function which calculates the number of | 
| // shards to use for a certain datastore key. The provided key will always be | 
| // valid and complete. | 
| @@ -32,7 +36,14 @@ func FilterRDS(c context.Context, shardsForKey func(*ds.Key) int) context.Contex | 
| if !IsGloballyEnabled(c) { | 
| return c | 
| } | 
| +	return AlwaysFilterRDS(c, shardsForKey) | 
| +} | 
|  | 
| +// AlwaysFilterRDS installs a caching RawDatastore filter in the context. | 
| +// | 
| +// Unlike FilterRDS it doesn't check GlobalConfig via IsGloballyEnabled call, | 
| +// assuming caller already knows whether filter should be applied or not. | 
| +func AlwaysFilterRDS(c context.Context, shardsForKey func(*ds.Key) int) context.Context { | 
| return ds.AddRawFilters(c, func(c context.Context, ds ds.RawInterface) ds.RawInterface { | 
| i := info.Get(c) | 
|  | 
|  |