Most read-heavy apps can benefit significantly from memcache. If
you're using the low-level api, try this:
http://code.google.com/p/objectify-appengine/wiki/MemcacheStandalone
Jeff
> --
> You received this message because you are subscribed to the Google Groups "Google App Engine" group.
> To post to this group, send email to google-a...@googlegroups.com.
> To unsubscribe from this group, send email to google-appengi...@googlegroups.com.
> For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en.
>
Robert
I'm not sure what you mean here. The cache covers get(), put(), and
delete() operations. Queries do not affect the cache at all.
However, you can convert queries into keys-only queries followed by
batch get()s; this will cost small datastore operations for cache hits
rather than full read operations. Objectify4 will actually do this
for you.
> Does it work flawlessly in the production? The last thing I want to
> see is our thousands of customers coming back and complaining.
There have not been any complaints for the current cache code (3.1+),
and it is fairly widely used. Older versions of the cache code (3.0
and prior) had synchronization issues, but for 3.1 I rewrote it with
some help from Ari and Alfred (Google). It should be transactionally
safe - even under heavy contention - as long as you don't hit
DeadlineExceededExceptions.
Jeff
The cache is write-through; all put()s go straight to the datastore
and then expire the cache content. The cache is refreshed on a
subsequent get().
> I will use 3.1 - I liked the Global cache very much.
>
> Twig kept the syntax simpler but I do not like the lack of caching
> which will affect the high-volume apps.
If you're just using the low-level api, the CachingDatstoreService in
the Objectify 3.1 jar is the same as what's in trunk (Objectify4). If
you're actually thinking of using Objectify, grab trunk - Objectify4
has a more Twig-ish syntax and has folded in many of Twig's features
(with John Patterson's design help).
Jeff
Jeff
Jeff