Skip to content

Commit 46ccac4

Browse files
committed
crimson/os/seastore/transaction: refine version_stat_t as rewrite_stats_t
Signed-off-by: Yingxin Cheng <[email protected]>
1 parent 3442025 commit 46ccac4

File tree

4 files changed

+23
-21
lines changed

4 files changed

+23
-21
lines changed

src/crimson/os/seastore/cache.cc

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -705,22 +705,22 @@ void Cache::register_metrics()
705705
{
706706
sm::make_counter(
707707
"version_count_dirty",
708-
stats.committed_dirty_version.num,
708+
stats.trim_rewrites.num,
709709
sm::description("total number of rewrite-dirty extents")
710710
),
711711
sm::make_counter(
712712
"version_sum_dirty",
713-
stats.committed_dirty_version.version,
713+
stats.trim_rewrites.version,
714714
sm::description("sum of the version from rewrite-dirty extents")
715715
),
716716
sm::make_counter(
717717
"version_count_reclaim",
718-
stats.committed_reclaim_version.num,
718+
stats.reclaim_rewrites.num,
719719
sm::description("total number of rewrite-reclaim extents")
720720
),
721721
sm::make_counter(
722722
"version_sum_reclaim",
723-
stats.committed_reclaim_version.version,
723+
stats.reclaim_rewrites.version,
724724
sm::description("sum of the version from rewrite-reclaim extents")
725725
),
726726
}
@@ -1586,14 +1586,14 @@ record_t Cache::prepare_record(
15861586
efforts.inline_record_metadata_bytes +=
15871587
(record.size.get_raw_mdlength() - record.get_delta_size());
15881588

1589-
auto &rewrite_version_stats = t.get_rewrite_version_stats();
1589+
auto &rewrite_stats = t.get_rewrite_stats();
15901590
if (trans_src == Transaction::src_t::TRIM_DIRTY) {
1591-
stats.committed_dirty_version.increment_stat(rewrite_version_stats);
1591+
stats.trim_rewrites.add(rewrite_stats);
15921592
} else if (trans_src == Transaction::src_t::CLEANER_MAIN ||
15931593
trans_src == Transaction::src_t::CLEANER_COLD) {
1594-
stats.committed_reclaim_version.increment_stat(rewrite_version_stats);
1594+
stats.reclaim_rewrites.add(rewrite_stats);
15951595
} else {
1596-
assert(rewrite_version_stats.is_clear());
1596+
assert(rewrite_stats.is_clear());
15971597
}
15981598

15991599
return record;

src/crimson/os/seastore/cache.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1631,8 +1631,8 @@ class Cache {
16311631
std::array<uint64_t, NUM_SRC_COMB> trans_conflicts_by_srcs;
16321632
counter_by_src_t<uint64_t> trans_conflicts_by_unknown;
16331633

1634-
version_stat_t committed_dirty_version;
1635-
version_stat_t committed_reclaim_version;
1634+
rewrite_stats_t trim_rewrites;
1635+
rewrite_stats_t reclaim_rewrites;
16361636
} stats;
16371637

16381638
mutable dirty_io_stats_t last_dirty_io;

src/crimson/os/seastore/transaction.h

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -41,22 +41,22 @@ inline std::ostream& operator<<(std::ostream& out, const io_stat_t& stat) {
4141
return out << stat.num << "(" << stat.bytes << "B)";
4242
}
4343

44-
struct version_stat_t {
44+
struct rewrite_stats_t {
4545
uint64_t num = 0;
4646
uint64_t version = 0;
4747

4848
bool is_clear() const {
49-
return (num == 0 && version == 0);
49+
return num == 0;
5050
}
5151

52-
void increment(extent_version_t v) {
52+
void account(extent_version_t v) {
5353
++num;
5454
version += v;
5555
}
5656

57-
void increment_stat(const version_stat_t& stat) {
58-
num += stat.num;
59-
version += stat.version;
57+
void add(const rewrite_stats_t& o) {
58+
num += o.num;
59+
version += o.version;
6060
}
6161
};
6262

@@ -433,7 +433,7 @@ class Transaction {
433433
lba_tree_stats = {};
434434
backref_tree_stats = {};
435435
ool_write_stats = {};
436-
rewrite_version_stats = {};
436+
rewrite_stats = {};
437437
conflicted = false;
438438
if (!has_reset) {
439439
has_reset = true;
@@ -492,8 +492,8 @@ class Transaction {
492492
ool_write_stats_t& get_ool_write_stats() {
493493
return ool_write_stats;
494494
}
495-
version_stat_t& get_rewrite_version_stats() {
496-
return rewrite_version_stats;
495+
rewrite_stats_t& get_rewrite_stats() {
496+
return rewrite_stats;
497497
}
498498

499499
struct existing_block_stats_t {
@@ -617,7 +617,7 @@ class Transaction {
617617
tree_stats_t lba_tree_stats;
618618
tree_stats_t backref_tree_stats;
619619
ool_write_stats_t ool_write_stats;
620-
version_stat_t rewrite_version_stats;
620+
rewrite_stats_t rewrite_stats;
621621

622622
bool conflicted = false;
623623

src/crimson/os/seastore/transaction_manager.cc

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -638,6 +638,7 @@ TransactionManager::rewrite_extent_ret TransactionManager::rewrite_extent(
638638

639639
assert(extent->is_valid() && !extent->is_initial_pending());
640640
if (extent->is_dirty()) {
641+
assert(extent->get_version() > 0);
641642
if (epm->can_inplace_rewrite(t, extent)) {
642643
DEBUGT("delta overwriting extent -- {}", t, *extent);
643644
t.add_inplace_rewrite_extent(extent);
@@ -649,9 +650,10 @@ TransactionManager::rewrite_extent_ret TransactionManager::rewrite_extent(
649650
extent->set_target_rewrite_generation(target_generation);
650651
ceph_assert(modify_time != NULL_TIME);
651652
extent->set_modify_time(modify_time);
653+
assert(extent->get_version() == 0);
652654
}
653655

654-
t.get_rewrite_version_stats().increment(extent->get_version());
656+
t.get_rewrite_stats().account(extent->get_version());
655657

656658
if (is_backref_node(extent->get_type())) {
657659
DEBUGT("rewriting backref extent -- {}", t, *extent);

0 commit comments

Comments
 (0)