summaryrefslogtreecommitdiff
path: root/src/mongo/db
diff options
context:
space:
mode:
Diffstat (limited to 'src/mongo/db')
-rw-r--r--src/mongo/db/auth/authz_manager_external_state_s.cpp2
-rw-r--r--src/mongo/db/auth/user_cache_invalidator_job.cpp1
-rw-r--r--src/mongo/db/catalog/collection_catalog_entry.h1
-rw-r--r--src/mongo/db/commands.h1
-rw-r--r--src/mongo/db/db.cpp1
-rw-r--r--src/mongo/db/index/index_descriptor.h1
-rw-r--r--src/mongo/db/index/sort_key_generator_test.cpp2
-rw-r--r--src/mongo/db/keys_collection_client.h10
-rw-r--r--src/mongo/db/keys_collection_client_direct.cpp11
-rw-r--r--src/mongo/db/keys_collection_client_sharded.cpp4
-rw-r--r--src/mongo/db/keys_collection_client_sharded.h9
-rw-r--r--src/mongo/db/mongod_options.cpp19
-rw-r--r--src/mongo/db/query/parsed_distinct.cpp1
-rw-r--r--src/mongo/db/repl/topology_coordinator.cpp5
-rw-r--r--src/mongo/db/s/SConscript15
-rw-r--r--src/mongo/db/s/balancer/balancer.cpp1
-rw-r--r--src/mongo/db/s/balancer/balancer_chunk_selection_policy_impl.cpp1
-rw-r--r--src/mongo/db/s/balancer/cluster_statistics_impl.cpp19
-rw-r--r--src/mongo/db/s/balancer/migration_manager.cpp2
-rw-r--r--src/mongo/db/s/balancer/migration_manager_test.cpp2
-rw-r--r--src/mongo/db/s/balancer/scoped_migration_request.cpp12
-rw-r--r--src/mongo/db/s/chunk_splitter.cpp1
-rw-r--r--src/mongo/db/s/config/configsvr_drop_collection_command.cpp3
-rw-r--r--src/mongo/db/s/config/configsvr_drop_database_command.cpp2
-rw-r--r--src/mongo/db/s/config/configsvr_move_primary_command.cpp8
-rw-r--r--src/mongo/db/s/metadata_manager_test.cpp1
-rw-r--r--src/mongo/db/s/migration_source_manager.cpp2
-rw-r--r--src/mongo/db/s/sharding_task_executor.cpp207
-rw-r--r--src/mongo/db/s/sharding_task_executor.h82
-rw-r--r--src/mongo/db/server_options.cpp2
-rw-r--r--src/mongo/db/server_options.h1
-rw-r--r--src/mongo/db/service_context_d.cpp1
32 files changed, 52 insertions, 378 deletions
diff --git a/src/mongo/db/auth/authz_manager_external_state_s.cpp b/src/mongo/db/auth/authz_manager_external_state_s.cpp
index 2fb91f5b8ea..53700bb9ac9 100644
--- a/src/mongo/db/auth/authz_manager_external_state_s.cpp
+++ b/src/mongo/db/auth/authz_manager_external_state_s.cpp
@@ -44,14 +44,12 @@
#include "mongo/db/jsobj.h"
#include "mongo/db/operation_context.h"
#include "mongo/rpc/get_status_from_command_result.h"
-#include "mongo/s/catalog/sharding_catalog_client.h"
#include "mongo/s/grid.h"
#include "mongo/stdx/memory.h"
#include "mongo/util/mongoutils/str.h"
#include "mongo/util/stringutils.h"
namespace mongo {
-
namespace {
/**
diff --git a/src/mongo/db/auth/user_cache_invalidator_job.cpp b/src/mongo/db/auth/user_cache_invalidator_job.cpp
index 81602d77a14..8d6a690f19e 100644
--- a/src/mongo/db/auth/user_cache_invalidator_job.cpp
+++ b/src/mongo/db/auth/user_cache_invalidator_job.cpp
@@ -41,7 +41,6 @@
#include "mongo/db/commands.h"
#include "mongo/db/server_parameters.h"
#include "mongo/rpc/get_status_from_command_result.h"
-#include "mongo/s/catalog/sharding_catalog_client.h"
#include "mongo/s/grid.h"
#include "mongo/stdx/mutex.h"
#include "mongo/util/background.h"
diff --git a/src/mongo/db/catalog/collection_catalog_entry.h b/src/mongo/db/catalog/collection_catalog_entry.h
index 805bd130c46..ca07d2b17bc 100644
--- a/src/mongo/db/catalog/collection_catalog_entry.h
+++ b/src/mongo/db/catalog/collection_catalog_entry.h
@@ -40,6 +40,7 @@
namespace mongo {
+class Collection;
class IndexDescriptor;
class OperationContext;
diff --git a/src/mongo/db/commands.h b/src/mongo/db/commands.h
index 7986cc6fe08..48cce22e3a6 100644
--- a/src/mongo/db/commands.h
+++ b/src/mongo/db/commands.h
@@ -41,6 +41,7 @@
#include "mongo/db/commands/server_status_metric.h"
#include "mongo/db/jsobj.h"
#include "mongo/db/query/explain.h"
+#include "mongo/db/repl/read_concern_args.h"
#include "mongo/db/write_concern.h"
#include "mongo/rpc/reply_builder_interface.h"
#include "mongo/stdx/functional.h"
diff --git a/src/mongo/db/db.cpp b/src/mongo/db/db.cpp
index 14c628b5d35..19ffd88d700 100644
--- a/src/mongo/db/db.cpp
+++ b/src/mongo/db/db.cpp
@@ -110,7 +110,6 @@
#include "mongo/db/s/sharding_initialization_mongod.h"
#include "mongo/db/s/sharding_state.h"
#include "mongo/db/s/sharding_state_recovery.h"
-#include "mongo/db/s/type_shard_identity.h"
#include "mongo/db/server_options.h"
#include "mongo/db/server_parameters.h"
#include "mongo/db/service_context.h"
diff --git a/src/mongo/db/index/index_descriptor.h b/src/mongo/db/index/index_descriptor.h
index 5ba231f7664..3fae7128915 100644
--- a/src/mongo/db/index/index_descriptor.h
+++ b/src/mongo/db/index/index_descriptor.h
@@ -45,6 +45,7 @@ class Collection;
class IndexCatalog;
class IndexCatalogEntry;
class IndexCatalogEntryContainer;
+class OperationContext;
/**
* A cache of information computed from the memory-mapped per-index data (OnDiskIndexData).
diff --git a/src/mongo/db/index/sort_key_generator_test.cpp b/src/mongo/db/index/sort_key_generator_test.cpp
index 854bb912f6e..f541919836d 100644
--- a/src/mongo/db/index/sort_key_generator_test.cpp
+++ b/src/mongo/db/index/sort_key_generator_test.cpp
@@ -28,8 +28,8 @@
#include "mongo/platform/basic.h"
+#include "mongo/bson/json.h"
#include "mongo/db/index/sort_key_generator.h"
-
#include "mongo/db/query/collation/collator_interface_mock.h"
#include "mongo/stdx/memory.h"
#include "mongo/unittest/death_test.h"
diff --git a/src/mongo/db/keys_collection_client.h b/src/mongo/db/keys_collection_client.h
index 4e93343ff3f..44cd5e2dd0b 100644
--- a/src/mongo/db/keys_collection_client.h
+++ b/src/mongo/db/keys_collection_client.h
@@ -28,17 +28,17 @@
#pragma once
-#include <memory>
-#include <string>
+#include <vector>
-#include "mongo/base/status.h"
+#include "mongo/base/status_with.h"
+#include "mongo/base/string_data.h"
#include "mongo/db/keys_collection_document.h"
namespace mongo {
-class OperationContext;
-class LogicalTime;
class BSONObj;
+class LogicalTime;
+class OperationContext;
class KeysCollectionClient {
public:
diff --git a/src/mongo/db/keys_collection_client_direct.cpp b/src/mongo/db/keys_collection_client_direct.cpp
index 4148b589bab..8ffc75f29ef 100644
--- a/src/mongo/db/keys_collection_client_direct.cpp
+++ b/src/mongo/db/keys_collection_client_direct.cpp
@@ -30,11 +30,11 @@
#include "mongo/platform/basic.h"
+#include "mongo/db/keys_collection_client_direct.h"
+
#include <boost/optional.hpp>
#include <vector>
-#include "mongo/db/keys_collection_client_direct.h"
-
#include "mongo/bson/bsonobjbuilder.h"
#include "mongo/bson/util/bson_extract.h"
#include "mongo/client/read_preference.h"
@@ -43,7 +43,6 @@
#include "mongo/db/logical_clock.h"
#include "mongo/db/logical_time.h"
#include "mongo/db/operation_context.h"
-#include "mongo/db/server_options.h"
#include "mongo/db/service_context.h"
#include "mongo/rpc/get_status_from_command_result.h"
#include "mongo/s/catalog/sharding_catalog_client.h"
@@ -52,8 +51,8 @@
#include "mongo/util/log.h"
namespace mongo {
-
namespace {
+
const int kOnErrorNumRetries = 3;
bool isRetriableError(ErrorCodes::Error code, Shard::RetryPolicy options) {
@@ -68,7 +67,8 @@ bool isRetriableError(ErrorCodes::Error code, Shard::RetryPolicy options) {
return false;
}
}
-}
+
+} // namespace
KeysCollectionClientDirect::KeysCollectionClientDirect() : _rsLocalClient() {}
@@ -165,4 +165,5 @@ Status KeysCollectionClientDirect::insertNewKey(OperationContext* opCtx, const B
return _insert(
opCtx, KeysCollectionDocument::ConfigNS, doc, ShardingCatalogClient::kMajorityWriteConcern);
}
+
} // namespace mongo
diff --git a/src/mongo/db/keys_collection_client_sharded.cpp b/src/mongo/db/keys_collection_client_sharded.cpp
index 2f5bb8d6c9c..4b2cb51ce24 100644
--- a/src/mongo/db/keys_collection_client_sharded.cpp
+++ b/src/mongo/db/keys_collection_client_sharded.cpp
@@ -29,12 +29,11 @@
#include "mongo/platform/basic.h"
#include "mongo/db/keys_collection_client_sharded.h"
+
#include "mongo/s/catalog/sharding_catalog_client.h"
namespace mongo {
-namespace {} // namespace
-
KeysCollectionClientSharded::KeysCollectionClientSharded(ShardingCatalogClient* client)
: _catalogClient(client) {}
@@ -50,4 +49,5 @@ Status KeysCollectionClientSharded::insertNewKey(OperationContext* opCtx, const
return _catalogClient->insertConfigDocument(
opCtx, KeysCollectionDocument::ConfigNS, doc, ShardingCatalogClient::kMajorityWriteConcern);
}
+
} // namespace mongo
diff --git a/src/mongo/db/keys_collection_client_sharded.h b/src/mongo/db/keys_collection_client_sharded.h
index 2ced14f2135..b3f337e60ff 100644
--- a/src/mongo/db/keys_collection_client_sharded.h
+++ b/src/mongo/db/keys_collection_client_sharded.h
@@ -28,22 +28,16 @@
#pragma once
-#include <memory>
-#include <string>
-
-#include "mongo/base/status.h"
#include "mongo/db/keys_collection_client.h"
namespace mongo {
-class OperationContext;
-class LogicalTime;
-class BSONObj;
class ShardingCatalogClient;
class KeysCollectionClientSharded : public KeysCollectionClient {
public:
KeysCollectionClientSharded(ShardingCatalogClient*);
+
/**
* Returns keys for the given purpose and with an expiresAt value greater than newerThanThis.
*/
@@ -62,4 +56,5 @@ public:
private:
ShardingCatalogClient* const _catalogClient;
};
+
} // namespace mongo
diff --git a/src/mongo/db/mongod_options.cpp b/src/mongo/db/mongod_options.cpp
index 67b8b63545e..f77dce0fcc5 100644
--- a/src/mongo/db/mongod_options.cpp
+++ b/src/mongo/db/mongod_options.cpp
@@ -44,7 +44,6 @@
#include "mongo/db/server_options.h"
#include "mongo/db/server_options_helpers.h"
#include "mongo/db/storage/mmap_v1/mmap_v1_options.h"
-#include "mongo/s/catalog/sharding_catalog_client.h"
#include "mongo/util/log.h"
#include "mongo/util/mongoutils/str.h"
#include "mongo/util/net/ssl_options.h"
@@ -56,8 +55,6 @@ namespace mongo {
using std::cout;
using std::endl;
-using std::string;
-
MongodGlobalParams mongodGlobalParams;
@@ -640,7 +637,7 @@ Status validateMongodOptions(const moe::Environment& params) {
#ifdef _WIN32
if (params.count("install") || params.count("reinstall")) {
if (params.count("storage.dbPath") &&
- !boost::filesystem::path(params["storage.dbPath"].as<string>()).is_absolute()) {
+ !boost::filesystem::path(params["storage.dbPath"].as<std::string>()).is_absolute()) {
return Status(ErrorCodes::BadValue,
"dbPath requires an absolute file path with Windows services");
}
@@ -943,12 +940,12 @@ Status storeMongodOptions(const moe::Environment& params) {
}
if (params.count("storage.engine")) {
- storageGlobalParams.engine = params["storage.engine"].as<string>();
+ storageGlobalParams.engine = params["storage.engine"].as<std::string>();
storageGlobalParams.engineSetByUser = true;
}
if (params.count("storage.dbPath")) {
- storageGlobalParams.dbpath = params["storage.dbPath"].as<string>();
+ storageGlobalParams.dbpath = params["storage.dbPath"].as<std::string>();
if (params.count("processManagement.fork") && storageGlobalParams.dbpath[0] != '/') {
// we need to change dbpath if we fork since we change
// cwd to "/"
@@ -1116,17 +1113,17 @@ Status storeMongodOptions(const moe::Environment& params) {
}
if (params.count("source")) {
/* specifies what the source in local.sources should be */
- replSettings.setSource(params["source"].as<string>().c_str());
+ replSettings.setSource(params["source"].as<std::string>().c_str());
}
if (params.count("pretouch")) {
replSettings.setPretouch(params["pretouch"].as<int>());
}
if (params.count("replication.replSetName")) {
- replSettings.setReplSetString(params["replication.replSetName"].as<string>().c_str());
+ replSettings.setReplSetString(params["replication.replSetName"].as<std::string>().c_str());
}
if (params.count("replication.replSet")) {
/* seed list of hosts for the repl set */
- replSettings.setReplSetString(params["replication.replSet"].as<string>().c_str());
+ replSettings.setReplSetString(params["replication.replSet"].as<std::string>().c_str());
}
if (params.count("replication.secondaryIndexPrefetch")) {
replSettings.setPrefetchIndexMode(
@@ -1146,7 +1143,7 @@ Status storeMongodOptions(const moe::Environment& params) {
}
if (params.count("only")) {
- replSettings.setOnly(params["only"].as<string>().c_str());
+ replSettings.setOnly(params["only"].as<std::string>().c_str());
}
if (params.count("storage.mmapv1.nsSize")) {
int x = params["storage.mmapv1.nsSize"].as<int>();
@@ -1255,7 +1252,7 @@ Status storeMongodOptions(const moe::Environment& params) {
// needs to be after things like --configsvr parsing, thus here.
if (params.count("storage.repairPath")) {
- storageGlobalParams.repairpath = params["storage.repairPath"].as<string>();
+ storageGlobalParams.repairpath = params["storage.repairPath"].as<std::string>();
if (!storageGlobalParams.repairpath.size()) {
return Status(ErrorCodes::BadValue, "repairpath is empty");
}
diff --git a/src/mongo/db/query/parsed_distinct.cpp b/src/mongo/db/query/parsed_distinct.cpp
index 7fbb38648b2..8ff2277bee6 100644
--- a/src/mongo/db/query/parsed_distinct.cpp
+++ b/src/mongo/db/query/parsed_distinct.cpp
@@ -34,6 +34,7 @@
#include "mongo/bson/util/bson_extract.h"
#include "mongo/db/query/canonical_query.h"
#include "mongo/db/query/query_request.h"
+#include "mongo/db/repl/read_concern_args.h"
#include "mongo/stdx/memory.h"
#include "mongo/util/mongoutils/str.h"
diff --git a/src/mongo/db/repl/topology_coordinator.cpp b/src/mongo/db/repl/topology_coordinator.cpp
index 19c5293c0cc..e8b3710f283 100644
--- a/src/mongo/db/repl/topology_coordinator.cpp
+++ b/src/mongo/db/repl/topology_coordinator.cpp
@@ -35,6 +35,7 @@
#include <limits>
#include <string>
+#include "mongo/bson/simple_bsonobj_comparator.h"
#include "mongo/db/audit.h"
#include "mongo/db/client.h"
#include "mongo/db/mongod_options.h"
@@ -62,7 +63,7 @@
namespace mongo {
namespace repl {
-using std::vector;
+
const Seconds TopologyCoordinator::VoteLease::leaseTime = Seconds(30);
// Controls how caught up in replication a secondary with higher priority than the current primary
@@ -1995,7 +1996,7 @@ void TopologyCoordinator::prepareStatusResponse(const ReplSetStatusArgs& rsStatu
BSONObjBuilder* response,
Status* result) {
// output for each member
- vector<BSONObj> membersOut;
+ std::vector<BSONObj> membersOut;
const MemberState myState = getMemberState();
const Date_t now = rsStatusArgs.now;
const OpTime lastOpApplied = getMyLastAppliedOpTime();
diff --git a/src/mongo/db/s/SConscript b/src/mongo/db/s/SConscript
index b5c82cdae1d..fd53ece397b 100644
--- a/src/mongo/db/s/SConscript
+++ b/src/mongo/db/s/SConscript
@@ -20,19 +20,6 @@ env.Library(
)
env.Library(
- target='sharding_task_executor',
- source=[
- 'sharding_task_executor.cpp',
- ],
- LIBDEPS=[
- '$BUILD_DIR/mongo/base',
- '$BUILD_DIR/mongo/executor/thread_pool_task_executor',
- '$BUILD_DIR/mongo/s/client/sharding_client',
- '$BUILD_DIR/mongo/s/cluster_last_error_info',
- ],
-)
-
-env.Library(
target='migration_types',
source=[
'migration_session_id.cpp',
@@ -106,11 +93,11 @@ env.Library(
'$BUILD_DIR/mongo/s/coreshard',
'$BUILD_DIR/mongo/s/is_mongos',
'$BUILD_DIR/mongo/s/sharding_initialization',
+ '$BUILD_DIR/mongo/s/sharding_task_executor',
'$BUILD_DIR/mongo/util/elapsed_tracker',
'balancer',
'collection_metadata',
'migration_types',
- 'sharding_task_executor',
'type_shard_identity',
],
LIBDEPS_TAGS=[
diff --git a/src/mongo/db/s/balancer/balancer.cpp b/src/mongo/db/s/balancer/balancer.cpp
index d537260c666..4b6c79c343c 100644
--- a/src/mongo/db/s/balancer/balancer.cpp
+++ b/src/mongo/db/s/balancer/balancer.cpp
@@ -44,7 +44,6 @@
#include "mongo/db/s/balancer/balancer_chunk_selection_policy_impl.h"
#include "mongo/db/s/balancer/cluster_statistics_impl.h"
#include "mongo/s/balancer_configuration.h"
-#include "mongo/s/catalog/sharding_catalog_client.h"
#include "mongo/s/catalog/type_chunk.h"
#include "mongo/s/catalog_cache.h"
#include "mongo/s/client/shard_registry.h"
diff --git a/src/mongo/db/s/balancer/balancer_chunk_selection_policy_impl.cpp b/src/mongo/db/s/balancer/balancer_chunk_selection_policy_impl.cpp
index 5e89baca4e1..499c7605924 100644
--- a/src/mongo/db/s/balancer/balancer_chunk_selection_policy_impl.cpp
+++ b/src/mongo/db/s/balancer/balancer_chunk_selection_policy_impl.cpp
@@ -36,7 +36,6 @@
#include "mongo/base/status_with.h"
#include "mongo/bson/bsonobj_comparator_interface.h"
-#include "mongo/s/catalog/sharding_catalog_client.h"
#include "mongo/s/catalog/type_chunk.h"
#include "mongo/s/catalog/type_collection.h"
#include "mongo/s/catalog/type_tags.h"
diff --git a/src/mongo/db/s/balancer/cluster_statistics_impl.cpp b/src/mongo/db/s/balancer/cluster_statistics_impl.cpp
index f0f50c1c09f..c23b6b41e32 100644
--- a/src/mongo/db/s/balancer/cluster_statistics_impl.cpp
+++ b/src/mongo/db/s/balancer/cluster_statistics_impl.cpp
@@ -35,7 +35,6 @@
#include "mongo/base/status_with.h"
#include "mongo/bson/util/bson_extract.h"
#include "mongo/client/read_preference.h"
-#include "mongo/s/catalog/sharding_catalog_client.h"
#include "mongo/s/catalog/type_shard.h"
#include "mongo/s/client/shard_registry.h"
#include "mongo/s/grid.h"
@@ -44,10 +43,6 @@
#include "mongo/util/mongoutils/str.h"
namespace mongo {
-
-using std::string;
-using std::vector;
-
namespace {
const char kVersionField[] = "version";
@@ -60,7 +55,7 @@ const char kVersionField[] = "version";
* ShardNotFound if shard by that id is not available on the registry
* NoSuchKey if the version could not be retrieved
*/
-StatusWith<string> retrieveShardMongoDVersion(OperationContext* opCtx, ShardId shardId) {
+StatusWith<std::string> retrieveShardMongoDVersion(OperationContext* opCtx, ShardId shardId) {
auto shardRegistry = Grid::get(opCtx)->shardRegistry();
auto shardStatus = shardRegistry->getShard(opCtx, shardId);
if (!shardStatus.isOK()) {
@@ -83,7 +78,7 @@ StatusWith<string> retrieveShardMongoDVersion(OperationContext* opCtx, ShardId s
BSONObj serverStatus = std::move(commandResponse.getValue().response);
- string version;
+ std::string version;
Status status = bsonExtractStringField(serverStatus, kVersionField, &version);
if (!status.isOK()) {
return status;
@@ -100,7 +95,7 @@ ClusterStatisticsImpl::ClusterStatisticsImpl() = default;
ClusterStatisticsImpl::~ClusterStatisticsImpl() = default;
-StatusWith<vector<ShardStatistics>> ClusterStatisticsImpl::getStats(OperationContext* opCtx) {
+StatusWith<std::vector<ShardStatistics>> ClusterStatisticsImpl::getStats(OperationContext* opCtx) {
// Get a list of all the shards that are participating in this balance round along with any
// maximum allowed quotas and current utilization. We get the latter by issuing
// db.serverStatus() (mem.mapped) to all shards.
@@ -112,9 +107,9 @@ StatusWith<vector<ShardStatistics>> ClusterStatisticsImpl::getStats(OperationCon
return shardsStatus.getStatus();
}
- const vector<ShardType> shards(std::move(shardsStatus.getValue().value));
+ const auto& shards = shardsStatus.getValue().value;
- vector<ShardStatistics> stats;
+ std::vector<ShardStatistics> stats;
for (const auto& shard : shards) {
const auto shardSizeStatus = [&]() -> StatusWith<long long> {
@@ -133,7 +128,7 @@ StatusWith<vector<ShardStatistics>> ClusterStatisticsImpl::getStats(OperationCon
<< shard.getName());
}
- string mongoDVersion;
+ std::string mongoDVersion;
auto mongoDVersionStatus = retrieveShardMongoDVersion(opCtx, shard.getName());
if (mongoDVersionStatus.isOK()) {
@@ -145,7 +140,7 @@ StatusWith<vector<ShardStatistics>> ClusterStatisticsImpl::getStats(OperationCon
<< causedBy(mongoDVersionStatus.getStatus());
}
- std::set<string> shardTags;
+ std::set<std::string> shardTags;
for (const auto& shardTag : shard.getTags()) {
shardTags.insert(shardTag);
diff --git a/src/mongo/db/s/balancer/migration_manager.cpp b/src/mongo/db/s/balancer/migration_manager.cpp
index ce7ed13d743..542b2410810 100644
--- a/src/mongo/db/s/balancer/migration_manager.cpp
+++ b/src/mongo/db/s/balancer/migration_manager.cpp
@@ -44,7 +44,6 @@
#include "mongo/db/s/balancer/type_migration.h"
#include "mongo/executor/task_executor_pool.h"
#include "mongo/rpc/get_status_from_command_result.h"
-#include "mongo/s/catalog/sharding_catalog_client.h"
#include "mongo/s/catalog_cache.h"
#include "mongo/s/client/shard_registry.h"
#include "mongo/s/grid.h"
@@ -64,6 +63,7 @@ using str::stream;
namespace {
const char kChunkTooBig[] = "chunkTooBig"; // TODO: delete in 3.8
+
const WriteConcernOptions kMajorityWriteConcern(WriteConcernOptions::kMajority,
WriteConcernOptions::SyncMode::UNSET,
Seconds(15));
diff --git a/src/mongo/db/s/balancer/migration_manager_test.cpp b/src/mongo/db/s/balancer/migration_manager_test.cpp
index 515ebceb7b2..72a32c50627 100644
--- a/src/mongo/db/s/balancer/migration_manager_test.cpp
+++ b/src/mongo/db/s/balancer/migration_manager_test.cpp
@@ -29,13 +29,11 @@
#include "mongo/platform/basic.h"
#include "mongo/client/remote_command_targeter_mock.h"
-#include "mongo/db/client.h"
#include "mongo/db/commands.h"
#include "mongo/db/s/balancer/migration_manager.h"
#include "mongo/db/s/balancer/type_migration.h"
#include "mongo/db/write_concern_options.h"
#include "mongo/s/catalog/dist_lock_manager_mock.h"
-#include "mongo/s/catalog/sharding_catalog_client_impl.h"
#include "mongo/s/catalog/type_collection.h"
#include "mongo/s/catalog/type_database.h"
#include "mongo/s/catalog/type_locks.h"
diff --git a/src/mongo/db/s/balancer/scoped_migration_request.cpp b/src/mongo/db/s/balancer/scoped_migration_request.cpp
index 6cf19c1f4bf..74511ab1823 100644
--- a/src/mongo/db/s/balancer/scoped_migration_request.cpp
+++ b/src/mongo/db/s/balancer/scoped_migration_request.cpp
@@ -32,22 +32,21 @@
#include "mongo/db/s/balancer/scoped_migration_request.h"
-#include "mongo/db/repl/replication_coordinator_global.h"
#include "mongo/db/s/balancer/type_migration.h"
#include "mongo/db/write_concern_options.h"
-#include "mongo/s/catalog/sharding_catalog_client.h"
#include "mongo/s/client/shard_registry.h"
#include "mongo/s/grid.h"
#include "mongo/util/log.h"
namespace mongo {
-
namespace {
+
const WriteConcernOptions kMajorityWriteConcern(WriteConcernOptions::kMajority,
WriteConcernOptions::SyncMode::UNSET,
Seconds(15));
const int kDuplicateKeyErrorMaxRetries = 2;
-}
+
+} // namespace
ScopedMigrationRequest::ScopedMigrationRequest(OperationContext* opCtx,
const NamespaceString& nss,
@@ -93,12 +92,13 @@ ScopedMigrationRequest& ScopedMigrationRequest::operator=(ScopedMigrationRequest
StatusWith<ScopedMigrationRequest> ScopedMigrationRequest::writeMigration(
OperationContext* opCtx, const MigrateInfo& migrateInfo, bool waitForDelete) {
+ auto const grid = Grid::get(opCtx);
// Try to write a unique migration document to config.migrations.
const MigrationType migrationType(migrateInfo, waitForDelete);
for (int retry = 0; retry < kDuplicateKeyErrorMaxRetries; ++retry) {
- Status result = grid.catalogClient()->insertConfigDocument(
+ Status result = grid->catalogClient()->insertConfigDocument(
opCtx, MigrationType::ConfigNS, migrationType.toBSON(), kMajorityWriteConcern);
if (result == ErrorCodes::DuplicateKey) {
@@ -106,7 +106,7 @@ StatusWith<ScopedMigrationRequest> ScopedMigrationRequest::writeMigration(
// for the request because this migration request will join the active one once
// scheduled.
auto statusWithMigrationQueryResult =
- grid.shardRegistry()->getConfigShard()->exhaustiveFindOnConfig(
+ grid->shardRegistry()->getConfigShard()->exhaustiveFindOnConfig(
opCtx,
ReadPreferenceSetting{ReadPreference::PrimaryOnly},
repl::ReadConcernLevel::kLocalReadConcern,
diff --git a/src/mongo/db/s/chunk_splitter.cpp b/src/mongo/db/s/chunk_splitter.cpp
index f36ed19a0ea..d314b9c5f84 100644
--- a/src/mongo/db/s/chunk_splitter.cpp
+++ b/src/mongo/db/s/chunk_splitter.cpp
@@ -42,7 +42,6 @@
#include "mongo/db/s/split_chunk.h"
#include "mongo/db/s/split_vector.h"
#include "mongo/s/balancer_configuration.h"
-#include "mongo/s/catalog/sharding_catalog_client.h"
#include "mongo/s/catalog/type_chunk.h"
#include "mongo/s/catalog_cache.h"
#include "mongo/s/chunk_manager.h"
diff --git a/src/mongo/db/s/config/configsvr_drop_collection_command.cpp b/src/mongo/db/s/config/configsvr_drop_collection_command.cpp
index f9689722426..bffad346dc6 100644
--- a/src/mongo/db/s/config/configsvr_drop_collection_command.cpp
+++ b/src/mongo/db/s/config/configsvr_drop_collection_command.cpp
@@ -35,7 +35,6 @@
#include "mongo/db/repl/read_concern_args.h"
#include "mongo/db/repl/repl_client_info.h"
#include "mongo/s/catalog/dist_lock_manager.h"
-#include "mongo/s/catalog/sharding_catalog_client.h"
#include "mongo/s/catalog/sharding_catalog_manager.h"
#include "mongo/s/catalog/type_database.h"
#include "mongo/s/catalog_cache.h"
@@ -48,7 +47,6 @@
#include "mongo/util/scopeguard.h"
namespace mongo {
-
namespace {
MONGO_FP_DECLARE(setDropCollDistLockWait);
@@ -205,6 +203,7 @@ private:
shardId, cmdDropResult.response["writeConcernError"], *result);
}
};
+
} configsvrDropCollectionCmd;
} // namespace
diff --git a/src/mongo/db/s/config/configsvr_drop_database_command.cpp b/src/mongo/db/s/config/configsvr_drop_database_command.cpp
index 8a9d35df9e8..5a39eee3174 100644
--- a/src/mongo/db/s/config/configsvr_drop_database_command.cpp
+++ b/src/mongo/db/s/config/configsvr_drop_database_command.cpp
@@ -34,11 +34,9 @@
#include "mongo/db/operation_context.h"
#include "mongo/db/repl/repl_client_info.h"
#include "mongo/s/catalog/dist_lock_manager.h"
-#include "mongo/s/catalog/sharding_catalog_client.h"
#include "mongo/s/catalog/sharding_catalog_manager.h"
#include "mongo/s/catalog/type_database.h"
#include "mongo/s/catalog_cache.h"
-#include "mongo/s/client/shard_registry.h"
#include "mongo/s/grid.h"
#include "mongo/util/log.h"
#include "mongo/util/scopeguard.h"
diff --git a/src/mongo/db/s/config/configsvr_move_primary_command.cpp b/src/mongo/db/s/config/configsvr_move_primary_command.cpp
index 3ff60940242..ad02277cc69 100644
--- a/src/mongo/db/s/config/configsvr_move_primary_command.cpp
+++ b/src/mongo/db/s/config/configsvr_move_primary_command.cpp
@@ -40,7 +40,6 @@
#include "mongo/db/commands.h"
#include "mongo/db/operation_context.h"
#include "mongo/db/repl/repl_client_info.h"
-#include "mongo/s/catalog/sharding_catalog_client.h"
#include "mongo/s/catalog/sharding_catalog_manager.h"
#include "mongo/s/catalog/type_database.h"
#include "mongo/s/catalog_cache.h"
@@ -52,9 +51,6 @@
#include "mongo/util/scopeguard.h"
namespace mongo {
-
-using std::string;
-
namespace {
const WriteConcernOptions kMajorityWriteConcern(WriteConcernOptions::kMajority,
@@ -118,7 +114,7 @@ public:
auto movePrimaryRequest =
MovePrimary::parse(IDLParserErrorContext("ConfigSvrMovePrimary"), cmdObj);
- const string dbname = parseNs("", cmdObj);
+ const auto dbname = parseNs("", cmdObj);
uassert(
ErrorCodes::InvalidNamespace,
@@ -249,7 +245,7 @@ public:
// reload
catalogCache->purgeDatabase(dbname);
- const string oldPrimary = fromShard->getConnString().toString();
+ const auto oldPrimary = fromShard->getConnString().toString();
ScopedDbConnection fromconn(fromShard->getConnString());
ON_BLOCK_EXIT([&fromconn] { fromconn.done(); });
diff --git a/src/mongo/db/s/metadata_manager_test.cpp b/src/mongo/db/s/metadata_manager_test.cpp
index 040d4638c70..c66835e5135 100644
--- a/src/mongo/db/s/metadata_manager_test.cpp
+++ b/src/mongo/db/s/metadata_manager_test.cpp
@@ -40,7 +40,6 @@
#include "mongo/db/repl/replication_coordinator_mock.h"
#include "mongo/db/s/metadata_manager.h"
#include "mongo/db/s/sharding_state.h"
-#include "mongo/db/s/type_shard_identity.h"
#include "mongo/db/server_options.h"
#include "mongo/db/service_context.h"
#include "mongo/db/service_context_d_test_fixture.h"
diff --git a/src/mongo/db/s/migration_source_manager.cpp b/src/mongo/db/s/migration_source_manager.cpp
index 6c831b1a0ae..fb1ebee0293 100644
--- a/src/mongo/db/s/migration_source_manager.cpp
+++ b/src/mongo/db/s/migration_source_manager.cpp
@@ -45,11 +45,9 @@
#include "mongo/db/s/sharding_statistics.h"
#include "mongo/executor/task_executor.h"
#include "mongo/executor/task_executor_pool.h"
-#include "mongo/s/catalog/sharding_catalog_client.h"
#include "mongo/s/catalog/type_chunk.h"
#include "mongo/s/catalog/type_shard_collection.h"
#include "mongo/s/catalog_cache_loader.h"
-#include "mongo/s/client/shard_registry.h"
#include "mongo/s/grid.h"
#include "mongo/s/request_types/commit_chunk_migration_request_type.h"
#include "mongo/s/request_types/set_shard_version_request.h"
diff --git a/src/mongo/db/s/sharding_task_executor.cpp b/src/mongo/db/s/sharding_task_executor.cpp
deleted file mode 100644
index 5ba9ac969d1..00000000000
--- a/src/mongo/db/s/sharding_task_executor.cpp
+++ /dev/null
@@ -1,207 +0,0 @@
-/**
- * Copyright (C) 2017 MongoDB Inc.
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License, version 3,
- * as published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- *
- * As a special exception, the copyright holders give permission to link the
- * code of portions of this program with the OpenSSL library under certain
- * conditions as described in each individual source file and distribute
- * linked combinations including the program with the OpenSSL library. You
- * must comply with the GNU Affero General Public License in all respects for
- * all of the code used other than as permitted herein. If you modify file(s)
- * with this exception, you may extend this exception to your version of the
- * file(s), but you are not obligated to do so. If you do not wish to do so,
- * delete this exception statement from your version. If you delete this
- * exception statement from all source files in the program, then also delete
- * it in the license file.
- */
-
-#define MONGO_LOG_DEFAULT_COMPONENT mongo::logger::LogComponent::kSharding
-
-#include "mongo/platform/basic.h"
-
-#include "mongo/db/s/sharding_task_executor.h"
-
-#include "mongo/base/disallow_copying.h"
-#include "mongo/base/status_with.h"
-#include "mongo/bson/timestamp.h"
-#include "mongo/db/logical_time.h"
-#include "mongo/db/operation_time_tracker.h"
-#include "mongo/executor/thread_pool_task_executor.h"
-#include "mongo/rpc/get_status_from_command_result.h"
-#include "mongo/rpc/metadata/sharding_metadata.h"
-#include "mongo/s/client/shard_registry.h"
-#include "mongo/s/cluster_last_error_info.h"
-#include "mongo/s/grid.h"
-#include "mongo/util/log.h"
-#include "mongo/util/scopeguard.h"
-
-namespace mongo {
-namespace executor {
-
-namespace {
-const std::string kOperationTimeField = "operationTime";
-}
-
-ShardingTaskExecutor::ShardingTaskExecutor(std::unique_ptr<ThreadPoolTaskExecutor> executor)
- : _executor(std::move(executor)) {}
-
-void ShardingTaskExecutor::startup() {
- _executor->startup();
-}
-
-void ShardingTaskExecutor::shutdown() {
- _executor->shutdown();
-}
-
-void ShardingTaskExecutor::join() {
- _executor->join();
-}
-
-void ShardingTaskExecutor::appendDiagnosticBSON(mongo::BSONObjBuilder* builder) const {
- _executor->appendDiagnosticBSON(builder);
-}
-
-Date_t ShardingTaskExecutor::now() {
- return _executor->now();
-}
-
-StatusWith<TaskExecutor::EventHandle> ShardingTaskExecutor::makeEvent() {
- return _executor->makeEvent();
-}
-
-void ShardingTaskExecutor::signalEvent(const EventHandle& event) {
- return _executor->signalEvent(event);
-}
-
-StatusWith<TaskExecutor::CallbackHandle> ShardingTaskExecutor::onEvent(const EventHandle& event,
- const CallbackFn& work) {
- return _executor->onEvent(event, work);
-}
-
-void ShardingTaskExecutor::waitForEvent(const EventHandle& event) {
- _executor->waitForEvent(event);
-}
-
-StatusWith<stdx::cv_status> ShardingTaskExecutor::waitForEvent(OperationContext* opCtx,
- const EventHandle& event,
- Date_t deadline) {
- return _executor->waitForEvent(opCtx, event, deadline);
-}
-
-StatusWith<TaskExecutor::CallbackHandle> ShardingTaskExecutor::scheduleWork(
- const CallbackFn& work) {
- return _executor->scheduleWork(work);
-}
-
-StatusWith<TaskExecutor::CallbackHandle> ShardingTaskExecutor::scheduleWorkAt(
- Date_t when, const CallbackFn& work) {
- return _executor->scheduleWorkAt(when, work);
-}
-
-StatusWith<TaskExecutor::CallbackHandle> ShardingTaskExecutor::scheduleRemoteCommand(
- const RemoteCommandRequest& request, const RemoteCommandCallbackFn& cb) {
-
- // schedule the user's callback if there is not opCtx
- if (!request.opCtx) {
- return _executor->scheduleRemoteCommand(request, cb);
- }
-
- boost::optional<RemoteCommandRequest> newRequest;
-
- if (request.opCtx->getLogicalSessionId() && !request.cmdObj.hasField("lsid")) {
- newRequest.emplace(request);
- BSONObjBuilder bob(std::move(newRequest->cmdObj));
- {
- BSONObjBuilder subbob(bob.subobjStart("lsid"));
- request.opCtx->getLogicalSessionId()->serialize(&subbob);
- }
-
- newRequest->cmdObj = bob.obj();
- }
-
- std::shared_ptr<OperationTimeTracker> timeTracker = OperationTimeTracker::get(request.opCtx);
-
- auto clusterGLE = ClusterLastErrorInfo::get(request.opCtx->getClient());
-
- auto shardingCb = [timeTracker, clusterGLE, cb](
- const TaskExecutor::RemoteCommandCallbackArgs& args) {
- ON_BLOCK_EXIT([&cb, &args]() { cb(args); });
-
- // Update replica set monitor info.
- auto shard = grid.shardRegistry()->getShardForHostNoReload(args.request.target);
- if (!shard) {
- LOG(1) << "Could not find shard containing host: " << args.request.target.toString();
- }
-
- if (!args.response.isOK()) {
- if (shard) {
- shard->updateReplSetMonitor(args.request.target, args.response.status);
- }
- LOG(1) << "Error processing the remote request, not updating operationTime or gLE";
- return;
- }
-
- if (shard) {
- shard->updateReplSetMonitor(args.request.target,
- getStatusFromCommandResult(args.response.data));
- }
-
- // Update the logical clock.
- invariant(timeTracker);
- auto operationTime = args.response.data[kOperationTimeField];
- if (!operationTime.eoo()) {
- invariant(operationTime.type() == BSONType::bsonTimestamp);
- timeTracker->updateOperationTime(LogicalTime(operationTime.timestamp()));
- }
-
- // Update getLastError info for the client if we're tracking it.
- if (clusterGLE) {
- auto swShardingMetadata =
- rpc::ShardingMetadata::readFromMetadata(args.response.metadata);
- if (swShardingMetadata.isOK()) {
- auto shardingMetadata = std::move(swShardingMetadata.getValue());
-
- auto shardConn = ConnectionString::parse(args.request.target.toString());
- if (!shardConn.isOK()) {
- severe() << "got bad host string in saveGLEStats: " << args.request.target;
- }
-
- clusterGLE->addHostOpTime(shardConn.getValue(),
- HostOpTime(shardingMetadata.getLastOpTime(),
- shardingMetadata.getLastElectionId()));
- } else if (swShardingMetadata.getStatus() != ErrorCodes::NoSuchKey) {
- warning() << "Got invalid sharding metadata "
- << redact(swShardingMetadata.getStatus()) << " metadata object was '"
- << redact(args.response.metadata) << "'";
- }
- }
- };
-
- return _executor->scheduleRemoteCommand(newRequest ? *newRequest : request, shardingCb);
-}
-
-void ShardingTaskExecutor::cancel(const CallbackHandle& cbHandle) {
- _executor->cancel(cbHandle);
-}
-
-void ShardingTaskExecutor::wait(const CallbackHandle& cbHandle) {
- _executor->wait(cbHandle);
-}
-
-void ShardingTaskExecutor::appendConnectionStats(ConnectionPoolStats* stats) const {
- _executor->appendConnectionStats(stats);
-}
-
-} // namespace executor
-} // namespace mongo
diff --git a/src/mongo/db/s/sharding_task_executor.h b/src/mongo/db/s/sharding_task_executor.h
deleted file mode 100644
index 4c2571c684a..00000000000
--- a/src/mongo/db/s/sharding_task_executor.h
+++ /dev/null
@@ -1,82 +0,0 @@
-/**
- * Copyright (C) 2017 MongoDB Inc.
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License, version 3,
- * as published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- *
- * As a special exception, the copyright holders give permission to link the
- * code of portions of this program with the OpenSSL library under certain
- * conditions as described in each individual source file and distribute
- * linked combinations including the program with the OpenSSL library. You
- * must comply with the GNU Affero General Public License in all respects for
- * all of the code used other than as permitted herein. If you modify file(s)
- * with this exception, you may extend this exception to your version of the
- * file(s), but you are not obligated to do so. If you do not wish to do so,
- * delete this exception statement from your version. If you delete this
- * exception statement from all source files in the program, then also delete
- * it in the license file.
- */
-
-#pragma once
-
-#include <memory>
-
-#include "mongo/base/disallow_copying.h"
-#include "mongo/base/status_with.h"
-#include "mongo/executor/task_executor.h"
-#include "mongo/stdx/condition_variable.h"
-#include "mongo/stdx/list.h"
-#include "mongo/stdx/mutex.h"
-
-namespace mongo {
-namespace executor {
-
-struct ConnectionPoolStats;
-class ThreadPoolTaskExecutor;
-
-/**
- * Implementation of a TaskExecutor that uses ThreadPoolTaskExecutor to submit tasks and allows to
- * override methods if needed.
- */
-class ShardingTaskExecutor final : public TaskExecutor {
- MONGO_DISALLOW_COPYING(ShardingTaskExecutor);
-
-public:
- ShardingTaskExecutor(std::unique_ptr<ThreadPoolTaskExecutor> executor);
-
- void startup() override;
- void shutdown() override;
- void join() override;
- void appendDiagnosticBSON(BSONObjBuilder* builder) const override;
- Date_t now() override;
- StatusWith<EventHandle> makeEvent() override;
- void signalEvent(const EventHandle& event) override;
- StatusWith<CallbackHandle> onEvent(const EventHandle& event, const CallbackFn& work) override;
- void waitForEvent(const EventHandle& event) override;
- StatusWith<stdx::cv_status> waitForEvent(OperationContext* opCtx,
- const EventHandle& event,
- Date_t deadline) override;
- StatusWith<CallbackHandle> scheduleWork(const CallbackFn& work) override;
- StatusWith<CallbackHandle> scheduleWorkAt(Date_t when, const CallbackFn& work) override;
- StatusWith<CallbackHandle> scheduleRemoteCommand(const RemoteCommandRequest& request,
- const RemoteCommandCallbackFn& cb) override;
- void cancel(const CallbackHandle& cbHandle) override;
- void wait(const CallbackHandle& cbHandle) override;
-
- void appendConnectionStats(ConnectionPoolStats* stats) const override;
-
-private:
- std::unique_ptr<ThreadPoolTaskExecutor> _executor;
-};
-
-} // namespace executor
-} // namespace mongo
diff --git a/src/mongo/db/server_options.cpp b/src/mongo/db/server_options.cpp
index d37442e4519..bc01417b6f8 100644
--- a/src/mongo/db/server_options.cpp
+++ b/src/mongo/db/server_options.cpp
@@ -25,6 +25,8 @@
* then also delete it in the license file.
*/
+#include "mongo/platform/basic.h"
+
#include "mongo/db/server_options.h"
namespace mongo {
diff --git a/src/mongo/db/server_options.h b/src/mongo/db/server_options.h
index 826f5760313..478fdbab935 100644
--- a/src/mongo/db/server_options.h
+++ b/src/mongo/db/server_options.h
@@ -30,7 +30,6 @@
#include "mongo/db/jsobj.h"
#include "mongo/platform/atomic_word.h"
#include "mongo/platform/process_id.h"
-#include "mongo/s/catalog/sharding_catalog_client.h"
namespace mongo {
diff --git a/src/mongo/db/service_context_d.cpp b/src/mongo/db/service_context_d.cpp
index 15e39126539..980bea314b0 100644
--- a/src/mongo/db/service_context_d.cpp
+++ b/src/mongo/db/service_context_d.cpp
@@ -36,6 +36,7 @@
#include "mongo/base/initializer.h"
#include "mongo/db/client.h"
#include "mongo/db/concurrency/lock_state.h"
+#include "mongo/db/operation_context.h"
#include "mongo/db/service_entry_point_mongod.h"
#include "mongo/db/storage/storage_engine.h"
#include "mongo/db/storage/storage_engine_lock_file.h"