]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
crimson/os/seastore/EPM: replace random by a simpler seed
authorYingxin Cheng <yingxin.cheng@intel.com>
Fri, 1 Apr 2022 02:11:09 +0000 (10:11 +0800)
committerYingxin Cheng <yingxin.cheng@intel.com>
Wed, 6 Apr 2022 02:54:00 +0000 (10:54 +0800)
Signed-off-by: Yingxin Cheng <yingxin.cheng@intel.com>
src/crimson/os/seastore/extent_placement_manager.h

index 30dbae086ece5d79d52e1cf32fece2a1e7281a3c..944232afe6709084829cffe5d5fc63ffe7694f42 100644 (file)
@@ -92,6 +92,7 @@ public:
   void init_ool_writers(SegmentProvider &sp, SegmentSeqAllocator &ssa) {
     // Currently only one SegmentProvider is supported, so hardcode the
     // writers_by_hint for now.
+    writer_seed = 0;
     writer_refs.clear();
     writers_by_hint.resize((std::size_t)placement_hint_t::NUM_HINTS, {});
 
@@ -235,9 +236,10 @@ private:
     assert(hint_index < writers_by_hint.size());
     auto& writers = writers_by_hint[hint_index];
     assert(writers.size() > 0);
-    return writers[std::rand() % writers.size()];
+    return writers[writer_seed++ % writers.size()];
   }
 
+  std::size_t writer_seed = 0;
   std::vector<ExtentOolWriterRef> writer_refs;
   std::vector<std::vector<ExtentOolWriter*>> writers_by_hint;
   std::vector<Device*> devices_by_id;