Skip to content

Commit e3b91ff

Browse files
committed
crimson/os/seastore/cache: avoid unnecessary transaction extent sets
queires Signed-off-by: Xuehan Xu <[email protected]>
1 parent 50d7036 commit e3b91ff

File tree

2 files changed

+13
-28
lines changed

2 files changed

+13
-28
lines changed

src/crimson/os/seastore/cache.cc

Lines changed: 10 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -2221,28 +2221,18 @@ Cache::get_next_dirty_extents_ret Cache::get_next_dirty_extents(
22212221
return;
22222222
}
22232223

2224-
CachedExtentRef on_transaction;
2225-
auto result = t.get_extent(ext->get_paddr(), &on_transaction);
2226-
if (result == Transaction::get_extent_ret::ABSENT) {
2227-
DEBUGT("extent is absent on t -- {}", t, *ext);
2228-
t.add_to_read_set(ext);
2229-
if (is_root_type(ext->get_type())) {
2230-
if (t.root) {
2231-
assert(&*t.root == &*ext);
2232-
ceph_assert(0 == "t.root would have to already be in the read set");
2233-
} else {
2234-
assert(&*ext == &*root);
2235-
t.root = root;
2236-
}
2224+
DEBUGT("adding dirty extent {}", t, *ext);
2225+
t.add_to_read_set(ext);
2226+
if (is_root_type(ext->get_type())) {
2227+
if (t.root) {
2228+
assert(&*t.root == &*ext);
2229+
ceph_assert(0 == "t.root would have to already be in the read set");
2230+
} else {
2231+
assert(&*ext == &*root);
2232+
t.root = root;
22372233
}
2238-
ret.push_back(ext);
2239-
} else if (result == Transaction::get_extent_ret::PRESENT) {
2240-
DEBUGT("extent is present on t -- {}, on t {}", t, *ext, *on_transaction);
2241-
ret.push_back(on_transaction);
2242-
} else {
2243-
assert(result == Transaction::get_extent_ret::RETIRED);
2244-
DEBUGT("extent is retired on t -- {}", t, *ext);
22452234
}
2235+
ret.push_back(ext);
22462236
});
22472237
}).then_interruptible([&ret] {
22482238
return std::move(ret);

src/crimson/os/seastore/cache.h

Lines changed: 3 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1462,15 +1462,10 @@ class Cache : public ExtentTransViewRetriever,
14621462
return extent;
14631463
}
14641464
} else {
1465-
auto result = t.get_extent(extent->get_paddr(), &extent);
1466-
if (result == Transaction::get_extent_ret::RETIRED) {
1467-
return CachedExtentRef();
1468-
} else {
1469-
if (result == Transaction::get_extent_ret::ABSENT) {
1470-
t.add_to_read_set(extent);
1471-
}
1472-
return extent;
1465+
if (extent->is_stable()) {
1466+
std::ignore = t.maybe_add_to_read_set(extent);
14731467
}
1468+
return extent->maybe_get_transactional_view(t);
14741469
}
14751470
}
14761471

0 commit comments

Comments
 (0)