]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
crimson/osd: load obj ctx for backfill in parallel
authorKefu Chai <kchai@redhat.com>
Sat, 19 Dec 2020 09:36:24 +0000 (17:36 +0800)
committerKefu Chai <kchai@redhat.com>
Sat, 19 Dec 2020 12:02:06 +0000 (20:02 +0800)
no need to load object contexts for backfill sequentially.

Signed-off-by: Kefu Chai <kchai@redhat.com>
src/crimson/osd/recovery_backend.cc

index ff9963b2b7539ca89223849d24f91ee6821869c1..3b8065e2f0f68ac9973d244ed38c6326245ed624 100644 (file)
@@ -164,9 +164,9 @@ seastar::future<BackfillInterval> RecoveryBackend::scan_for_backfill(
     [this, &start, max] (auto& version_map) {
       return backend->list_objects(start, max).then(
         [this, &start, &version_map] (auto&& ret) {
-          auto& [objects, next] = ret;
-          return seastar::do_for_each(
-            objects,
+          auto&& [objects, next] = std::move(ret);
+          return seastar::parallel_for_each(
+            std::move(objects),
             [this, &version_map] (const hobject_t& object) {
               crimson::osd::ObjectContextRef obc;
               if (pg.is_primary()) {