From 2724b98da8699af150e850e66e92e0a832cd2e29 Mon Sep 17 00:00:00 2001 From: "Douglas B. Rumbaugh" Date: Sun, 22 Dec 2024 15:48:55 -0500 Subject: More updates BSM is currently broken--I'll need to think a bit about how best to actually implement this in the current framework (if I even want to port it over) because it doesn't use the same flushing mechanism as most other approaches. --- include/framework/reconstruction/BSMPolicy.h | 6 +++--- include/framework/reconstruction/LevelingPolicy.h | 2 +- include/framework/reconstruction/TieringPolicy.h | 4 ++-- 3 files changed, 6 insertions(+), 6 deletions(-) (limited to 'include') diff --git a/include/framework/reconstruction/BSMPolicy.h b/include/framework/reconstruction/BSMPolicy.h index 4ceca9a..ab8c6e4 100644 --- a/include/framework/reconstruction/BSMPolicy.h +++ b/include/framework/reconstruction/BSMPolicy.h @@ -56,15 +56,15 @@ public: ReconstructionTask get_flush_task(const Epoch *epoch) const override { return ReconstructionTask{ - {{buffer_shid}}, 0, m_buffer_size, ReconstructionType::Flush}; + {{buffer_shid}}, 0, m_buffer_size, ReconstructionType::Merge}; } private: level_index find_reconstruction_target(LevelVector &levels) const { - level_index target_level = 0; + level_index target_level = invalid_level_idx; for (level_index i = 0; i < (level_index)levels.size(); i++) { - if (levels[i]->get_record_count() + 1 <= capacity(i)) { + if (levels[i]->get_record_count() + m_buffer_size <= capacity(i)) { target_level = i; break; } diff --git a/include/framework/reconstruction/LevelingPolicy.h b/include/framework/reconstruction/LevelingPolicy.h index 8bf5645..add28ba 100644 --- a/include/framework/reconstruction/LevelingPolicy.h +++ b/include/framework/reconstruction/LevelingPolicy.h @@ -59,7 +59,7 @@ public: private: level_index find_reconstruction_target(LevelVector &levels) const { - level_index target_level = 0; + level_index target_level = invalid_level_idx; size_t incoming_records = m_buffer_size; for (level_index i = 0; i < (level_index)levels.size(); i++) { diff --git a/include/framework/reconstruction/TieringPolicy.h b/include/framework/reconstruction/TieringPolicy.h index 71fe9ec..1443309 100644 --- a/include/framework/reconstruction/TieringPolicy.h +++ b/include/framework/reconstruction/TieringPolicy.h @@ -52,12 +52,12 @@ public: ReconstructionTask get_flush_task(const Epoch *epoch) const override { return ReconstructionTask{ - {{buffer_shid}}, 0, m_buffer_size, ReconstructionType::Flush}; + {{buffer_shid}}, 0, m_buffer_size, ReconstructionType::Append}; } private: level_index find_reconstruction_target(LevelVector &levels) const { - level_index target_level = 0; + level_index target_level = invalid_level_idx; for (level_index i = 0; i < (level_index) levels.size(); i++) { if (levels[i]->get_shard_count() + 1 <= capacity()) { -- cgit v1.2.3