]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
os/bluestore: print the first RocksDB level which doesn't fit into fast
authorIgor Fedotov <igor.fedotov@croit.io>
Tue, 4 Feb 2025 16:45:13 +0000 (19:45 +0300)
committerIgor Fedotov <ifedotov@croit.io>
Wed, 18 Mar 2026 14:08:37 +0000 (17:08 +0300)
device by default.

Signed-off-by: Igor Fedotov <igor.fedotov@croit.io>
(cherry picked from commit d95aa620b315d9261cb50b0465ecfd2b6b534a60)

src/os/bluestore/BlueStore.cc
src/os/bluestore/BlueStore.h

index c014a4392ad395869ab708aa01f2ef1f56c647c8..e78f6fbd9ce1718ffdd600484c1656dd460f35c8 100644 (file)
@@ -19333,6 +19333,7 @@ void RocksDBBlueFSVolumeSelector::dump(ostream& sout) {
   sout << "RocksDBBlueFSVolumeSelector " << std::endl;
   sout << ">>Settings<<"
        << " extra=" << byte_u_t(db_avail4slow)
+       << ", extra level=" << extra_level
        << ", l0_size=" << byte_u_t(level0_size)
        << ", l_base=" << byte_u_t(level_base)
        << ", l_multi=" << byte_u_t(level_multiplier)
index 4b2ef759c90d3e226397e5c293a7243e25c4e821..c1c09bc3b28e3a2130a7a2d6a254cb2d0b849403 100644 (file)
@@ -4314,6 +4314,7 @@ class RocksDBBlueFSVolumeSelector : public BlueFSVolumeSelector
   uint64_t level0_size = 0;
   uint64_t level_base = 0;
   uint64_t level_multiplier = 0;
+  size_t extra_level = 0;
   enum {
     OLD_POLICY,
     USE_SOME_EXTRA
@@ -4351,9 +4352,11 @@ public:
       uint64_t prev_levels = _level0_size;
       uint64_t cur_level = _level_base;
       uint64_t cur_threshold = prev_levels + cur_level;
+      extra_level = 1;
       do {
        uint64_t next_level = cur_level * _level_multiplier;
         uint64_t next_threshold = prev_levels + cur_level + next_level;
+        ++extra_level;
         if (_db_total <= next_threshold) {
          cur_threshold *= reserved_factor;
           db_avail4slow = cur_threshold < _db_total ? _db_total - cur_threshold : 0;
@@ -4366,6 +4369,7 @@ public:
       } while (true);
     } else {
       db_avail4slow = reserved < _db_total ? _db_total - reserved : 0;
+      extra_level = 0;
     }
   }