[
https://issues.apache.org/jira/browse/SOLR-127?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12535051
]
Hoss Man commented on SOLR-127:
-------------------------------
Okay, i've been learning a little more about HTTP Caching, and i looked over
the latest patch. a few comments...
1) do we really want this in all cases?...
+ resp.setHeader("Cache-Control",
+ "max-age=0, must-revalidate");
...that seems a little harsh. if we're going to do that it seems like it
should be optional. (NOTE: it's not backwards compatible if people already
have caches in front of Solr right now)
2) I've been reading about etags ... we need to make sure we don't
inadvertently output an etag with "w/" in front (indicating it's a week entity
tag) ... we should future proof against changes to IndexReader.getVersion() by
putting a prefix on the version when making an etag. also: should we obfuscate
the version (ie: hash it) so as not to risk disclosing info to people who
shouldn't have it?
3) all etags are the same until the reader is reopened ... shouldn't they also
hash on the URL? (is there a downside to multiple URLs having the same etag?)
4) are these semantics right? send PRECON_FAIL when "If-None-Match" tag matches
and request is not GET or HEAD? (what about a POSTed query?) ....
+ if(ifNoneMatchList.size()>0 && isMatchingEtag(ifNoneMatchList,etag)) {
+ if(isGETRequest || isHEADRequest) {
+ sendNotModified(resp);
+ } else {
+ sendPreconditionFailed(resp);
+ }
+ return true;
5) using SolrIndexSearcher.openTime() as last-modified for query requests makes
sense ... put what about updates? since RequestHandlers don't declare what
they are, should we use "now" for POSTs and openTime for GET/HEAD ?
> Make Solr more friendly to external HTTP caches
> -----------------------------------------------
>
> Key: SOLR-127
> URL: https://issues.apache.org/jira/browse/SOLR-127
> Project: Solr
> Issue Type: Wish
> Reporter: Hoss Man
> Fix For: 1.3
>
> Attachments: HTTPCaching.patch, HTTPCaching.patch, HTTPCaching.patch,
> HTTPCaching.patch, HTTPCaching.patch, HTTPCaching.patch, HTTPCaching.patch,
> HTTPCaching.patch, HTTPCaching.patch, HTTPCaching.patch
>
>
> an offhand comment I saw recently reminded me of something that really bugged
> me about the serach solution i used *before* Solr -- it didn't play nicely
> with HTTP caches that might be sitting in front of it.
> at the moment, Solr doesn't put in particularly usefull info in the HTTP
> Response headers to aid in caching (ie: Last-Modified), responds to all HEAD
> requests with a 400, and doesn't do anything special with If-Modified-Since.
> t the very least, we can set a Last-Modified based on when the current
> IndexReder was open (if not the Date on the IndexReader) and use the same
> info to determing how to respond to If-Modified-Since requests.
> (for the record, i think the reason this hasn't occured to me in the 2+ years
> i've been using Solr, is because with the internal caching, i've yet to need
> to put a proxy cache in front of Solr)
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.