I’ve just finished watching the Google IO 2011 presentation on AppEngine backends (http://www.google.com/events/io/2011/sessions/app-engine-backends.html) which piqued my curiosity about using a backend instance for somewhat more reliable and configurable in-memory caching. It could be an interesting option as a third layer of cache, under in-app caching and memcache, or perhaps as a substitute for some cases where higher reliability is desirable.
Can anyone share any experience with this? Googling around doesn’t reveal much experimentation here. Does the latency of a URLfetch to retrieve a value from a backend’s in-memory dictionary render it less attractive, or is it not much worse than a memcache RPC?
I am thinking of whipping up some tests to see for myself, but if I can build on the shoulder of giants…thanks for any help 🙂
Latency between a backend and frontend instance is extremely low.
If you think about it, all App Engine RPC’s are fulfilled with “backend instances”. The backends for the Datastore and Memcache are just run by Google for your convenience.
Most requests, according to the App Engine team, stay within the same datacenter – meaning latency is inter-rack and much lower than outside URLFetches.
A simple request handler and thin API layer for coordinating the in memory storage is all you need – in projects where I’ve set up backend caching, it’s done a good job of fulfilling the need for more flexible in-memory storage – centralizing things definitely helps. The load balancing doesn’t hurt either 😉