]> git.apps.os.sepia.ceph.com Git - ceph-ci.git/commitdiff
osd: use osd_target_transaction_size when batch removing objects
authorxie xingguo <xie.xingguo@zte.com.cn>
Wed, 3 Aug 2016 22:36:15 +0000 (06:36 +0800)
committerxie xingguo <xie.xingguo@zte.com.cn>
Wed, 3 Aug 2016 23:08:50 +0000 (07:08 +0800)
Hard code transaction size to be 300 is not good. Since we already
introduce osd_target_transaction_size for the same purpose, we can
use it directly here.

Signed-off-by: xie xingguo <xie.xingguo@zte.com.cn>
src/osd/OSD.cc

index 0d87eef45b853a739d31020e0bedc8773325d725..616bb068beff3c3f606dd4c8009f21929df8be2f 100644 (file)
@@ -2954,7 +2954,7 @@ void OSD::recursive_remove_collection(ObjectStore *store, spg_t pgid, coll_t tmp
                         INT_MAX, &objects, 0);
 
   // delete them.
-  unsigned removed = 0;
+  int removed = 0;
   for (vector<ghobject_t>::iterator p = objects.begin();
        p != objects.end();
        ++p, removed++) {
@@ -2963,7 +2963,7 @@ void OSD::recursive_remove_collection(ObjectStore *store, spg_t pgid, coll_t tmp
     if (r != 0 && r != -ENOENT)
       assert(0);
     t.remove(tmp, *p);
-    if (removed > 300) {
+    if (removed > g_conf->osd_target_transaction_size) {
       int r = store->apply_transaction(osr.get(), std::move(t));
       assert(r == 0);
       t = ObjectStore::Transaction();