aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHenning Baldersheim <balder@yahoo-inc.com>2023-01-11 18:42:52 +0100
committerGitHub <noreply@github.com>2023-01-11 18:42:52 +0100
commit65f655bac61810a39c964fb3eb72f35f0c0154fb (patch)
treeff5f459e515cc3692e31ab4542c7190baeeafc3f
parentc8e3b733d2e6dc75b04fa563ab270724471d0bf7 (diff)
parentaf6deefa21e96fa37571264bc1b2864517545f3a (diff)
Merge pull request #25521 from vespa-engine/vekterli/place-some-memory-trapsv8.109.47
Place some memory traps across various size classes
-rw-r--r--storage/src/vespa/storage/persistence/filestorage/filestormanager.cpp4
-rw-r--r--storage/src/vespa/storage/persistence/filestorage/filestormanager.h8
-rw-r--r--storage/src/vespa/storage/persistence/filestorage/filestormetrics.h3
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;