Hello,
I'd like to ask if anyone has some experience to share regarding
accelerating Couch with Varnish. I think lots of us are doing it, but
can't find too much info around.
Originally, I thought it would be possible to use ETags with some
proper Varnish configuration (eg. "accumulate" concurrent requests and
pass only one to the backend, etc), but that seems not to be possible,
since Varnish does not pass ETags to the backend [http://lists.varnish-cache.org/pipermail/varnish-misc/2010-November/004997.html
].
As I understand it now, the only way how to cache Couch's response
would be with time-based caching, and either using the cached response
until it auto-expires, or expire the cached response via PURGE commands.
Of course, it would be possible and technically trivial to send purge
requests via the _changes feed or via the "update_notification"
mechanism. As I see it, the tricky part would be to know which objects
to purge, based on individual document changes. Because not only
single documents, but also aggregated view results or fulltext queries
would get cached. Of course, "there are two hard thing in computer
science ...".
Has anyone put any thoughts/work into this?
Thanks,
Karel