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
444445void 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
528529std::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
0 commit comments