[ 
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.

Reply via email to