aboutsummaryrefslogtreecommitdiffstats
path: root/searchlib
diff options
context:
space:
mode:
authorGeir Storli <geirst@yahooinc.com>2022-01-10 15:59:56 +0000
committerGeir Storli <geirst@yahooinc.com>2022-01-10 15:59:56 +0000
commit9ab11d5356bef85ad510d788a14f7323b065b194 (patch)
tree4c02456e22d0c0f19e0b85114c7c0f6bcade2e27 /searchlib
parent9af6e27766b372bcf51525b41e663accc9444afd (diff)
Prepare for tracking the current transient disk usage across all document dbs.
The next step will be sampling the total disk usage of all current fusion indexes and report this as the transient disk usage.
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;
}
};