The KVCatalog::FeatureTracker manages a document in the KVCatalog of the following form
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 (
SERVER-24097) could be done for the "repairable" feature bits when the mongod is started with --repair, e.g. if the feature only affects indexes and not collection data.