]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
rgw: enable chunking in Bulk Delete API implementation.
authorRadoslaw Zarzynski <rzarzynski@mirantis.com>
Sun, 25 Oct 2015 13:16:05 +0000 (14:16 +0100)
committerRadoslaw Zarzynski <rzarzynski@mirantis.com>
Tue, 8 Dec 2015 16:57:24 +0000 (17:57 +0100)
Signed-off-by: Radoslaw Zarzynski <rzarzynski@mirantis.com>
src/rgw/rgw_op.h
src/rgw/rgw_rest_swift.cc

index cc3967500ab3f875977694a89d4aa7605edaf016..78776ffe65079bd85f07e64dcfa633c5f997d2b8 100644 (file)
@@ -1143,6 +1143,8 @@ public:
   };
   /* End of Deleter subclass */
 
+  static const size_t MAX_CHUNK_ENTRIES = 1024;
+
 protected:
   int ret;
   std::unique_ptr<Deleter> deleter;
index 70658dee431f631b43cc98dfe2022223187a9179..96afdea86c87b09295dcff062fb6496b89b276c2 100644 (file)
@@ -963,6 +963,11 @@ int RGWBulkDelete_ObjStore_SWIFT::get_data(list<RGWBulkDelete::acct_path_t>& ite
     path.obj_key     = path_str.substr(sep_pos + 1);
 
     items.push_back(path);
+
+    if (items.size() == MAX_CHUNK_ENTRIES) {
+      is_truncated = true;
+      return 0;
+    }
   }
 
   *is_truncated = false;