Skip to content

Commit 17a1b4b

Browse files
Merge pull request ceph#56612 from Matan-B/wip-matanb-remove-snapset-snaps
osd: cleanup Snapset::snaps
2 parents 720590f + c0b16c4 commit 17a1b4b

File tree

8 files changed

+10
-80
lines changed

8 files changed

+10
-80
lines changed

src/crimson/osd/ops_executer.cc

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -911,7 +911,6 @@ pg_log_entry_t OpsExecuter::prepare_head_update(
911911
if (snapc.seq > obc->ssc->snapset.seq) {
912912
// update snapset with latest snap context
913913
obc->ssc->snapset.seq = snapc.seq;
914-
obc->ssc->snapset.snaps.clear();
915914
}
916915

917916
pg_log_entry_t ret{

src/osd/PrimaryLogPG.cc

Lines changed: 3 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -4908,15 +4908,6 @@ int PrimaryLogPG::trim_object(
49084908
head_obc->obs.oi = object_info_t(head_oid);
49094909
t->remove(head_oid);
49104910
} else {
4911-
if (get_osdmap()->require_osd_release < ceph_release_t::octopus) {
4912-
// filter SnapSet::snaps for the benefit of pre-octopus
4913-
// peers. This is perhaps overly conservative in that I'm not
4914-
// certain they need this, but let's be conservative here.
4915-
dout(10) << coid << " filtering snapset on " << head_oid << dendl;
4916-
snapset.filter(pool.info);
4917-
} else {
4918-
snapset.snaps.clear();
4919-
}
49204911
dout(10) << coid << " writing updated snapset on " << head_oid
49214912
<< ", snapset is " << snapset << dendl;
49224913
ctx->log.push_back(
@@ -8794,11 +8785,6 @@ void PrimaryLogPG::make_writeable(OpContext *ctx)
87948785
if (snapc.seq > ctx->new_snapset.seq) {
87958786
// update snapset with latest snap context
87968787
ctx->new_snapset.seq = snapc.seq;
8797-
if (get_osdmap()->require_osd_release < ceph_release_t::octopus) {
8798-
ctx->new_snapset.snaps = snapc.snaps;
8799-
} else {
8800-
ctx->new_snapset.snaps.clear();
8801-
}
88028788
}
88038789
dout(20) << "make_writeable " << soid
88048790
<< " done, snapset=" << ctx->new_snapset << dendl;
@@ -10223,11 +10209,6 @@ void PrimaryLogPG::finish_promote(int r, CopyResults *results,
1022310209

1022410210
OpContextUPtr tctx = simple_opc_create(obc);
1022510211
tctx->at_version = get_next_version();
10226-
if (get_osdmap()->require_osd_release < ceph_release_t::octopus) {
10227-
filter_snapc(tctx->new_snapset.snaps);
10228-
} else {
10229-
tctx->new_snapset.snaps.clear();
10230-
}
1023110212
vector<snapid_t> new_clones;
1023210213
map<snapid_t, vector<snapid_t>> new_clone_snaps;
1023310214
for (vector<snapid_t>::iterator i = tctx->new_snapset.clones.begin();
@@ -10899,17 +10880,7 @@ int PrimaryLogPG::start_flush(
1089910880
<< " " << (blocking ? "blocking" : "non-blocking/best-effort")
1090010881
<< dendl;
1090110882

10902-
bool preoctopus_compat =
10903-
get_osdmap()->require_osd_release < ceph_release_t::octopus;
10904-
SnapSet snapset;
10905-
if (preoctopus_compat) {
10906-
// for pre-octopus compatibility, filter SnapSet::snaps. not
10907-
// certain we need this, but let's be conservative.
10908-
snapset = obc->ssc->snapset.get_filtered(pool.info);
10909-
} else {
10910-
// NOTE: change this to a const ref when we remove this compat code
10911-
snapset = obc->ssc->snapset;
10912-
}
10883+
const SnapSet& snapset = obc->ssc->snapset;
1091310884

1091410885
if ((obc->obs.oi.has_manifest() && obc->obs.oi.manifest.is_chunked())
1091510886
|| force_dedup) {
@@ -10922,7 +10893,7 @@ int PrimaryLogPG::start_flush(
1092210893
// verify there are no (older) check for dirty clones
1092310894
{
1092410895
dout(20) << " snapset " << snapset << dendl;
10925-
vector<snapid_t>::reverse_iterator p = snapset.clones.rbegin();
10896+
vector<snapid_t>::const_reverse_iterator p = snapset.clones.rbegin();
1092610897
while (p != snapset.clones.rend() && *p >= soid.snap)
1092710898
++p;
1092810899
if (p != snapset.clones.rend()) {
@@ -11033,7 +11004,7 @@ int PrimaryLogPG::start_flush(
1103311004
}
1103411005

1103511006
snapid_t prev_snapc = 0;
11036-
for (vector<snapid_t>::reverse_iterator citer = snapset.clones.rbegin();
11007+
for (vector<snapid_t>::const_reverse_iterator citer = snapset.clones.rbegin();
1103711008
citer != snapset.clones.rend();
1103811009
++citer) {
1103911010
if (*citer < soid.snap) {

src/osd/osd_types.cc

Lines changed: 3 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -5886,6 +5886,7 @@ void SnapSet::encode(ceph::buffer::list& bl) const
58865886
ENCODE_START(3, 2, bl);
58875887
encode(seq, bl);
58885888
encode(true, bl); // head_exists
5889+
std::vector<snapid_t> snaps;
58895890
encode(snaps, bl);
58905891
encode(clones, bl);
58915892
encode(clone_overlap, bl);
@@ -5899,6 +5900,7 @@ void SnapSet::decode(ceph::buffer::list::const_iterator& bl)
58995900
DECODE_START_LEGACY_COMPAT_LEN(3, 2, 2, bl);
59005901
decode(seq, bl);
59015902
bl += 1u; // skip legacy head_exists (always true)
5903+
std::vector<snapid_t> snaps;
59025904
decode(snaps, bl);
59035905
decode(clones, bl);
59045906
decode(clone_overlap, bl);
@@ -5946,12 +5948,8 @@ void SnapSet::generate_test_instances(list<SnapSet*>& o)
59465948
o.push_back(new SnapSet);
59475949
o.push_back(new SnapSet);
59485950
o.back()->seq = 123;
5949-
o.back()->snaps.push_back(123);
5950-
o.back()->snaps.push_back(12);
59515951
o.push_back(new SnapSet);
59525952
o.back()->seq = 123;
5953-
o.back()->snaps.push_back(123);
5954-
o.back()->snaps.push_back(12);
59555953
o.back()->clones.push_back(12);
59565954
o.back()->clone_size[12] = 12345;
59575955
o.back()->clone_overlap[12];
@@ -5960,8 +5958,7 @@ void SnapSet::generate_test_instances(list<SnapSet*>& o)
59605958

59615959
ostream& operator<<(ostream& out, const SnapSet& cs)
59625960
{
5963-
return out << cs.seq << "=" << cs.snaps << ":"
5964-
<< cs.clone_snaps;
5961+
return out << cs.seq << "=" << cs.clone_snaps;
59655962
}
59665963

59675964
void SnapSet::from_snap_set(const librados::snap_set_t& ss, bool legacy)
@@ -5999,13 +5996,6 @@ void SnapSet::from_snap_set(const librados::snap_set_t& ss, bool legacy)
59995996
clones.reserve(_clones.size());
60005997
for (auto p = _clones.begin(); p != _clones.end(); ++p)
60015998
clones.push_back(*p);
6002-
6003-
// descending
6004-
snaps.clear();
6005-
snaps.reserve(_snaps.size());
6006-
for (auto p = _snaps.rbegin();
6007-
p != _snaps.rend(); ++p)
6008-
snaps.push_back(*p);
60095999
}
60106000

60116001
uint64_t SnapSet::get_clone_bytes(snapid_t clone) const
@@ -6018,23 +6008,6 @@ uint64_t SnapSet::get_clone_bytes(snapid_t clone) const
60186008
return size - overlap.size();
60196009
}
60206010

6021-
void SnapSet::filter(const pg_pool_t &pinfo)
6022-
{
6023-
vector<snapid_t> oldsnaps;
6024-
oldsnaps.swap(snaps);
6025-
for (auto i = oldsnaps.cbegin(); i != oldsnaps.cend(); ++i) {
6026-
if (!pinfo.is_removed_snap(*i))
6027-
snaps.push_back(*i);
6028-
}
6029-
}
6030-
6031-
SnapSet SnapSet::get_filtered(const pg_pool_t &pinfo) const
6032-
{
6033-
SnapSet ss = *this;
6034-
ss.filter(pinfo);
6035-
return ss;
6036-
}
6037-
60386011
// -- watch_info_t --
60396012

60406013
void watch_info_t::encode(ceph::buffer::list& bl, uint64_t features) const

src/osd/osd_types.h

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5660,8 +5660,6 @@ inline std::ostream& operator<<(std::ostream& out, const OSDSuperblock& sb)
56605660
*/
56615661
struct SnapSet {
56625662
snapid_t seq;
5663-
// NOTE: this is for pre-octopus compatibility only! remove in Q release
5664-
std::vector<snapid_t> snaps; // descending
56655663
std::vector<snapid_t> clones; // ascending
56665664
std::map<snapid_t, interval_set<uint64_t> > clone_overlap; // overlap w/ next newest
56675665
std::map<snapid_t, uint64_t> clone_size;
@@ -5699,9 +5697,6 @@ struct SnapSet {
56995697
return out;
57005698
}
57015699

5702-
5703-
SnapSet get_filtered(const pg_pool_t &pinfo) const;
5704-
void filter(const pg_pool_t &pinfo);
57055700
};
57065701
WRITE_CLASS_ENCODER(SnapSet)
57075702

src/osd/osd_types_fmt.h

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -253,9 +253,8 @@ struct formatter<SnapSet> {
253253

254254
} else {
255255
return fmt::format_to(ctx.out(),
256-
"{}={}:{}",
256+
"{}={}",
257257
snps.seq,
258-
snps.snaps,
259258
snps.clone_snaps);
260259
}
261260
}

src/test/osd/scrubber_generators.cc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ std::pair<bufferlist, std::vector<snapid_t>> create_object_snapset(
3434
encode(sns, bl);
3535

3636
// extract the set of object snaps
37-
return {bl, sns.snaps};
37+
return {bl, sns.clones};
3838
}
3939

4040
RealObjsConfList ScrubGenerator::make_real_objs_conf(

src/test/osd/scrubber_generators.h

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -133,7 +133,6 @@ struct SnapsetMockData {
133133
using clone_snaps_cooker = CookedCloneSnaps (*)();
134134

135135
snapid_t seq;
136-
std::vector<snapid_t> snaps; // descending
137136
std::vector<snapid_t> clones; // ascending
138137

139138
std::map<snapid_t, interval_set<uint64_t>> clone_overlap; // overlap w/ next
@@ -143,25 +142,21 @@ struct SnapsetMockData {
143142

144143

145144
SnapsetMockData(snapid_t seq,
146-
std::vector<snapid_t> snaps,
147145
std::vector<snapid_t> clones,
148146
std::map<snapid_t, interval_set<uint64_t>> clone_overlap,
149147
std::map<snapid_t, uint64_t> clone_size,
150148
std::map<snapid_t, std::vector<snapid_t>> clone_snaps)
151149
: seq(seq)
152-
, snaps(snaps)
153150
, clones(clones)
154151
, clone_overlap(clone_overlap)
155152
, clone_size(clone_size)
156153
, clone_snaps(clone_snaps)
157154
{}
158155

159156
SnapsetMockData(snapid_t seq,
160-
std::vector<snapid_t> snaps,
161157
std::vector<snapid_t> clones,
162158
clone_snaps_cooker func)
163159
: seq{seq}
164-
, snaps{snaps}
165160
, clones(clones)
166161
{
167162
auto [clone_size_, clone_snaps_, clone_overlap_] = func();
@@ -174,7 +169,6 @@ struct SnapsetMockData {
174169
{
175170
SnapSet ss;
176171
ss.seq = seq;
177-
ss.snaps = snaps;
178172
ss.clones = clones;
179173
ss.clone_overlap = clone_overlap;
180174
ss.clone_size = clone_size;
@@ -257,10 +251,10 @@ struct fmt::formatter<ScrubGenerator::RealObj> {
257251
{
258252
using namespace ScrubGenerator;
259253
return fmt::format_to(ctx.out(),
260-
"RealObj(gh:{}, dt:{}, snaps:{})",
254+
"RealObj(gh:{}, dt:{}, clones:{})",
261255
rlo.ghobj,
262256
rlo.data.size,
263-
(rlo.snapset_mock_data ? rlo.snapset_mock_data->snaps
257+
(rlo.snapset_mock_data ? rlo.snapset_mock_data->clones
264258
: std::vector<snapid_t>{}));
265259
}
266260
};

src/test/osd/scrubber_test_datasets.cc

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,6 @@ SnapsetMockData::CookedCloneSnaps ms1_fn()
5656
}
5757

5858
static SnapsetMockData hobj_ms1_snapset{/* seq */ 0x40,
59-
/* snaps */ {0x30, 0x20},
6059
/* clones */ {0x20, 0x30},
6160
ms1_fn};
6261

0 commit comments

Comments
 (0)