[ https://issues.apache.org/jira/browse/SOLR-127?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12579953#action_12579953 ]
Hoss Man commented on SOLR-127: ------------------------------- For the record: most of this discussion should have happened on the solr-dev list, not in the issue comments ... but i would like to address some points, so I'll do it here since this is where the discussion is. 1) It's true, there is no way to configure caching on a per request handler basis -- if you look at the history of the issue we looked into that but because of the necessary API changes we scaled back the scope of the patch -- it can be done, it just needs more thought into how to do it and people interested in working on it. 2) there is no doubt in my mind that having the cache awareness code on by default is the right approach moving forward. These options don't cause Solr do do any caching, or to force any external caches to cache the pages -- they only result in Solr behaving correctly according to the HTTP spec sections relating to cache headers: * *if* a request is made to Solr via an HTTP cache that cache will receive headers it can use to decide if/how-long to cache the response * *if* Solr receives a request with cache validation information then it responds with a 304 if you don't want that behavior then either don't access Solr via a cache, or explicitly set the <httpCaching never304="true"> option; but the default behavior for people who are upgrading from 1.2 should be for Solr to emit Correct headers and to respect validation requests. Requiring Solr users to explicitly turn on an option to get Solr to emit correct Caching headers would be like requiring them to explicitly set an option to get well formed XML instead of invalid XML -- the default should be the one that behaves the most correctly. I admit however: this is a notable enough change that it should be mentioned in the "Upgrading from 1.2" section of CHANGES.txt -- I will add that. 3) if other pending patches attached to other issues have poor behavior as a result of the caching code, the appropriate place to discuss that is in those issue -- the solution may be to mark those issues dependent on a new issue to add the API hooks for request handlers to suppress caching (that's a good idea in general) but it's also possible that there are better/safer/more-logical solutions specific to those patches ... if the DataImportHandler is having problems because the caching code, i'm guessing it's because people use it to trigger updates using an HTTP GET -- that violates the semantics of GET and making work arounds in the the HttpCaching code to allow for that is a bad idea. 4) saying only the "/select" handler should get it's responses cached is missleading -- under Solr 1.3 there won't be anything special about /select ... any handler name can be used for queries, and any handler name can be used for updates ... if you are issuing a request that modifies the index, you should be sending a POST and no caching headers (or validation) will be done by Solr regardless of configuration. As I said, discussion about the general topic of HTTP Caching, Solr, and what the defaults should be should really happen on the solr-dev list ... if there are any further comments let's please conduct them there and then open/update whatever issues we need to once a consensus has been reached. > 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, 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, 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.