> I think we should try to be back-compat here, i.e. that a 6.0 (or 7.0) can 
> read a 5.0 (or 6.0) Solr.

Agree. A lack of promise for major version back compat gives us the freedom to 
do crazy breaking changes - but it does not prevent us from doing best effort 
attempts of a smooth transition for those that want to attempt.


To contribute constructively to the discussion, here is the current 6.0 upgrade 
instructions from CHANGES.txt, which may give some hints on possible hurdles:

Upgrading from Solr 5.x
----------------------

* The deprecated SolrServer and subclasses have been removed, use SolrClient
  instead.

* The deprecated <nrtMode> configuration in solrconfig.xml has been removed.
  Please remove it from solrconfig.xml.

* SolrClient.shutdown() has been removed, use SolrClient.close() instead.

* The deprecated zkCredientialsProvider element in solrcloud section of solr.xml
  is now removed. Use the correct spelling (zkCredentialsProvider) instead.

* SOLR-7957: internal/expert - ResultContext was significantly changed and 
expanded
  to allow for multiple full query results (DocLists) per Solr request.
  TransformContext was rendered redundant and was removed. (yonik)

* Several changes have been made regarding the "Similarity" used in Solr, in 
order to provide
  better default behavior for new users.  There are 3 key impacts of these 
changes on existing
  users who upgrade:
  * DefaultSimilarityFactory has been removed. If you currently have 
DefaultSimilarityFactory explicitly
    referenced in your schema.xml, edit your config to use the functionally 
identical
    ClassicSimilarityFactory.  See SOLR-8239 for more details.
  * The implicit default Similarity used when no <similarity/> is configured in 
schema.xml has
    been changed to SchemaSimilarityFactory.  Users who wish to preserve 
back-compatible behavior should
    either explicitly configure ClassicSimilarityFactory, or ensure that the 
luceneMatchVersion
    for the collection is less then 6.0.  See SOLR-8270 + SOLR-8271 for details.
  * SchemaSimilarityFactory has been modified to use BM25Similarity as the 
default for fieldTypes that
    do not explicitly declare a Similarity.  The legacy behavior of using 
ClassicSimilarity as the
    default will occur if the luceneMatchVersion for the collection is less 
then 6.0, or the
    'defaultSimFromFieldType' configuration option may be used to specify any 
default of your choosing.
    See SOLR-8261 + SOLR-8329 for more details.

* If your solrconfig.xml file doesn't explicitly mention the schemaFactory to 
use then Solr will choose
  the ManagedIndexSchemaFactory by default. Previously it would have chosen 
ClassicIndexSchemaFactory.
  This means that the Schema APIs ( /<collection>/schema ) are enabled and the 
schema is mutable.
  When Solr starts your schema.xml file will be renamed to managed-schema. If 
you want to retain the old behaviour
  then please ensure that the solrconfig.xml explicitly uses the 
ClassicIndexSchemaFactory :
  <schemaFactory class="ClassicIndexSchemaFactory"/> or your luceneMatchVersion 
in the solrconfig.xml is less than 6.0

* SolrIndexSearcher.QueryCommand and QueryResult were moved to their own 
classes. If you reference them
  in your code, you should import them under o.a.s.search (or use your IDE's 
"Organize Imports").

* SOLR-8698: 'useParams' attribute specified in request handler cannot be 
overridden from request params

Looks like many of these changes would be possible to prepare for by modifying 
5.x config before upgrading, e.g. the schema factory etc.

--
Jan Høydahl, search solution architect
Cominvent AS - www.cominvent.com

> 23. feb. 2016 kl. 19.54 skrev Shai Erera <ser...@gmail.com>:
> 
> Mark, I understand that we currently don't have any other promises :). I 
> asked in case you happen to know that "oh yeah, in 6.0 we've changed ZK to 
> refer to /solr_collections instead of /collections" (I wish it would be 
> *that* trivial :)).
> 
> If you don't have a list that's fine. You just sounded really confident that 
> 5.x -> 6.0 won't work, so I hoped you also can tell why.
> 
> I think we should try to be back-compat here, i.e. that a 6.0 (or 7.0) can 
> read a 5.0 (or 6.0) Solr. If ZK is our "format", then we should treat it as a 
> thing we want to support. That's just my opinion though.
> 
> Shai
> 
> On Tue, Feb 23, 2016 at 8:46 PM Anshum Gupta <ans...@anshumgupta.net 
> <mailto:ans...@anshumgupta.net>> wrote:
> For that, we provide an index upgrade tool with 6.0, like we did in 5.0.
> 
> On Tue, Feb 23, 2016 at 10:41 AM, Mike Drob <md...@apache.org 
> <mailto:md...@apache.org>> wrote:
> A 5.x Solr could have indices that are still in a 4.x format, right? That 
> would be one point where it's not "fully back compatible."
> 
> On Tue, Feb 23, 2016 at 12:27 PM, Shai Erera <ser...@gmail.com 
> <mailto:ser...@gmail.com>> wrote:
> Wait, what do you mean by Lucene not supporting back-compat? Lucene 6.0 will 
> be able to read Lucene 5.0 indexes. The only thing that we don't guarantee 
> support for is API, which isn't the case here.
> 
> So what's in 6.0 that can't read a 5.x Solr. It can't be the index format 
> since that's supported by Lucene. Is it the ZK format? If so, should we try 
> to "version" it so that a 6.0 code can read a 5.x version? Is it something 
> else / additionally?
> 
> Shai
> 
> On Tue, Feb 23, 2016 at 7:06 PM Mark Miller <markrmil...@gmail.com 
> <mailto:markrmil...@gmail.com>> wrote:
> Yes, we are allowed wide berth to break backcompat across major versions and 
> we cannot support rolling updates for the same reason Lucene stopped trying 
> to do full back compat across major versions. Without, we can't properly 
> innovate in the code or fix past mistakes and would also burn lots of cycles 
> we don't have on crazy, "sophisticated" back compat layers.
> 
> We don't even really support rolling updates between major versions. We make 
> a simple best effort. Until we have tests, it's going to be a shaky affair. 
> There is a JIRA open now working on some testing I believe.
> 
> - Mark
> 
> On Tue, Feb 23, 2016 at 11:29 AM Shai Erera <ser...@gmail.com 
> <mailto:ser...@gmail.com>> wrote:
> Hi
> 
> I read in few emails/issue comments that rolling upgrades from 5.x to 6.0 
> isn't supported. Is it really the case? Does it mean that anyone who has a 
> 5.x Solr cluster *must* incur down time when upgrading to 6.0?
> 
> If this is really the case, can someone list the known issues/reasons for 
> that?Can we do something about it, e.g. in a subsequent 5.6 release that will 
> allow rolling upgrades (like the 5.4.1 fix that allowed rolling upgrades from 
> pre-5.4 to 5.4)?
> 
> I feel it's odd (and may not be taken well) if we force users to take down 
> their entire cluster if they want to upgrade to 6.0. Definitely feels like it 
> will also slow down 6.0 adoption.
> 
> And if nothing can be done, what's the recommended way then to upgrade to 6.0?
> 
> Shai
> -- 
> - Mark 
> about.me/markrmiller <http://about.me/markrmiller>
> 
> 
> 
> -- 
> Anshum Gupta

Reply via email to