Welcome! Log In Create A New Profile

Advanced

Merging equivalent cache keys?

May 18, 2013 08:52AM
We've got a route which is used to retrieve multiple objects in parallel. The client does a GET on /api/1/station/multi?id=123&id=456&id=789. We cache these in our nginx config:

location ~ /api/[^/]+/station/multi {
proxy_pass http://localhost:8000;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Server $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

proxy_cache api;
proxy_cache_use_stale updating;
}

The problem is, clients present the ids in random order. For example, one client might ask for id=1&id=2, and another ask for id=2&id=1. Both should return exactly the same response, but map to different cache keys. For two ids, it's not that bad, but many of the calls are for large numbers of ids and the combinatorics quickly spin out of control.

Is there any way to rewrite the keys in nginx to canonicalize them? Sorting all the ids in numerical order would do it.
SubjectAuthorPosted

Merging equivalent cache keys?

roysmith649May 18, 2013 08:52AM

Re: Merging equivalent cache keys?

António P. P. AlmeidaMay 18, 2013 09:46AM



Sorry, only registered users may post in this forum.

Click here to login

Online Users

Guests: 85
Record Number of Users: 7 on March 06, 2014
Record Number of Guests: 165 on April 21, 2014
Powered by nginx    Powered by FreeBSD    PHP Powered    Powered by Percona     ipv6 ready