From af6deefa21e96fa37571264bc1b2864517545f3a Mon Sep 17 00:00:00 2001 From: Tor Brede Vekterli Date: Wed, 11 Jan 2023 16:10:36 +0000 Subject: Place some memory traps across various size classes --- .../src/vespa/storage/persistence/filestorage/filestormanager.cpp | 4 ++++ .../src/vespa/storage/persistence/filestorage/filestormanager.h | 8 ++++++-- .../src/vespa/storage/persistence/filestorage/filestormetrics.h | 3 +++ 3 files changed, 13 insertions(+), 2 deletions(-) diff --git a/storage/src/vespa/storage/persistence/filestorage/filestormanager.cpp b/storage/src/vespa/storage/persistence/filestorage/filestormanager.cpp index b67e4851473..4a36d36425a 100644 --- a/storage/src/vespa/storage/persistence/filestorage/filestormanager.cpp +++ b/storage/src/vespa/storage/persistence/filestorage/filestormanager.cpp @@ -78,6 +78,10 @@ FileStorManager(const config::ConfigUri & configUri, spi::PersistenceProvider& p _configFetcher(std::make_unique(configUri.getContext())), _use_async_message_handling_on_schedule(false), _metrics(std::make_unique()), + _mem_trap_1(std::make_unique(1)), + _mem_trap_2(std::make_unique(2)), + _mem_trap_3(std::make_unique(3)), + _mem_trap_4(std::make_unique(16)), _filestorHandler(), _sequencedExecutor(), _closed(false), diff --git a/storage/src/vespa/storage/persistence/filestorage/filestormanager.h b/storage/src/vespa/storage/persistence/filestorage/filestormanager.h index 381774e0dd4..08a48cc2d8a 100644 --- a/storage/src/vespa/storage/persistence/filestorage/filestormanager.h +++ b/storage/src/vespa/storage/persistence/filestorage/filestormanager.h @@ -21,11 +21,10 @@ #include #include #include - #include #include - #include +#include namespace config { class ConfigUri; @@ -73,6 +72,11 @@ class FileStorManager : public StorageLinkQueued, std::unique_ptr _configFetcher; bool _use_async_message_handling_on_schedule; std::shared_ptr _metrics; + // Spray&pray over a few different size classes + std::unique_ptr _mem_trap_1; + std::unique_ptr _mem_trap_2; + std::unique_ptr _mem_trap_3; + std::unique_ptr _mem_trap_4; std::unique_ptr _filestorHandler; std::unique_ptr _sequencedExecutor; diff --git a/storage/src/vespa/storage/persistence/filestorage/filestormetrics.h b/storage/src/vespa/storage/persistence/filestorage/filestormetrics.h index 9a01cab8dd5..f7217692a49 100644 --- a/storage/src/vespa/storage/persistence/filestorage/filestormetrics.h +++ b/storage/src/vespa/storage/persistence/filestorage/filestormetrics.h @@ -14,6 +14,7 @@ #include "active_operations_metrics.h" #include #include +#include namespace storage { @@ -116,9 +117,11 @@ struct FileStorThreadMetrics : public metrics::MetricSet Op mergeBuckets; Op getBucketDiff; Op applyBucketDiff; + vespalib::InlineMemoryTrap<1> mem_trap_1; metrics::LongCountMetric getBucketDiffReply; metrics::LongCountMetric applyBucketDiffReply; MergeHandlerMetrics merge_handler_metrics; + vespalib::InlineMemoryTrap<1> mem_trap_2; FileStorThreadMetrics(const std::string& name, const std::string& desc); ~FileStorThreadMetrics() override; -- cgit v1.2.3