diff options
author | Tor Brede Vekterli <vekterli@yahooinc.com> | 2023-01-11 16:10:36 +0000 |
---|---|---|
committer | Tor Brede Vekterli <vekterli@yahooinc.com> | 2023-01-11 16:10:36 +0000 |
commit | af6deefa21e96fa37571264bc1b2864517545f3a (patch) | |
tree | 0f181ff0538133c17271c63301760578fdb2b300 /storage/src | |
parent | 4a96f46e554f200b74358dfafbe5d978504fe2e0 (diff) |
Place some memory traps across various size classes
Diffstat (limited to 'storage/src')
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<config::ConfigFetcher>(configUri.getContext())), _use_async_message_handling_on_schedule(false), _metrics(std::make_unique<FileStorMetrics>()), + _mem_trap_1(std::make_unique<vespalib::HeapMemoryTrap>(1)), + _mem_trap_2(std::make_unique<vespalib::HeapMemoryTrap>(2)), + _mem_trap_3(std::make_unique<vespalib::HeapMemoryTrap>(3)), + _mem_trap_4(std::make_unique<vespalib::HeapMemoryTrap>(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 <vespa/storage/common/storagelinkqueued.h> #include <vespa/config-stor-filestor.h> #include <vespa/storage/persistence/diskthread.h> - #include <vespa/storage/common/nodestateupdater.h> #include <vespa/storageframework/generic/status/htmlstatusreporter.h> - #include <vespa/config/helper/ifetchercallback.h> +#include <vespa/vespalib/util/memory_trap.h> namespace config { class ConfigUri; @@ -73,6 +72,11 @@ class FileStorManager : public StorageLinkQueued, std::unique_ptr<config::ConfigFetcher> _configFetcher; bool _use_async_message_handling_on_schedule; std::shared_ptr<FileStorMetrics> _metrics; + // Spray&pray over a few different size classes + std::unique_ptr<vespalib::HeapMemoryTrap> _mem_trap_1; + std::unique_ptr<vespalib::HeapMemoryTrap> _mem_trap_2; + std::unique_ptr<vespalib::HeapMemoryTrap> _mem_trap_3; + std::unique_ptr<vespalib::HeapMemoryTrap> _mem_trap_4; std::unique_ptr<FileStorHandler> _filestorHandler; std::unique_ptr<vespalib::ISequencedTaskExecutor> _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 <vespa/metrics/metricset.h> #include <vespa/metrics/summetric.h> +#include <vespa/vespalib/util/memory_trap.h> 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; |