summaryrefslogtreecommitdiff
path: root/src/mongo/db/storage/wiredtiger
diff options
context:
space:
mode:
authorAlex Gorrod <alexander.gorrod@mongodb.com>2017-04-21 06:51:55 +1000
committerAlex Gorrod <alexander.gorrod@mongodb.com>2017-04-21 06:51:55 +1000
commit8b437e7a762e3ef99848659dc0d68df1e2add0a4 (patch)
tree77abe20033b2f343e094db49839ee4b858682900 /src/mongo/db/storage/wiredtiger
parentba040d4d48acda02caa4c6fe05da94f2ec5ef238 (diff)
downloadmongo-8b437e7a762e3ef99848659dc0d68df1e2add0a4.tar.gz
SERVER-26239 Improve handling of WT_CACHE_FULL for inMemory storage engine
Diffstat (limited to 'src/mongo/db/storage/wiredtiger')
-rw-r--r--src/mongo/db/storage/wiredtiger/wiredtiger_customization_hooks.cpp34
-rw-r--r--src/mongo/db/storage/wiredtiger/wiredtiger_customization_hooks.h75
2 files changed, 8 insertions, 101 deletions
diff --git a/src/mongo/db/storage/wiredtiger/wiredtiger_customization_hooks.cpp b/src/mongo/db/storage/wiredtiger/wiredtiger_customization_hooks.cpp
index d14b33de5f7..e40d3a58edb 100644
--- a/src/mongo/db/storage/wiredtiger/wiredtiger_customization_hooks.cpp
+++ b/src/mongo/db/storage/wiredtiger/wiredtiger_customization_hooks.cpp
@@ -31,12 +31,9 @@
#include "mongo/db/storage/wiredtiger/wiredtiger_customization_hooks.h"
-#include <boost/filesystem/path.hpp>
-
#include "mongo/base/init.h"
#include "mongo/base/string_data.h"
#include "mongo/db/service_context.h"
-#include "mongo/db/storage/data_protector.h"
#include "mongo/stdx/memory.h"
namespace mongo {
@@ -44,7 +41,7 @@ namespace mongo {
/* Make a WiredTigerCustomizationHooks pointer a decoration on the global ServiceContext */
MONGO_INITIALIZER_WITH_PREREQUISITES(SetWiredTigerCustomizationHooks, ("SetGlobalEnvironment"))
(InitializerContext* context) {
- auto customizationHooks = stdx::make_unique<EmptyWiredTigerCustomizationHooks>();
+ auto customizationHooks = stdx::make_unique<WiredTigerCustomizationHooks>();
WiredTigerCustomizationHooks::set(getGlobalServiceContext(), std::move(customizationHooks));
return Status::OK();
@@ -66,37 +63,14 @@ WiredTigerCustomizationHooks* WiredTigerCustomizationHooks::get(ServiceContext*
return getCustomizationHooks(service).get();
}
-EmptyWiredTigerCustomizationHooks::~EmptyWiredTigerCustomizationHooks() {}
-
-bool EmptyWiredTigerCustomizationHooks::enabled() const {
- return false;
-}
+WiredTigerCustomizationHooks::~WiredTigerCustomizationHooks() {}
-bool EmptyWiredTigerCustomizationHooks::restartRequired() {
+bool WiredTigerCustomizationHooks::enabled() const {
return false;
}
-std::string EmptyWiredTigerCustomizationHooks::getTableCreateConfig(StringData tableName) {
- return "";
-}
-
-std::unique_ptr<DataProtector> EmptyWiredTigerCustomizationHooks::getDataProtector() {
- return std::unique_ptr<DataProtector>();
-}
-
-boost::filesystem::path EmptyWiredTigerCustomizationHooks::getProtectedPathSuffix() {
+std::string WiredTigerCustomizationHooks::getTableCreateConfig(StringData tableName) {
return "";
}
-Status EmptyWiredTigerCustomizationHooks::protectTmpData(
- const uint8_t* in, size_t inLen, uint8_t* out, size_t outLen, size_t* resultLen) {
- return Status(ErrorCodes::InternalError,
- "Customization hooks must be enabled to use preprocessTmpData.");
-}
-
-Status EmptyWiredTigerCustomizationHooks::unprotectTmpData(
- const uint8_t* in, size_t inLen, uint8_t* out, size_t outLen, size_t* resultLen) {
- return Status(ErrorCodes::InternalError,
- "Customization hooks must be enabled to use postprocessTmpData.");
-}
} // namespace mongo
diff --git a/src/mongo/db/storage/wiredtiger/wiredtiger_customization_hooks.h b/src/mongo/db/storage/wiredtiger/wiredtiger_customization_hooks.h
index e78995481bd..1ff86a8799e 100644
--- a/src/mongo/db/storage/wiredtiger/wiredtiger_customization_hooks.h
+++ b/src/mongo/db/storage/wiredtiger/wiredtiger_customization_hooks.h
@@ -32,20 +32,11 @@
#include <memory>
#include <string>
-#include "mongo/base/disallow_copying.h"
-#include "mongo/db/jsobj.h"
-
-namespace boost {
-namespace filesystem {
-class path;
-} // namespace filesystem
-} // namespace boost
-
namespace mongo {
-class DataProtector;
class StringData;
class ServiceContext;
+// Interface and default implementation for WiredTiger customization hooks
class WiredTigerCustomizationHooks {
public:
static void set(ServiceContext* service,
@@ -53,76 +44,18 @@ public:
static WiredTigerCustomizationHooks* get(ServiceContext* service);
- virtual ~WiredTigerCustomizationHooks() = default;
+ virtual ~WiredTigerCustomizationHooks();
/**
* Returns true if the customization hooks are enabled.
*/
- virtual bool enabled() const = 0;
-
- /**
- * Perform any encryption engine initialization/sanity checking that needs to happen after
- * storage engine initialization but before the server starts accepting incoming connections.
- *
- * Returns true if the server needs to be rebooted because of configuration changes.
- */
- virtual bool restartRequired() = 0;
+ virtual bool enabled() const;
/**
* Gets an additional configuration string for the provided table name on a
* `WT_SESSION::create` call.
*/
- virtual std::string getTableCreateConfig(StringData tableName) = 0;
-
- /**
- * Returns the maximum size addition when doing transforming temp data.
- */
- size_t additionalBytesForProtectedBuffer() {
- return 33;
- }
-
- /**
- * Get the data protector object
- */
- virtual std::unique_ptr<DataProtector> getDataProtector() = 0;
-
- /**
- * Get an implementation specific path suffix to tag files with
- */
- virtual boost::filesystem::path getProtectedPathSuffix() = 0;
-
- /**
- * Transform temp data to non-readable form before writing it to disk.
- */
- virtual Status protectTmpData(
- const uint8_t* in, size_t inLen, uint8_t* out, size_t outLen, size_t* resultLen) = 0;
-
- /**
- * Tranforms temp data back to readable form, after reading from disk.
- */
- virtual Status unprotectTmpData(
- const uint8_t* in, size_t inLen, uint8_t* out, size_t outLen, size_t* resultLen) = 0;
+ virtual std::string getTableCreateConfig(StringData tableName);
};
-// Empty default implementation of the abstract class WiredTigerCustomizationHooks
-class EmptyWiredTigerCustomizationHooks : public WiredTigerCustomizationHooks {
-public:
- ~EmptyWiredTigerCustomizationHooks() override;
-
- bool enabled() const override;
-
- bool restartRequired() override;
-
- std::string getTableCreateConfig(StringData tableName) override;
-
- std::unique_ptr<DataProtector> getDataProtector() override;
-
- boost::filesystem::path getProtectedPathSuffix() override;
-
- Status protectTmpData(
- const uint8_t* in, size_t inLen, uint8_t* out, size_t outLen, size_t* resultLen) override;
-
- Status unprotectTmpData(
- const uint8_t* in, size_t inLen, uint8_t* out, size_t outLen, size_t* resultLen) override;
-};
} // namespace mongo