aboutsummaryrefslogtreecommitdiffstats
path: root/searchlib
diff options
context:
space:
mode:
authorGeir Storli <geirst@yahooinc.com>2022-01-10 17:49:55 +0100
committerGitHub <noreply@github.com>2022-01-10 17:49:55 +0100
commit24924a7ae2c99f543d164e3e1bb1077b29551444 (patch)
tree36a9a6eddd42f77e550d57519edf200e2661e131 /searchlib
parent033d2a2b76c71f429bcd4bd24d9d59d859f3c21c (diff)
parent9ab11d5356bef85ad510d788a14f7323b065b194 (diff)
Merge pull request #20740 from vespa-engine/geirst/prepare-sampling-of-current-transient-disk-usage
Prepare for tracking the current transient disk usage across all docu…
Diffstat (limited to 'searchlib')
-rw-r--r--searchlib/src/tests/util/searchable_stats/searchable_stats_test.cpp22
-rw-r--r--searchlib/src/vespa/searchlib/util/searchable_stats.h20
2 files changed, 16 insertions, 26 deletions
diff --git a/searchlib/src/tests/util/searchable_stats/searchable_stats_test.cpp b/searchlib/src/tests/util/searchable_stats/searchable_stats_test.cpp
index b89324c71f5..ed857d5776b 100644
--- a/searchlib/src/tests/util/searchable_stats/searchable_stats_test.cpp
+++ b/searchlib/src/tests/util/searchable_stats/searchable_stats_test.cpp
@@ -7,43 +7,35 @@ LOG_SETUP("searchable_stats_test");
using namespace search;
-TEST(SearchableStatsTest, merge_also_tracks_max_size_on_disk_for_component)
+TEST(SearchableStatsTest, stats_can_be_merged)
{
SearchableStats stats;
EXPECT_EQ(0u, stats.memoryUsage().allocatedBytes());
EXPECT_EQ(0u, stats.docsInMemory());
EXPECT_EQ(0u, stats.sizeOnDisk());
- EXPECT_EQ(0u, stats.max_component_size_on_disk());
+ EXPECT_EQ(0u, stats.fusion_size_on_disk());
{
SearchableStats rhs;
EXPECT_EQ(&rhs.memoryUsage(vespalib::MemoryUsage(100,0,0,0)), &rhs);
EXPECT_EQ(&rhs.docsInMemory(10), &rhs);
EXPECT_EQ(&rhs.sizeOnDisk(1000), &rhs);
- EXPECT_EQ(1000u, rhs.max_component_size_on_disk());
+ EXPECT_EQ(&rhs.fusion_size_on_disk(500), &rhs);
EXPECT_EQ(&stats.merge(rhs), &stats);
}
EXPECT_EQ(100u, stats.memoryUsage().allocatedBytes());
EXPECT_EQ(10u, stats.docsInMemory());
EXPECT_EQ(1000u, stats.sizeOnDisk());
- EXPECT_EQ(1000u, stats.max_component_size_on_disk());
+ EXPECT_EQ(500u, stats.fusion_size_on_disk());
stats.merge(SearchableStats()
.memoryUsage(vespalib::MemoryUsage(150,0,0,0))
.docsInMemory(15)
- .sizeOnDisk(1500));
+ .sizeOnDisk(1500)
+ .fusion_size_on_disk(800));
EXPECT_EQ(250u, stats.memoryUsage().allocatedBytes());
EXPECT_EQ(25u, stats.docsInMemory());
EXPECT_EQ(2500u, stats.sizeOnDisk());
- EXPECT_EQ(1500u, stats.max_component_size_on_disk());
-
- stats.merge(SearchableStats()
- .memoryUsage(vespalib::MemoryUsage(120,0,0,0))
- .docsInMemory(12)
- .sizeOnDisk(1200));
- EXPECT_EQ(370u, stats.memoryUsage().allocatedBytes());
- EXPECT_EQ(37u, stats.docsInMemory());
- EXPECT_EQ(3700u, stats.sizeOnDisk());
- EXPECT_EQ(1500u, stats.max_component_size_on_disk());
+ EXPECT_EQ(1300u, stats.fusion_size_on_disk());
}
GTEST_MAIN_RUN_ALL_TESTS()
diff --git a/searchlib/src/vespa/searchlib/util/searchable_stats.h b/searchlib/src/vespa/searchlib/util/searchable_stats.h
index 970076c12d0..e785a4c4483 100644
--- a/searchlib/src/vespa/searchlib/util/searchable_stats.h
+++ b/searchlib/src/vespa/searchlib/util/searchable_stats.h
@@ -15,11 +15,11 @@ class SearchableStats
private:
vespalib::MemoryUsage _memoryUsage;
size_t _docsInMemory;
- size_t _sizeOnDisk;
- size_t _max_component_size_on_disk;
+ size_t _sizeOnDisk; // in bytes
+ size_t _fusion_size_on_disk; // in bytes
public:
- SearchableStats() : _memoryUsage(), _docsInMemory(0), _sizeOnDisk(0), _max_component_size_on_disk(0) {}
+ SearchableStats() : _memoryUsage(), _docsInMemory(0), _sizeOnDisk(0), _fusion_size_on_disk(0) {}
SearchableStats &memoryUsage(const vespalib::MemoryUsage &usage) {
_memoryUsage = usage;
return *this;
@@ -32,22 +32,20 @@ public:
size_t docsInMemory() const { return _docsInMemory; }
SearchableStats &sizeOnDisk(size_t value) {
_sizeOnDisk = value;
- _max_component_size_on_disk = value;
return *this;
}
size_t sizeOnDisk() const { return _sizeOnDisk; }
-
- /**
- * Returns the max disk size used by a single Searchable component,
- * e.g. among the components that are merged into a SearchableStats instance via merge().
- */
- size_t max_component_size_on_disk() const { return _max_component_size_on_disk; }
+ SearchableStats& fusion_size_on_disk(size_t value) {
+ _fusion_size_on_disk = value;
+ return *this;
+ }
+ size_t fusion_size_on_disk() const { return _fusion_size_on_disk; }
SearchableStats &merge(const SearchableStats &rhs) {
_memoryUsage.merge(rhs._memoryUsage);
_docsInMemory += rhs._docsInMemory;
_sizeOnDisk += rhs._sizeOnDisk;
- _max_component_size_on_disk = std::max(_max_component_size_on_disk, rhs._sizeOnDisk);
+ _fusion_size_on_disk += rhs._fusion_size_on_disk;
return *this;
}
};