Skip to content

Commit 9e1f412

Browse files
authored
Merge pull request ceph#63289 from tchaikov/ceph-dedup-cleanups
tools/ceph_dedup: improve const-ness and use ranged-for loop when appropriate Reviewed-by: Myoungwon Oh <[email protected]> Reviewed-by: Ilya Dryomov <[email protected]>
2 parents f62131a + 9363ed6 commit 9e1f412

File tree

2 files changed

+23
-24
lines changed

2 files changed

+23
-24
lines changed

src/tools/ceph_dedup/ceph_dedup_daemon.cc

Lines changed: 21 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,6 @@
1+
// -*- mode:C++; tab-width:8; c-basic-offset:2; indent-tabs-mode:t -*-
2+
// vim: ts=8 sw=2 smarttab
3+
14
#include "common.h"
25
#include "log/Log.h"
36

@@ -187,13 +190,13 @@ class SampleDedupWorkerThread : public Thread
187190
}
188191
}
189192

190-
bool contains(std::string& fp) {
193+
bool contains(const std::string& fp) {
191194
std::shared_lock lock(fingerprint_lock);
192195
return fp_map.contains(fp);
193196
}
194197

195198
// return true if the chunk is duplicate
196-
bool add(chunk_t& chunk) {
199+
bool add(const chunk_t& chunk) {
197200
std::unique_lock lock(fingerprint_lock);
198201
auto entry = fp_map.find(chunk.fingerprint);
199202
total_bytes += chunk.size;
@@ -243,7 +246,7 @@ class SampleDedupWorkerThread : public Thread
243246
fp_store(chunk_threshold, report_period, fpstore_threshold),
244247
sampling_ratio(static_cast<double>(sampling_ratio) / 100) { }
245248

246-
bool is_all_stop() {
249+
bool is_all_stop() const {
247250
std::shared_lock l{glock};
248251
return all_stop;
249252
}
@@ -316,14 +319,14 @@ class SampleDedupWorkerThread : public Thread
316319
ObjectCursor end,
317320
size_t max_object_count);
318321
std::vector<size_t> sample_object(size_t count);
319-
void try_dedup_and_accumulate_result(ObjectItem &object, snap_t snap = 0);
322+
void try_dedup_and_accumulate_result(const ObjectItem &object, snap_t snap = 0);
320323
int do_chunk_dedup(chunk_t &chunk, snap_t snap);
321-
bufferlist read_object(ObjectItem &object);
324+
bufferlist read_object(const ObjectItem &object);
322325
std::vector<std::tuple<bufferlist, std::pair<uint64_t, uint64_t>>> do_cdc(
323-
ObjectItem &object,
324-
bufferlist &data);
325-
std::string generate_fingerprint(bufferlist chunk_data);
326-
AioCompRef do_async_evict(std::string oid);
326+
const ObjectItem &object,
327+
const bufferlist &data) const;
328+
std::string generate_fingerprint(const bufferlist& chunk_data) const;
329+
AioCompRef do_async_evict(const std::string& oid);
327330

328331
IoCtx io_ctx;
329332
IoCtx chunk_io_ctx;
@@ -362,11 +365,9 @@ void SampleDedupWorkerThread::crawl()
362365
op.list_snaps(&snap_set, &snap_ret);
363366
io_ctx.operate(target.oid, &op, NULL);
364367

365-
for (std::vector<librados::clone_info_t>::const_iterator r = snap_set.clones.begin();
366-
r != snap_set.clones.end();
367-
++r) {
368-
io_ctx.snap_set_read(r->cloneid);
369-
try_dedup_and_accumulate_result(target, r->cloneid);
368+
for (const auto& clone : snap_set.clones) {
369+
io_ctx.snap_set_read(clone.cloneid);
370+
try_dedup_and_accumulate_result(target, clone.cloneid);
370371
}
371372
} else {
372373
try_dedup_and_accumulate_result(target);
@@ -392,7 +393,7 @@ void SampleDedupWorkerThread::crawl()
392393
}
393394
}
394395

395-
AioCompRef SampleDedupWorkerThread::do_async_evict(std::string oid)
396+
AioCompRef SampleDedupWorkerThread::do_async_evict(const std::string& oid)
396397
{
397398
Rados rados;
398399
ObjectReadOperation op_tier;
@@ -442,7 +443,7 @@ std::vector<size_t> SampleDedupWorkerThread::sample_object(size_t count)
442443
}
443444

444445
void SampleDedupWorkerThread::try_dedup_and_accumulate_result(
445-
ObjectItem &object, snap_t snap)
446+
const ObjectItem &object, snap_t snap)
446447
{
447448
bufferlist data = read_object(object);
448449
if (data.length() == 0) {
@@ -503,7 +504,7 @@ void SampleDedupWorkerThread::try_dedup_and_accumulate_result(
503504
total_object_size += object_size;
504505
}
505506

506-
bufferlist SampleDedupWorkerThread::read_object(ObjectItem &object)
507+
bufferlist SampleDedupWorkerThread::read_object(const ObjectItem &object)
507508
{
508509
bufferlist whole_data;
509510
size_t offset = 0;
@@ -526,8 +527,8 @@ bufferlist SampleDedupWorkerThread::read_object(ObjectItem &object)
526527
}
527528

528529
std::vector<std::tuple<bufferlist, std::pair<uint64_t, uint64_t>>> SampleDedupWorkerThread::do_cdc(
529-
ObjectItem &object,
530-
bufferlist &data)
530+
const ObjectItem &object,
531+
const bufferlist &data) const
531532
{
532533
std::vector<std::tuple<bufferlist, std::pair<uint64_t, uint64_t>>> ret;
533534

@@ -543,7 +544,7 @@ std::vector<std::tuple<bufferlist, std::pair<uint64_t, uint64_t>>> SampleDedupWo
543544
return ret;
544545
}
545546

546-
std::string SampleDedupWorkerThread::generate_fingerprint(bufferlist chunk_data)
547+
std::string SampleDedupWorkerThread::generate_fingerprint(const bufferlist& chunk_data) const
547548
{
548549
std::string ret;
549550

src/tools/ceph_dedup/ceph_dedup_tool.cc

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1040,10 +1040,8 @@ int make_dedup_object(const po::variables_map &opts)
10401040
op.list_snaps(&snap_set, &snap_ret);
10411041
io_ctx.operate(object_name, &op, NULL);
10421042

1043-
for (std::vector<librados::clone_info_t>::const_iterator r = snap_set.clones.begin();
1044-
r != snap_set.clones.end();
1045-
++r) {
1046-
io_ctx.snap_set_read(r->cloneid);
1043+
for (const auto& clone : snap_set.clones) {
1044+
io_ctx.snap_set_read(clone.cloneid);
10471045
ret = create_new_deduped_object(object_name);
10481046
if (ret < 0) {
10491047
goto out;

0 commit comments

Comments
 (0)