[SERVER-23116] Add versioning scheme to the KVCatalog to handle upgrade/downgrade with new 3.4 features Created: 14/Mar/16 Updated: 17/May/21 Resolved: 24/May/16 |
|
| Status: | Closed |
| Project: | Core Server |
| Component/s: | Storage |
| Affects Version/s: | None |
| Fix Version/s: | 3.2.7, 3.3.8 |
| Type: | Task | Priority: | Major - P3 |
| Reporter: | Max Hirschhorn | Assignee: | Max Hirschhorn |
| Resolution: | Done | Votes: | 0 |
| Labels: | code-and-test | ||
| Remaining Estimate: | Not Specified | ||
| Time Spent: | Not Specified | ||
| Original Estimate: | Not Specified | ||
| Issue Links: |
|
||||||||||||||||||||||||||||||||
| Backwards Compatibility: | Fully Compatible | ||||||||||||||||||||||||||||||||
| Backport Completed: | |||||||||||||||||||||||||||||||||
| Sprint: | Query 13 (04/22/16), Query 14 (05/13/16), Query 15 (06/03/16) | ||||||||||||||||||||||||||||||||
| Participants: | |||||||||||||||||||||||||||||||||
| Description |
|
The KVCatalog::FeatureTracker manages a document in the KVCatalog of the following form
The "ns" field has a value of null in order to make calls to obj["ns"].String() in KVCatalog::init() massert on versions of MongoDB earlier than the fixVersion of A version of mongod will fail to start up if an unrecognized feature is marked as in-use on the data files. This allows a breaking change to be made between two major versions of MongoDB and require users to downgrade to a newer version of the older major release in order to be able to downgrade cleanly. The feature document is inserted into the KVCatalog only after the first feature is enabled on the data files, e.g. the feature document will be inserted when a new index is created after upgrading to 3.4 ( The distinction between the "repairable" and "nonRepairable" feature bits is that special handling ( |
| Comments |
| Comment by Githook User [ 27/May/16 ] |
|
Author: {u'username': u'visemet', u'name': u'Max Hirschhorn', u'email': u'max.hirschhorn@mongodb.com'}Message: (cherry picked from commit dbbb77673cc252517aa1222fed1981c5a12e89cd) |
| Comment by Githook User [ 27/May/16 ] |
|
Author: {u'username': u'milkie', u'name': u'Eric Milkie', u'email': u'milkie@10gen.com'}Message: (cherry picked from commit 68d2943e7eebb0c969567f6435f71b39a336a1a2) |
| Comment by Githook User [ 27/May/16 ] |
|
Author: {u'username': u'visemet', u'name': u'Max Hirschhorn', u'email': u'max.hirschhorn@mongodb.com'}Message: The feature document is inserted into the KVCatalog only after the first (cherry picked from commit 77d99b27649d4f81302fde2cb7cd7f4967b9646c) This commit differs slightly from |
| Comment by Githook User [ 27/May/16 ] |
|
Author: {u'username': u'visemet', u'name': u'Max Hirschhorn', u'email': u'max.hirschhorn@mongodb.com'}Message: (cherry picked from commit 07b62ebc131c720b29d3a76dabe950e3935fbcc1) Conflicts: |
| Comment by Githook User [ 24/May/16 ] |
|
Author: {u'username': u'visemet', u'name': u'Max Hirschhorn', u'email': u'max.hirschhorn@mongodb.com'}Message: |
| Comment by Max Hirschhorn [ 21/May/16 ] |
|
Reopening to address a gap found while working on |
| Comment by Githook User [ 17/May/16 ] |
|
Author: {u'username': u'milkie', u'name': u'Eric Milkie', u'email': u'milkie@10gen.com'}Message: |
| Comment by Githook User [ 17/May/16 ] |
|
Author: {u'username': u'visemet', u'name': u'Max Hirschhorn', u'email': u'max.hirschhorn@mongodb.com'}Message: The feature document is inserted into the KVCatalog only after the first |
| Comment by Githook User [ 17/May/16 ] |
|
Author: {u'username': u'visemet', u'name': u'Max Hirschhorn', u'email': u'max.hirschhorn@mongodb.com'}Message: |