encode(last_update, bl);
encode(last_complete, bl);
encode(log_tail, bl);
- if (last_backfill_bitwise && !last_backfill.is_max()) {
- encode(hobject_t(), bl);
- } else {
- encode(last_backfill, bl);
- }
+ encode(hobject_t(), bl); // old (nibblewise) last_backfill
encode(stats, bl);
history.encode(bl);
encode(purged_snaps, bl);
encode(hit_set, bl);
encode(pgid.shard, bl);
encode(last_backfill, bl);
- encode(last_backfill_bitwise, bl);
+ encode(true, bl); // was last_backfill_bitwise
encode(last_interval_started, bl);
ENCODE_FINISH(bl);
}
decode(hit_set, bl);
decode(pgid.shard, bl);
decode(last_backfill, bl);
- decode(last_backfill_bitwise, bl);
+ {
+ bool last_backfill_bitwise;
+ decode(last_backfill_bitwise, bl);
+ // note: we may see a false value here since the default value for
+ // the member was false, so it often didn't get set to true until
+ // peering progressed.
+ }
if (struct_v >= 32) {
decode(last_interval_started, bl);
} else {
f->dump_stream("log_tail") << log_tail;
f->dump_int("last_user_version", last_user_version);
f->dump_stream("last_backfill") << last_backfill;
- f->dump_int("last_backfill_bitwise", (int)last_backfill_bitwise);
f->open_array_section("purged_snaps");
for (interval_set<snapid_t>::const_iterator i=purged_snaps.begin();
i != purged_snaps.end();
o.back()->last_user_version = 2;
o.back()->log_tail = eversion_t(7, 8);
o.back()->last_backfill = hobject_t(object_t("objname"), "key", 123, 456, -1, "");
- o.back()->last_backfill_bitwise = true;
{
list<pg_stat_t*> s;
pg_stat_t::generate_test_instances(s);
eversion_t log_tail; ///< oldest log entry.
hobject_t last_backfill; ///< objects >= this and < last_complete may be missing
- bool last_backfill_bitwise; ///< true if last_backfill reflects a bitwise (vs nibblewise) sort
interval_set<snapid_t> purged_snaps;
l.last_user_version == r.last_user_version &&
l.log_tail == r.log_tail &&
l.last_backfill == r.last_backfill &&
- l.last_backfill_bitwise == r.last_backfill_bitwise &&
l.purged_snaps == r.purged_snaps &&
l.stats == r.stats &&
l.history == r.history &&
: last_epoch_started(0),
last_interval_started(0),
last_user_version(0),
- last_backfill(hobject_t::get_max()),
- last_backfill_bitwise(false)
+ last_backfill(hobject_t::get_max())
{ }
// cppcheck-suppress noExplicitConstructor
pg_info_t(spg_t p)
last_epoch_started(0),
last_interval_started(0),
last_user_version(0),
- last_backfill(hobject_t::get_max()),
- last_backfill_bitwise(false)
+ last_backfill(hobject_t::get_max())
{ }
void set_last_backfill(hobject_t pos) {
last_backfill = pos;
- last_backfill_bitwise = true;
}
bool is_empty() const { return last_update.version == 0; }
out << " (" << pgi.log_tail << "," << pgi.last_update << "]";
}
if (pgi.is_incomplete())
- out << " lb " << pgi.last_backfill
- << (pgi.last_backfill_bitwise ? " (bitwise)" : " (NIBBLEWISE)");
+ out << " lb " << pgi.last_backfill;
//out << " c " << pgi.epoch_created;
out << " local-lis/les=" << pgi.last_interval_started
<< "/" << pgi.last_epoch_started;