Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Will my App Engine Memcache limits scale with my app?

Will test results with 1000 users be similar to those I get with 10,000 users? Will a 10x increase in memcache usage change the results I get, if I also have 10x the instances running?

I've been using memcache for a lot of things, and it's been working great. Now, I want to put MORE in it, caching the results of several key queries. The queries are different for each user, and I have a thousand users a week right now.

I'm wary of this strategy. I could spend a while implementing this, and find that for my thousand users it works great. But, say my site grows in popularity, and suddenly I have 10,000 users. Will I see a decrease in memcache performance?

I'm worried about a very drastic decrease. I could imagine that there is some invisible limit, like 1GB of memcache data I'm allowed to use. Suddenly, with a 10x increase in usage, I could be way past that limit and see a large amount of thrashing or something.

This seems very hard for a customer to test - I'd love a comment from an App Engine insider.

Thanks for any insight!

like image 666
Riley Lark Avatar asked Nov 05 '22 04:11

Riley Lark


1 Answers

The internals of Memcache implementation on GAE are only known to Google, so asking such questions on a general public site is unlikelly to get you definite answers.

But let me speculate: if you take a look at the new Python NDB API you'll see that by default ALL datasore gets are cached (partially) in memcache. So if Google is doing it by default on a large scale, then I guess they made sure memcache is scalable.

EDIT:

Additionally, GAE sessions also use Memcache to cache session data by default, meaning all apps that use sessions (= most Web apps) also use Memcache on large scale.

like image 185
Peter Knego Avatar answered Nov 11 '22 07:11

Peter Knego