How to share cache between multiple Google App Engine instances which each have multiple vCPUs?
up vote
0
down vote
favorite
SITUATION:
I am trying to implement caching for rate-limited third-party API requests my website needs to make.
Apparently, basic solutions such as:
https://www.npmjs.com/package/node-cache
won't even share cache between CPUs, much less between instances ?
Is that correct ?
And if it is, how can I share cache between instances so that I have one unified cache for my website across instances ?
After googling for a while, it seems Redis would be a solution. But from what I gathered, I would have to host Redis on it's own dedicated instance for the cache to be unique across my website VM instances ?
What if the instance hosting Redis is overloaded and also needs to be auto-scaled to multiple instances ?
QUESTION:
How can I implement shared cache between VM instances of my website ?
javascript node.js google-app-engine caching redis
add a comment |
up vote
0
down vote
favorite
SITUATION:
I am trying to implement caching for rate-limited third-party API requests my website needs to make.
Apparently, basic solutions such as:
https://www.npmjs.com/package/node-cache
won't even share cache between CPUs, much less between instances ?
Is that correct ?
And if it is, how can I share cache between instances so that I have one unified cache for my website across instances ?
After googling for a while, it seems Redis would be a solution. But from what I gathered, I would have to host Redis on it's own dedicated instance for the cache to be unique across my website VM instances ?
What if the instance hosting Redis is overloaded and also needs to be auto-scaled to multiple instances ?
QUESTION:
How can I implement shared cache between VM instances of my website ?
javascript node.js google-app-engine caching redis
add a comment |
up vote
0
down vote
favorite
up vote
0
down vote
favorite
SITUATION:
I am trying to implement caching for rate-limited third-party API requests my website needs to make.
Apparently, basic solutions such as:
https://www.npmjs.com/package/node-cache
won't even share cache between CPUs, much less between instances ?
Is that correct ?
And if it is, how can I share cache between instances so that I have one unified cache for my website across instances ?
After googling for a while, it seems Redis would be a solution. But from what I gathered, I would have to host Redis on it's own dedicated instance for the cache to be unique across my website VM instances ?
What if the instance hosting Redis is overloaded and also needs to be auto-scaled to multiple instances ?
QUESTION:
How can I implement shared cache between VM instances of my website ?
javascript node.js google-app-engine caching redis
SITUATION:
I am trying to implement caching for rate-limited third-party API requests my website needs to make.
Apparently, basic solutions such as:
https://www.npmjs.com/package/node-cache
won't even share cache between CPUs, much less between instances ?
Is that correct ?
And if it is, how can I share cache between instances so that I have one unified cache for my website across instances ?
After googling for a while, it seems Redis would be a solution. But from what I gathered, I would have to host Redis on it's own dedicated instance for the cache to be unique across my website VM instances ?
What if the instance hosting Redis is overloaded and also needs to be auto-scaled to multiple instances ?
QUESTION:
How can I implement shared cache between VM instances of my website ?
javascript node.js google-app-engine caching redis
javascript node.js google-app-engine caching redis
asked Nov 10 at 13:39
TheProgrammer
308117
308117
add a comment |
add a comment |
1 Answer
1
active
oldest
votes
up vote
1
down vote
accepted
You could add to your GAE application a 1st generation standard environment service which would:
- act as a caching service for your node.js (or other 2nd generation standard environment or flexible environment) service(s) and, under the hood, use itself the GAE memcache service, only available in those 1st gen standard environments.
- maybe even make itself those rate-limited 3rd party API calls, it will probably be simpler to properly coordinate the cached results that way
- be configured for auto scaling to address the scalability concern
add a comment |
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
up vote
1
down vote
accepted
You could add to your GAE application a 1st generation standard environment service which would:
- act as a caching service for your node.js (or other 2nd generation standard environment or flexible environment) service(s) and, under the hood, use itself the GAE memcache service, only available in those 1st gen standard environments.
- maybe even make itself those rate-limited 3rd party API calls, it will probably be simpler to properly coordinate the cached results that way
- be configured for auto scaling to address the scalability concern
add a comment |
up vote
1
down vote
accepted
You could add to your GAE application a 1st generation standard environment service which would:
- act as a caching service for your node.js (or other 2nd generation standard environment or flexible environment) service(s) and, under the hood, use itself the GAE memcache service, only available in those 1st gen standard environments.
- maybe even make itself those rate-limited 3rd party API calls, it will probably be simpler to properly coordinate the cached results that way
- be configured for auto scaling to address the scalability concern
add a comment |
up vote
1
down vote
accepted
up vote
1
down vote
accepted
You could add to your GAE application a 1st generation standard environment service which would:
- act as a caching service for your node.js (or other 2nd generation standard environment or flexible environment) service(s) and, under the hood, use itself the GAE memcache service, only available in those 1st gen standard environments.
- maybe even make itself those rate-limited 3rd party API calls, it will probably be simpler to properly coordinate the cached results that way
- be configured for auto scaling to address the scalability concern
You could add to your GAE application a 1st generation standard environment service which would:
- act as a caching service for your node.js (or other 2nd generation standard environment or flexible environment) service(s) and, under the hood, use itself the GAE memcache service, only available in those 1st gen standard environments.
- maybe even make itself those rate-limited 3rd party API calls, it will probably be simpler to properly coordinate the cached results that way
- be configured for auto scaling to address the scalability concern
answered Nov 10 at 21:29
Dan Cornilescu
26.3k113160
26.3k113160
add a comment |
add a comment |
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53239542%2fhow-to-share-cache-between-multiple-google-app-engine-instances-which-each-have%23new-answer', 'question_page');
}
);
Post as a guest
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password