aboutsummaryrefslogtreecommitdiffstats
path: root/storage/src/vespa
diff options
context:
space:
mode:
authorHenning Baldersheim <balder@yahoo-inc.com>2024-02-03 13:48:51 +0000
committerHenning Baldersheim <balder@yahoo-inc.com>2024-02-05 11:31:59 +0000
commit88798d4e0191eecb4aac41091d643ce5b30ea6d4 (patch)
treed9525cf87ed93549cc1c05557fe5ccf339c2c34c /storage/src/vespa
parent545f30567215d601c3a4d7a757519e88d143396c (diff)
- Remove multibit_split form config, as it is always off, but leave it for tests.
- Reduce penetration of generated StorFilestorConfig.
Diffstat (limited to 'storage/src/vespa')
-rw-r--r--storage/src/vespa/storage/persistence/filestorage/filestormanager.cpp7
-rw-r--r--storage/src/vespa/storage/persistence/filestorage/filestormanager.h17
-rw-r--r--storage/src/vespa/storage/persistence/persistencehandler.cpp7
-rw-r--r--storage/src/vespa/storage/persistence/persistencehandler.h4
-rw-r--r--storage/src/vespa/storage/persistence/splitjoinhandler.h1
-rw-r--r--storage/src/vespa/storage/storageserver/servicelayernode.cpp3
-rw-r--r--storage/src/vespa/storage/storageserver/servicelayernode.h17
7 files changed, 35 insertions, 21 deletions
diff --git a/storage/src/vespa/storage/persistence/filestorage/filestormanager.cpp b/storage/src/vespa/storage/persistence/filestorage/filestormanager.cpp
index 093c11fb913..00c72a17933 100644
--- a/storage/src/vespa/storage/persistence/filestorage/filestormanager.cpp
+++ b/storage/src/vespa/storage/persistence/filestorage/filestormanager.cpp
@@ -25,6 +25,7 @@
#include <vespa/vespalib/util/sequencedtaskexecutor.h>
#include <vespa/vespalib/util/string_escape.h>
#include <vespa/vespalib/util/stringfmt.h>
+#include <vespa/config-stor-filestor.h>
#include <vespa/config/helper/configfetcher.hpp>
#include <thread>
@@ -180,6 +181,8 @@ computeAllPossibleHandlerThreads(const vespa::config::content::StorFilestorConfi
1; // Async cluster state processing thread (might be a pessimization to include here...)
}
+constexpr bool DISABLE_MULTIBIT_SPLIT = false;
+
}
PersistenceHandler &
@@ -189,8 +192,8 @@ FileStorManager::createRegisteredHandler(const ServiceLayerComponent & component
size_t index = _persistenceHandlers.size();
assert(index < _metrics->threads.size());
_persistenceHandlers.push_back(
- std::make_unique<PersistenceHandler>(*_sequencedExecutor, component,
- *_config, *_provider, *_filestorHandler,
+ std::make_unique<PersistenceHandler>(*_sequencedExecutor, component, _config->bucketMergeChunkSize,
+ DISABLE_MULTIBIT_SPLIT, *_provider, *_filestorHandler,
*_bucketOwnershipNotifier, *_metrics->threads[index]));
return *_persistenceHandlers.back();
}
diff --git a/storage/src/vespa/storage/persistence/filestorage/filestormanager.h b/storage/src/vespa/storage/persistence/filestorage/filestormanager.h
index 96cff8dfeee..e68f8bfe27b 100644
--- a/storage/src/vespa/storage/persistence/filestorage/filestormanager.h
+++ b/storage/src/vespa/storage/persistence/filestorage/filestormanager.h
@@ -12,7 +12,6 @@
#include <vespa/storage/common/servicelayercomponent.h>
#include <vespa/storage/common/statusmessages.h>
#include <vespa/storage/common/storagelinkqueued.h>
-#include <vespa/config-stor-filestor.h>
#include <vespa/storage/persistence/diskthread.h>
#include <vespa/storage/common/nodestateupdater.h>
@@ -26,6 +25,10 @@ namespace config {
}
namespace vespalib { class IDestructorCallback; }
+namespace vespa::config::content::internal {
+ class InternalStorFilestorType;
+}
+
namespace storage {
namespace api {
class ReturnCode;
@@ -50,7 +53,7 @@ class FileStorManager : public StorageLinkQueued,
public MessageSender,
public spi::BucketExecutor
{
- using StorFilestorConfig = vespa::config::content::StorFilestorConfig;
+ using StorFilestorConfig = vespa::config::content::internal::InternalStorFilestorType;
ServiceLayerComponentRegister & _compReg;
ServiceLayerComponent _component;
@@ -62,10 +65,10 @@ class FileStorManager : public StorageLinkQueued,
std::vector<std::unique_ptr<DiskThread>> _threads;
std::unique_ptr<BucketOwnershipNotifier> _bucketOwnershipNotifier;
- std::unique_ptr<vespa::config::content::StorFilestorConfig> _config;
- bool _use_async_message_handling_on_schedule;
- std::shared_ptr<FileStorMetrics> _metrics;
- std::unique_ptr<FileStorHandler> _filestorHandler;
+ std::unique_ptr<StorFilestorConfig> _config;
+ bool _use_async_message_handling_on_schedule;
+ std::shared_ptr<FileStorMetrics> _metrics;
+ std::unique_ptr<FileStorHandler> _filestorHandler;
std::unique_ptr<vespalib::ISequencedTaskExecutor> _sequencedExecutor;
bool _closed;
@@ -111,7 +114,7 @@ public:
const FileStorMetrics& get_metrics() const { return *_metrics; }
- void on_configure(const vespa::config::content::StorFilestorConfig& config);
+ void on_configure(const StorFilestorConfig& config);
private:
PersistenceHandler & createRegisteredHandler(const ServiceLayerComponent & component);
diff --git a/storage/src/vespa/storage/persistence/persistencehandler.cpp b/storage/src/vespa/storage/persistence/persistencehandler.cpp
index 87c1f83794e..0612798b43a 100644
--- a/storage/src/vespa/storage/persistence/persistencehandler.cpp
+++ b/storage/src/vespa/storage/persistence/persistencehandler.cpp
@@ -11,7 +11,8 @@ namespace storage {
PersistenceHandler::PersistenceHandler(vespalib::ISequencedTaskExecutor & sequencedExecutor,
const ServiceLayerComponent & component,
- const vespa::config::content::StorFilestorConfig & cfg,
+ uint32_t bucketMergeChunkSize,
+ bool multibitSplit,
spi::PersistenceProvider& provider,
FileStorHandler& filestorHandler,
BucketOwnershipNotifier & bucketOwnershipNotifier,
@@ -19,9 +20,9 @@ PersistenceHandler::PersistenceHandler(vespalib::ISequencedTaskExecutor & sequen
: _clock(component.getClock()),
_env(component, filestorHandler, metrics, provider),
_processAllHandler(_env, provider),
- _mergeHandler(_env, provider, component.cluster_context(), _clock, sequencedExecutor, cfg.bucketMergeChunkSize),
+ _mergeHandler(_env, provider, component.cluster_context(), _clock, sequencedExecutor, bucketMergeChunkSize),
_asyncHandler(_env, provider, bucketOwnershipNotifier, sequencedExecutor, component.getBucketIdFactory()),
- _splitJoinHandler(_env, provider, bucketOwnershipNotifier, cfg.enableMultibitSplitOptimalization),
+ _splitJoinHandler(_env, provider, bucketOwnershipNotifier, multibitSplit),
_simpleHandler(_env, provider, component.getBucketIdFactory())
{
}
diff --git a/storage/src/vespa/storage/persistence/persistencehandler.h b/storage/src/vespa/storage/persistence/persistencehandler.h
index 1835b56528e..0da518a1cfa 100644
--- a/storage/src/vespa/storage/persistence/persistencehandler.h
+++ b/storage/src/vespa/storage/persistence/persistencehandler.h
@@ -10,8 +10,6 @@
#include "simplemessagehandler.h"
#include <vespa/storage/common/storagecomponent.h>
#include <vespa/vespalib/util/isequencedtaskexecutor.h>
-#include <vespa/config-stor-filestor.h>
-#include <atomic>
namespace storage {
@@ -26,7 +24,7 @@ class PersistenceHandler : public Types
{
public:
PersistenceHandler(vespalib::ISequencedTaskExecutor &, const ServiceLayerComponent & component,
- const vespa::config::content::StorFilestorConfig &, spi::PersistenceProvider &,
+ uint32_t mergeChunkSize, bool multibitSplit, spi::PersistenceProvider &,
FileStorHandler &, BucketOwnershipNotifier &, FileStorThreadMetrics&);
~PersistenceHandler();
diff --git a/storage/src/vespa/storage/persistence/splitjoinhandler.h b/storage/src/vespa/storage/persistence/splitjoinhandler.h
index af7602b8ec5..dd096fef863 100644
--- a/storage/src/vespa/storage/persistence/splitjoinhandler.h
+++ b/storage/src/vespa/storage/persistence/splitjoinhandler.h
@@ -33,6 +33,7 @@ private:
PersistenceUtil &_env;
spi::PersistenceProvider &_spi;
BucketOwnershipNotifier &_bucketOwnershipNotifier;
+ // TODO Rewrite tests so below config can be removed. Hardcoded to false in production.
bool _enableMultibitSplitOptimalization;
};
diff --git a/storage/src/vespa/storage/storageserver/servicelayernode.cpp b/storage/src/vespa/storage/storageserver/servicelayernode.cpp
index 7da75225b6c..d18935afe24 100644
--- a/storage/src/vespa/storage/storageserver/servicelayernode.cpp
+++ b/storage/src/vespa/storage/storageserver/servicelayernode.cpp
@@ -18,6 +18,9 @@
#include <vespa/vespalib/util/exceptions.h>
#include <vespa/messagebus/rpcmessagebus.h>
#include <vespa/config/common/exceptions.h>
+#include <vespa/config-stor-filestor.h>
+#include <vespa/config-persistence.h>
+#include <vespa/storage/visiting/config-stor-visitor.h>
#include <vespa/log/log.h>
LOG_SETUP(".node.servicelayer");
diff --git a/storage/src/vespa/storage/storageserver/servicelayernode.h b/storage/src/vespa/storage/storageserver/servicelayernode.h
index bea09a1c9ce..b0fa8a6f9ac 100644
--- a/storage/src/vespa/storage/storageserver/servicelayernode.h
+++ b/storage/src/vespa/storage/storageserver/servicelayernode.h
@@ -6,14 +6,19 @@
#include "servicelayernodecontext.h"
#include "storagenode.h"
#include "vespa/vespalib/util/jsonstream.h"
-#include <vespa/config-persistence.h>
-#include <vespa/config-stor-filestor.h>
#include <vespa/storage/common/nodestateupdater.h>
#include <vespa/storage/common/visitorfactory.h>
-#include <vespa/storage/visiting/config-stor-visitor.h>
#include <vespa/storage/visiting/visitormessagesessionfactory.h>
#include <vespa/vespalib/util/hw_info.h>
+namespace vespa::config::content::internal {
+ class InternalStorFilestorType;
+ class InternalPersistenceType;
+}
+namespace vespa::config::content::core::internal {
+ class InternalStorVisitorType;
+}
+
namespace storage {
namespace spi { struct PersistenceProvider; }
@@ -33,9 +38,9 @@ class ServiceLayerNode
{
public:
- using PersistenceConfig = vespa::config::content::PersistenceConfig;
- using StorVisitorConfig = vespa::config::content::core::StorVisitorConfig;
- using StorFilestorConfig = vespa::config::content::StorFilestorConfig;
+ using PersistenceConfig = vespa::config::content::internal::InternalPersistenceType;
+ using StorVisitorConfig = vespa::config::content::core::internal::InternalStorVisitorType;
+ using StorFilestorConfig = vespa::config::content::internal::InternalStorFilestorType;
private:
ServiceLayerNodeContext& _context;
spi::PersistenceProvider& _persistenceProvider;