diff options
author | ADAM David Alan Martin <adam.martin@10gen.com> | 2018-10-05 17:59:07 -0400 |
---|---|---|
committer | ADAM David Alan Martin <adam.martin@10gen.com> | 2018-10-05 17:59:07 -0400 |
commit | a55b0131e76846491a23da09f812acede0f7cf46 (patch) | |
tree | 58521e21d8b3d472e997d2f23e8e8e628fb674a2 /src/mongo/s | |
parent | 2e313aa04c07080e0734e694f43f99f4bc8ddb94 (diff) | |
download | mongo-a55b0131e76846491a23da09f812acede0f7cf46.tar.gz |
SERVER-37431 Make `logChange` not return `Status`.
This eliminates the need for a lot of superfluous `.ignore()`
calls. It also cleans up a lot of `.transitional_ignore()`
calls.
Diffstat (limited to 'src/mongo/s')
6 files changed, 36 insertions, 26 deletions
diff --git a/src/mongo/s/catalog/sharding_catalog_client.h b/src/mongo/s/catalog/sharding_catalog_client.h index ef0337dbf1a..fbcb9f71ec6 100644 --- a/src/mongo/s/catalog/sharding_catalog_client.h +++ b/src/mongo/s/catalog/sharding_catalog_client.h @@ -277,11 +277,21 @@ public: /** * Writes a diagnostic event to the change log. */ - virtual Status logChange(OperationContext* opCtx, - const std::string& what, - const std::string& ns, - const BSONObj& detail, - const WriteConcernOptions& writeConcern) = 0; + virtual Status logChangeChecked(OperationContext* opCtx, + const std::string& what, + const std::string& ns, + const BSONObj& detail, + const WriteConcernOptions& writeConcern) = 0; + + void logChange(OperationContext* const opCtx, + const std::string& what, + const std::string& ns, + const BSONObj& detail, + const WriteConcernOptions& writeConcern) { + // It is safe to ignore the results of `logChangeChecked` in many cases, as the + // failure to log a change is often of no consequence. + logChangeChecked(opCtx, what, ns, detail, writeConcern).ignore(); + } /** * Reads global sharding settings from the confing.settings collection. The key parameter is diff --git a/src/mongo/s/catalog/sharding_catalog_client_impl.cpp b/src/mongo/s/catalog/sharding_catalog_client_impl.cpp index 69944160e0b..1adfe48b9fc 100644 --- a/src/mongo/s/catalog/sharding_catalog_client_impl.cpp +++ b/src/mongo/s/catalog/sharding_catalog_client_impl.cpp @@ -176,11 +176,11 @@ Status ShardingCatalogClientImpl::logAction(OperationContext* opCtx, ShardingCatalogClient::kMajorityWriteConcern); } -Status ShardingCatalogClientImpl::logChange(OperationContext* opCtx, - const std::string& what, - const std::string& ns, - const BSONObj& detail, - const WriteConcernOptions& writeConcern) { +Status ShardingCatalogClientImpl::logChangeChecked(OperationContext* opCtx, + const std::string& what, + const std::string& ns, + const BSONObj& detail, + const WriteConcernOptions& writeConcern) { invariant(serverGlobalParams.clusterRole == ClusterRole::ConfigServer || writeConcern.wMode == WriteConcernOptions::kMajority); if (_changeLogCollectionCreated.load() == 0) { diff --git a/src/mongo/s/catalog/sharding_catalog_client_impl.h b/src/mongo/s/catalog/sharding_catalog_client_impl.h index 6ef87d060ff..337e1f932ce 100644 --- a/src/mongo/s/catalog/sharding_catalog_client_impl.h +++ b/src/mongo/s/catalog/sharding_catalog_client_impl.h @@ -76,11 +76,11 @@ public: const std::string& ns, const BSONObj& detail) override; - Status logChange(OperationContext* opCtx, - const std::string& what, - const std::string& ns, - const BSONObj& detail, - const WriteConcernOptions& writeConcern) override; + Status logChangeChecked(OperationContext* opCtx, + const std::string& what, + const std::string& ns, + const BSONObj& detail, + const WriteConcernOptions& writeConcern) override; StatusWith<repl::OpTimeWith<DatabaseType>> getDatabase( OperationContext* opCtx, diff --git a/src/mongo/s/catalog/sharding_catalog_client_mock.cpp b/src/mongo/s/catalog/sharding_catalog_client_mock.cpp index b1a1633f4b0..6bf5edbb7a3 100644 --- a/src/mongo/s/catalog/sharding_catalog_client_mock.cpp +++ b/src/mongo/s/catalog/sharding_catalog_client_mock.cpp @@ -148,11 +148,11 @@ Status ShardingCatalogClientMock::logAction(OperationContext* opCtx, return {ErrorCodes::InternalError, "Method not implemented"}; } -Status ShardingCatalogClientMock::logChange(OperationContext* opCtx, - const std::string& what, - const std::string& ns, - const BSONObj& detail, - const WriteConcernOptions& writeConcern) { +Status ShardingCatalogClientMock::logChangeChecked(OperationContext* opCtx, + const std::string& what, + const std::string& ns, + const BSONObj& detail, + const WriteConcernOptions& writeConcern) { return {ErrorCodes::InternalError, "Method not implemented"}; } diff --git a/src/mongo/s/catalog/sharding_catalog_client_mock.h b/src/mongo/s/catalog/sharding_catalog_client_mock.h index d98c644792d..3662f36a796 100644 --- a/src/mongo/s/catalog/sharding_catalog_client_mock.h +++ b/src/mongo/s/catalog/sharding_catalog_client_mock.h @@ -106,11 +106,11 @@ public: const std::string& ns, const BSONObj& detail) override; - Status logChange(OperationContext* opCtx, - const std::string& what, - const std::string& ns, - const BSONObj& detail, - const WriteConcernOptions& writeConcern) override; + Status logChangeChecked(OperationContext* opCtx, + const std::string& what, + const std::string& ns, + const BSONObj& detail, + const WriteConcernOptions& writeConcern) override; StatusWith<BSONObj> getGlobalSettings(OperationContext* opCtx, StringData key) override; diff --git a/src/mongo/s/catalog/sharding_catalog_log_change_test.cpp b/src/mongo/s/catalog/sharding_catalog_log_change_test.cpp index 9653888feb9..48764cc53ec 100644 --- a/src/mongo/s/catalog/sharding_catalog_log_change_test.cpp +++ b/src/mongo/s/catalog/sharding_catalog_log_change_test.cpp @@ -178,7 +178,7 @@ protected: Status log(const std::string& what, const std::string& ns, const BSONObj& detail) { if (_configCollType == ChangeLog) { - return catalogClient()->logChange( + return catalogClient()->logChangeChecked( operationContext(), what, ns, detail, ShardingCatalogClient::kMajorityWriteConcern); } else { return catalogClient()->logAction(operationContext(), what, ns, detail); |