diff options
author | Geir Storli <geirst@yahooinc.com> | 2022-01-10 17:49:55 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-01-10 17:49:55 +0100 |
commit | 24924a7ae2c99f543d164e3e1bb1077b29551444 (patch) | |
tree | 36a9a6eddd42f77e550d57519edf200e2661e131 /searchlib | |
parent | 033d2a2b76c71f429bcd4bd24d9d59d859f3c21c (diff) | |
parent | 9ab11d5356bef85ad510d788a14f7323b065b194 (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.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; } }; |