summaryrefslogtreecommitdiff
path: root/src/mongo/db
diff options
context:
space:
mode:
authorJason Chan <jason.chan@mongodb.com>2020-09-28 18:59:02 +0000
committerEvergreen Agent <no-reply@evergreen.mongodb.com>2020-09-30 19:37:36 +0000
commitf393c88a92010d406f063ca4fcc866f1988bf84d (patch)
tree35eb92ba46aaddf824a10866eb82239db2c8320f /src/mongo/db
parentc6316be1df28838a51f257abae42f43083e72d25 (diff)
downloadmongo-f393c88a92010d406f063ca4fcc866f1988bf84d.tar.gz
SERVER-49802 Update FCV constants to recognize 4.8 as latest
Diffstat (limited to 'src/mongo/db')
-rw-r--r--src/mongo/db/commands/feature_compatibility_version_parser.h20
-rw-r--r--src/mongo/db/server_options.h24
-rw-r--r--src/mongo/db/startup_recovery.cpp5
-rw-r--r--src/mongo/db/wire_version.h5
4 files changed, 35 insertions, 19 deletions
diff --git a/src/mongo/db/commands/feature_compatibility_version_parser.h b/src/mongo/db/commands/feature_compatibility_version_parser.h
index d1e90016ab3..ac5dd2c4b28 100644
--- a/src/mongo/db/commands/feature_compatibility_version_parser.h
+++ b/src/mongo/db/commands/feature_compatibility_version_parser.h
@@ -43,23 +43,29 @@ class FeatureCompatibilityVersionParser {
public:
static constexpr StringData kVersion44 = "4.4"_sd;
static constexpr StringData kVersion47 = "4.7"_sd;
+ static constexpr StringData kVersion48 = "4.8"_sd;
static constexpr StringData kVersionDowngradingFrom47To44 = "downgrading from 4.7 to 4.4"_sd;
+ static constexpr StringData kVersionDowngradingFrom48To44 = "downgrading from 4.8 to 4.4"_sd;
+ static constexpr StringData kVersionDowngradingFrom48To47 = "downgrading from 4.8 to 4.7"_sd;
static constexpr StringData kVersionUpgradingFrom44To47 = "upgrading from 4.4 to 4.7"_sd;
+ static constexpr StringData kVersionUpgradingFrom47To48 = "upgrading from 4.7 to 4.8"_sd;
+ static constexpr StringData kVersionUpgradingFrom44To48 = "upgrading from 4.4 to 4.8"_sd;
static constexpr StringData kVersionUnset = "Unset"_sd;
static constexpr StringData kParameterName = "featureCompatibilityVersion"_sd;
static constexpr StringData kLastLTS = kVersion44;
- static constexpr StringData kLastContinuous = kVersion44;
- static constexpr StringData kLatest = kVersion47;
- static constexpr StringData kUpgradingFromLastLTSToLatest = kVersionUpgradingFrom44To47;
- static constexpr StringData kUpgradingFromLastContinuousToLatest = kVersionUpgradingFrom44To47;
+ static constexpr StringData kLastContinuous = kVersion47;
+ static constexpr StringData kLatest = kVersion48;
+ static constexpr StringData kUpgradingFromLastLTSToLatest = kVersionUpgradingFrom44To48;
+ static constexpr StringData kUpgradingFromLastContinuousToLatest = kVersionUpgradingFrom47To48;
// kVersionUpgradingFromLastLTSToLastContinuous should assigned kVersionUnset when kLastLTS and
// kLastContinuous are equal.
- static constexpr StringData kVersionUpgradingFromLastLTSToLastContinuous = kVersionUnset;
- static constexpr StringData kDowngradingFromLatestToLastLTS = kVersionDowngradingFrom47To44;
+ static constexpr StringData kVersionUpgradingFromLastLTSToLastContinuous =
+ kVersionUpgradingFrom44To47;
+ static constexpr StringData kDowngradingFromLatestToLastLTS = kVersionDowngradingFrom48To44;
static constexpr StringData kDowngradingFromLatestToLastContinuous =
- kVersionDowngradingFrom47To44;
+ kVersionDowngradingFrom48To47;
static FeatureCompatibilityParams::Version parseVersion(StringData versionString);
diff --git a/src/mongo/db/server_options.h b/src/mongo/db/server_options.h
index ae3a87ec5e1..72035292cbb 100644
--- a/src/mongo/db/server_options.h
+++ b/src/mongo/db/server_options.h
@@ -197,29 +197,35 @@ struct ServerGlobalParams {
kUnsetDefault44Behavior = 1,
kFullyDowngradedTo44 = 2,
kDowngradingFrom47To44 = 3,
- kUpgradingFrom44To47 = 4,
- kVersion47 = 5,
+ kDowngradingFrom48To44 = 4,
+ kUpgradingFrom44To47 = 5,
+ kUpgradingFrom44To48 = 6,
+ kVersion47 = 7,
+ kDowngradingFrom48To47 = 8,
+ kUpgradingFrom47To48 = 9,
+ kVersion48 = 10,
};
// These constants should only be used for generic FCV references. Generic references are
// FCV references that are expected to exist across LTS binary versions.
- static constexpr Version kLatest = Version::kVersion47;
- static constexpr Version kLastContinuous = Version::kFullyDowngradedTo44;
+ static constexpr Version kLatest = Version::kVersion48;
+ static constexpr Version kLastContinuous = Version::kVersion47;
static constexpr Version kLastLTS = Version::kFullyDowngradedTo44;
// These constants should only be used for generic FCV references. Generic references are
// FCV references that are expected to exist across LTS binary versions.
// NOTE: DO NOT USE THEM FOR REGULAR FCV CHECKS.
- static constexpr Version kUpgradingFromLastLTSToLatest = Version::kUpgradingFrom44To47;
+ static constexpr Version kUpgradingFromLastLTSToLatest = Version::kUpgradingFrom44To48;
static constexpr Version kUpgradingFromLastContinuousToLatest =
- Version::kUpgradingFrom44To47;
- static constexpr Version kDowngradingFromLatestToLastLTS = Version::kDowngradingFrom47To44;
+ Version::kUpgradingFrom47To48;
+ static constexpr Version kDowngradingFromLatestToLastLTS = Version::kDowngradingFrom48To44;
static constexpr Version kDowngradingFromLatestToLastContinuous =
- Version::kDowngradingFrom47To44;
+ Version::kDowngradingFrom48To47;
// kUpgradingFromLastLTSToLastContinuous is only ever set to a valid FCV when
// kLastLTS and kLastContinuous are not equal. Otherwise, this value should be set to
// kInvalid.
- static constexpr Version kUpgradingFromLastLTSToLastContinuous = Version::kInvalid;
+ static constexpr Version kUpgradingFromLastLTSToLastContinuous =
+ Version::kUpgradingFrom44To47;
/**
* On startup, the featureCompatibilityVersion may not have been explicitly set yet. This
diff --git a/src/mongo/db/startup_recovery.cpp b/src/mongo/db/startup_recovery.cpp
index fbaaef9637f..45101c407cb 100644
--- a/src/mongo/db/startup_recovery.cpp
+++ b/src/mongo/db/startup_recovery.cpp
@@ -115,12 +115,13 @@ Status restoreMissingFeatureCompatibilityVersionDocument(OperationContext* opCtx
fcvColl,
BSON("_id" << FeatureCompatibilityVersionParser::kParameterName),
featureCompatibilityVersion)) {
+ // (Generic FCV reference): This FCV reference should exist across LTS binary versions.
LOGV2(21000,
"Re-creating featureCompatibilityVersion document that was deleted. Creating new "
"document with version "
- "{FeatureCompatibilityVersionParser_kVersion44}.",
+ "{FeatureCompatibilityVersionParser_kLastLTS}.",
"Re-creating featureCompatibilityVersion document that was deleted",
- "version"_attr = FeatureCompatibilityVersionParser::kVersion44);
+ "version"_attr = FeatureCompatibilityVersionParser::kLastLTS);
FeatureCompatibilityVersionDocument fcvDoc;
// (Generic FCV reference): This FCV reference should exist across LTS binary versions.
diff --git a/src/mongo/db/wire_version.h b/src/mongo/db/wire_version.h
index 736038f42ea..2e442738de9 100644
--- a/src/mongo/db/wire_version.h
+++ b/src/mongo/db/wire_version.h
@@ -86,9 +86,12 @@ enum WireVersion {
// Supports features available from 4.7 and onwards.
WIRE_VERSION_47 = 10,
+ // Supports features available from 4.8 and onwards.
+ WIRE_VERSION_48 = 11,
+
// Set this to the highest value in this enum - it will be the default maxWireVersion for
// the WireSpec values.
- LATEST_WIRE_VERSION = WIRE_VERSION_47,
+ LATEST_WIRE_VERSION = WIRE_VERSION_48,
// Set this to LATEST_WIRE_VERSION - 1.
LAST_CONT_WIRE_VERSION = LATEST_WIRE_VERSION - 1,