diff options
author | Geir Storli <geirst@yahooinc.com> | 2022-01-10 15:59:56 +0000 |
---|---|---|
committer | Geir Storli <geirst@yahooinc.com> | 2022-01-10 15:59:56 +0000 |
commit | 9ab11d5356bef85ad510d788a14f7323b065b194 (patch) | |
tree | 4c02456e22d0c0f19e0b85114c7c0f6bcade2e27 /searchlib | |
parent | 9af6e27766b372bcf51525b41e663accc9444afd (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.cpp | 22 | ||||
-rw-r--r-- | searchlib/src/vespa/searchlib/util/searchable_stats.h | 20 |
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; } }; |