[
https://issues.apache.org/jira/browse/SOLR-127?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Hoss Man updated SOLR-127:
--------------------------
Attachment: HTTPCaching.patch
(NOTE: in my last update where I listed the new options, I forgot about the
"never304" option .. obviously that's still important).
Before I made any changes, I attempted to merge the previous HTTPCaching.patch
with CacheUnitTest.patch, and ran into test failure in NoCacheHeaderTest ...
looking at it, i'm not sure what it's expectation was/is (seemed to expect a
Cache-Control header even when no caching options were specified in the config)
so i just left it alone for now.
I have a new unified patch (code+tests) that does everything we talked about,
but there's still some thing that need resolved...
* the test classes still need some work, both in terms of the current failure
mentioned above, and to cover more permutations of options. When we're all
said and done, we'll probably want at least 3 separate sets of test/configs:
*# default, no <httpCaching> section in config at all ... should generate
Last-Mod and Etag headers and do validation, stoping/starting port should make
Last-Mod change but not ETag.
*# never304="false", lastModFrom="dirLastMod" ... should generate Last-Mod and
Etag headers and do validation, no headers should change if we stop/start the
port.
*# never304="true" ... no Last-Mod of ETag headers, no 304 even if we send
crazy old If-Modified-Since
* there's also probably some refactoring that can still be done in the tests (i
noticed some duplicate code that can be moved up into the Base class)
* it occurred to me while adding the etagSeed that right now the etag caching
is a singleton, we'll need to make this core-specific (using a WeakHashMap i
guess? i'm not fond of that approach, but these are really tiny pieces of info
we are caching)
* calcLastModified and calcEtag currently assume they can get
requestDispatcher/httpCaching config options from SolrConfig ... but this need
to be reconciled with SOLR-350 where there is a plan to move all
requestDispatcher configs to multicore.xml (but i've pointed out in that issue
i'm not sure if that is necessary or makes sense.)
Thomas: Can you take a look at the current test failure and help me understand
why it's expecting a Cache-Control header? (if you want to take a stab at
expanding the test case permutations too that would be cool)
And of course, Thomas (and everyone else), please try out the code changes in
the patch and the comments in the example solrconfig.xml and let me know if
this looks good.
> 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
> Assignee: Hoss Man
> Fix For: 1.3
>
> Attachments: CacheUnitTest.patch, HTTPCaching.patch,
> HTTPCaching.patch, HTTPCaching.patch, HTTPCaching.patch, HTTPCaching.patch,
> HTTPCaching.patch, HTTPCaching.patch, HTTPCaching.patch, HTTPCaching.patch,
> HTTPCaching.patch, HTTPCaching.patch, HTTPCaching.patch, HTTPCaching.patch,
> 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.