} else {
touch_extent(*ret);
SUBDEBUGT(seastore_cache, "{} {}~{} is present on t without been \
- fully loaded, reading ...", t, T::TYPE, offset, length);
+ fully loaded, reading ... {}", t, T::TYPE, offset, length, *ret);
auto bp = alloc_cache_buf(ret->get_length());
ret->set_bptr(std::move(bp));
return read_extent<T>(
laddr_t original_laddr,
std::optional<ceph::bufferptr> &&original_bptr) {
LOG_PREFIX(Cache::alloc_remapped_extent);
- SUBTRACET(seastore_cache, "allocate {} {}B, hint={}",
- t, T::TYPE, remap_length, remap_laddr);
assert(remap_laddr >= original_laddr);
TCachedExtentRef<T> ext;
if (original_bptr.has_value()) {
t.get_trans_id());
t.add_fresh_extent(ext);
+ SUBTRACET(seastore_cache, "allocated {} {}B, hint={}, has ptr? {} -- {}",
+ t, T::TYPE, remap_length, remap_laddr, original_bptr.has_value(), *ext);
return ext;
}
<< ", last_committed_crc=" << last_committed_crc
<< ", refcount=" << use_count()
<< ", user_hint=" << user_hint
+ << ", fully_loaded=" << is_fully_loaded()
<< ", rewrite_gen=" << rewrite_gen_printer_t{rewrite_generation};
if (state != extent_state_t::INVALID &&
state != extent_state_t::CLEAN_PENDING) {
current = end;
return seastar::now();
} else {
+ LOG_PREFIX(ObjectDataHandler::read);
auto key = pin->get_key();
bool is_indirect = pin->is_indirect();
extent_len_t off = pin->get_intermediate_offset();
op_type_t::TRANSACTION,
[this](auto &ctx) {
return with_trans_intr(*ctx.transaction, [&, this](auto &t) {
+#ifndef NDEBUG
+ LOG_PREFIX(SeaStore::Shard::do_transaction_no_callbacks);
+ TRACET(" transaction dump:\n", t);
+ JSONFormatter f(true);
+ f.open_object_section("transaction");
+ ctx.ext_transaction.dump(&f);
+ f.close_section();
+ std::stringstream str;
+ f.flush(str);
+ TRACET("{}", t, str.str());
+#endif
return seastar::do_with(
std::vector<OnodeRef>(ctx.iter.objects.size()),
std::vector<OnodeRef>(ctx.iter.objects.size()),
}
case Transaction::OP_CLONE:
{
+ TRACET("cloning {} to {}",
+ *ctx.transaction,
+ i.get_oid(op->oid),
+ i.get_oid(op->dest_oid));
return _clone(ctx, onodes[op->oid], d_onodes[op->dest_oid]);
}
default: