diff options
| author | Douglas Rumbaugh <dbr4@psu.edu> | 2025-02-17 09:53:33 -0500 |
|---|---|---|
| committer | Douglas Rumbaugh <dbr4@psu.edu> | 2025-02-17 09:53:33 -0500 |
| commit | 2cea904e07629a955f3f024b5a718a21c06ec032 (patch) | |
| tree | 15a76cac443e15f9290f443677c767bc05c0e98d /include/framework/reconstruction | |
| parent | 4e088dd606cc60f0e6585f1a1512a65a8a549876 (diff) | |
| download | dynamic-extension-2cea904e07629a955f3f024b5a718a21c06ec032.tar.gz | |
Fixed legacy tiering policy
Diffstat (limited to 'include/framework/reconstruction')
| -rw-r--r-- | include/framework/reconstruction/BackgroundTieringPolicy.h | 4 | ||||
| -rw-r--r-- | include/framework/reconstruction/TieringPolicy.h | 14 |
2 files changed, 10 insertions, 8 deletions
diff --git a/include/framework/reconstruction/BackgroundTieringPolicy.h b/include/framework/reconstruction/BackgroundTieringPolicy.h index 5a82695..9a9ebaa 100644 --- a/include/framework/reconstruction/BackgroundTieringPolicy.h +++ b/include/framework/reconstruction/BackgroundTieringPolicy.h @@ -46,9 +46,7 @@ public: for (level_index i = target_level; i > source_level; i--) { if (lock_mngr.take_lock(i-1)) { ReconstructionVector recon; - size_t target_reccnt = - (i < (level_index)levels.size()) ? levels[i]->get_record_count() : 0; - size_t total_reccnt = levels[i - 1]->get_record_count() + target_reccnt; + size_t total_reccnt = levels[i - 1]->get_record_count(); std::vector<ShardID> shards; for (ssize_t j=0; j<(ssize_t)levels[i-1]->get_shard_count(); j++) { shards.push_back({i-1, j}); diff --git a/include/framework/reconstruction/TieringPolicy.h b/include/framework/reconstruction/TieringPolicy.h index d8769f7..ce8130e 100644 --- a/include/framework/reconstruction/TieringPolicy.h +++ b/include/framework/reconstruction/TieringPolicy.h @@ -44,12 +44,16 @@ public: } for (level_index i = target_level; i > source_level; i--) { - size_t target_reccnt = - (i < (level_index)levels.size()) ? levels[i]->get_record_count() : 0; - size_t total_reccnt = levels[i - 1]->get_record_count() + target_reccnt; + size_t total_reccnt = levels[i - 1]->get_record_count(); - reconstructions.add_reconstruction(i - 1, i, total_reccnt, - ReconstructionType::Compact); + std::vector<ShardID> shards; + for (ssize_t j=0; j<(ssize_t)levels[i-1]->get_shard_count(); j++) { + shards.push_back({i-1, j}); + } + + if (total_reccnt > 0 || shards.size() > 0) { + reconstructions.add_reconstruction(shards, i, total_reccnt, ReconstructionType::Compact); + } } return reconstructions; |