summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorjannaerin <golden.janna@gmail.com>2018-03-29 10:57:49 -0400
committerjannaerin <golden.janna@gmail.com>2018-03-29 11:59:51 -0400
commitffe832ba22cc229478fc8b845117cb94993b6039 (patch)
tree5b433eda1f8a8ac56b7fd02212de71b14d6594c1 /src
parentb0f022596c6b80e5d2d331f8fe3172c28954c027 (diff)
downloadmongo-ffe832ba22cc229478fc8b845117cb94993b6039.tar.gz
SERVER-34145 Add stub methods for persisting DB version on primary
Diffstat (limited to 'src')
-rw-r--r--src/mongo/db/s/catalog_cache_loader_mock.cpp6
-rw-r--r--src/mongo/db/s/catalog_cache_loader_mock.h4
-rw-r--r--src/mongo/db/s/read_only_catalog_cache_loader.cpp6
-rw-r--r--src/mongo/db/s/read_only_catalog_cache_loader.h4
-rw-r--r--src/mongo/db/s/shard_server_catalog_cache_loader.cpp6
-rw-r--r--src/mongo/db/s/shard_server_catalog_cache_loader.h4
-rw-r--r--src/mongo/s/catalog_cache_loader.h16
-rw-r--r--src/mongo/s/config_server_catalog_cache_loader.cpp6
-rw-r--r--src/mongo/s/config_server_catalog_cache_loader.h4
9 files changed, 56 insertions, 0 deletions
diff --git a/src/mongo/db/s/catalog_cache_loader_mock.cpp b/src/mongo/db/s/catalog_cache_loader_mock.cpp
index 7b3a3b03c2d..a63347018c8 100644
--- a/src/mongo/db/s/catalog_cache_loader_mock.cpp
+++ b/src/mongo/db/s/catalog_cache_loader_mock.cpp
@@ -124,6 +124,12 @@ std::shared_ptr<Notification<void>> CatalogCacheLoaderMock::getChunksSince(
return notify;
}
+void CatalogCacheLoaderMock::getDatabase(
+ StringData dbName,
+ stdx::function<void(OperationContext*, StatusWith<DatabaseType>)> callbackFn) {
+ // Not implemented
+}
+
void CatalogCacheLoaderMock::setCollectionRefreshReturnValue(
StatusWith<CollectionType> statusWithCollectionType) {
_swCollectionReturnValue = std::move(statusWithCollectionType);
diff --git a/src/mongo/db/s/catalog_cache_loader_mock.h b/src/mongo/db/s/catalog_cache_loader_mock.h
index 18da4671f2b..50db1c4a7b5 100644
--- a/src/mongo/db/s/catalog_cache_loader_mock.h
+++ b/src/mongo/db/s/catalog_cache_loader_mock.h
@@ -59,6 +59,10 @@ public:
stdx::function<void(OperationContext*, StatusWith<CollectionAndChangedChunks>)> callbackFn)
override;
+ void getDatabase(
+ StringData dbName,
+ stdx::function<void(OperationContext*, StatusWith<DatabaseType>)> callbackFn) override;
+
/**
* Sets the mocked collection entry result that getChunksSince will use to construct its return
* value.
diff --git a/src/mongo/db/s/read_only_catalog_cache_loader.cpp b/src/mongo/db/s/read_only_catalog_cache_loader.cpp
index 1b8175cba41..55fa0f2fab4 100644
--- a/src/mongo/db/s/read_only_catalog_cache_loader.cpp
+++ b/src/mongo/db/s/read_only_catalog_cache_loader.cpp
@@ -46,4 +46,10 @@ std::shared_ptr<Notification<void>> ReadOnlyCatalogCacheLoader::getChunksSince(
return _configServerLoader.getChunksSince(nss, version, callbackFn);
}
+void ReadOnlyCatalogCacheLoader::getDatabase(
+ StringData dbName,
+ stdx::function<void(OperationContext*, StatusWith<DatabaseType>)> callbackFn) {
+ // stub
+}
+
} // namespace mongo
diff --git a/src/mongo/db/s/read_only_catalog_cache_loader.h b/src/mongo/db/s/read_only_catalog_cache_loader.h
index eca54264caf..368f18f4881 100644
--- a/src/mongo/db/s/read_only_catalog_cache_loader.h
+++ b/src/mongo/db/s/read_only_catalog_cache_loader.h
@@ -51,6 +51,10 @@ public:
stdx::function<void(OperationContext*, StatusWith<CollectionAndChangedChunks>)> callbackFn)
override;
+ void getDatabase(
+ StringData dbName,
+ stdx::function<void(OperationContext*, StatusWith<DatabaseType>)> callbackFn) override;
+
private:
ConfigServerCatalogCacheLoader _configServerLoader;
};
diff --git a/src/mongo/db/s/shard_server_catalog_cache_loader.cpp b/src/mongo/db/s/shard_server_catalog_cache_loader.cpp
index 4f831c4382f..a409b409feb 100644
--- a/src/mongo/db/s/shard_server_catalog_cache_loader.cpp
+++ b/src/mongo/db/s/shard_server_catalog_cache_loader.cpp
@@ -381,6 +381,12 @@ std::shared_ptr<Notification<void>> ShardServerCatalogCacheLoader::getChunksSinc
return notify;
}
+void ShardServerCatalogCacheLoader::getDatabase(
+ StringData dbName,
+ stdx::function<void(OperationContext*, StatusWith<DatabaseType>)> callbackFn) {
+ // stub method
+}
+
void ShardServerCatalogCacheLoader::waitForCollectionFlush(OperationContext* opCtx,
const NamespaceString& nss) {
stdx::unique_lock<stdx::mutex> lg(_mutex);
diff --git a/src/mongo/db/s/shard_server_catalog_cache_loader.h b/src/mongo/db/s/shard_server_catalog_cache_loader.h
index 4a6debf8326..867ae7e2b12 100644
--- a/src/mongo/db/s/shard_server_catalog_cache_loader.h
+++ b/src/mongo/db/s/shard_server_catalog_cache_loader.h
@@ -89,6 +89,10 @@ public:
stdx::function<void(OperationContext*, StatusWith<CollectionAndChangedChunks>)> callbackFn)
override;
+ void getDatabase(
+ StringData dbName,
+ stdx::function<void(OperationContext*, StatusWith<DatabaseType>)> callbackFn) override;
+
void waitForCollectionFlush(OperationContext* opCtx, const NamespaceString& nss) override;
private:
diff --git a/src/mongo/s/catalog_cache_loader.h b/src/mongo/s/catalog_cache_loader.h
index ebafdff76fd..7f0737eed77 100644
--- a/src/mongo/s/catalog_cache_loader.h
+++ b/src/mongo/s/catalog_cache_loader.h
@@ -35,6 +35,7 @@
#include "mongo/base/string_data.h"
#include "mongo/s/catalog/type_chunk.h"
#include "mongo/s/catalog/type_collection.h"
+#include "mongo/s/catalog/type_database.h"
#include "mongo/s/chunk_version.h"
#include "mongo/stdx/memory.h"
#include "mongo/util/concurrency/notification.h"
@@ -126,6 +127,21 @@ public:
callbackFn) = 0;
/**
+ * Non-blocking call, which requests the most recent db version for the given dbName from the
+ * the persistent metadata store and invokes the callback function with the result.
+ * The callback function must never throw - it is a fatal error to do so.
+ *
+ * If for some reason the asynchronous fetch operation cannot be dispatched (for example on
+ * shutdown), throws a DBException. Otherwise it is guaranteed that the callback function will
+ * be invoked even on error.
+ *
+ * The callbackFn object must not be destroyed until it has been called.
+ */
+ virtual void getDatabase(
+ StringData dbName,
+ stdx::function<void(OperationContext*, StatusWith<DatabaseType>)> callbackFn) = 0;
+
+ /**
* Waits for any pending changes for the specified collection to be persisted locally (not
* necessarily replicated). If newer changes come after this method has started running, they
* will not be waited for except if there is a drop.
diff --git a/src/mongo/s/config_server_catalog_cache_loader.cpp b/src/mongo/s/config_server_catalog_cache_loader.cpp
index 49bbe011939..c7a748ca40f 100644
--- a/src/mongo/s/config_server_catalog_cache_loader.cpp
+++ b/src/mongo/s/config_server_catalog_cache_loader.cpp
@@ -186,4 +186,10 @@ std::shared_ptr<Notification<void>> ConfigServerCatalogCacheLoader::getChunksSin
return notify;
}
+void ConfigServerCatalogCacheLoader::getDatabase(
+ StringData dbName,
+ stdx::function<void(OperationContext*, StatusWith<DatabaseType>)> callbackFn) {
+ // stub
+}
+
} // namespace mongo
diff --git a/src/mongo/s/config_server_catalog_cache_loader.h b/src/mongo/s/config_server_catalog_cache_loader.h
index 5911dcb897a..2d2d246149f 100644
--- a/src/mongo/s/config_server_catalog_cache_loader.h
+++ b/src/mongo/s/config_server_catalog_cache_loader.h
@@ -53,6 +53,10 @@ public:
stdx::function<void(OperationContext*, StatusWith<CollectionAndChangedChunks>)> callbackFn)
override;
+ void getDatabase(
+ StringData dbName,
+ stdx::function<void(OperationContext*, StatusWith<DatabaseType>)> callbackFn) override;
+
private:
// Thread pool to be used to perform metadata load
ThreadPool _threadPool;