]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
OSD: batch trim for pg_log 2891/head
authorXinze Chi <xmdxcxz@gmail.com>
Mon, 10 Nov 2014 16:52:09 +0000 (16:52 +0000)
committerXinze Chi <xmdxcxz@gmail.com>
Mon, 10 Nov 2014 16:52:09 +0000 (16:52 +0000)
Signed-off-by: Xinze Chi <xmdxcxz@gmail.com>
src/common/config_opts.h
src/osd/ReplicatedPG.cc

index be9cb1311a8d1b39b21ae0fb28796abfe82d4eb2..203c2bede1ae764ee1941e820409cfe5aacce596 100644 (file)
@@ -570,6 +570,7 @@ OPTION(osd_pg_epoch_persisted_max_stale, OPT_U32, 200)
 
 OPTION(osd_min_pg_log_entries, OPT_U32, 3000)  // number of entries to keep in the pg log when trimming it
 OPTION(osd_max_pg_log_entries, OPT_U32, 10000) // max entries, say when degraded, before we trim
+OPTION(osd_pg_log_trim_min, OPT_U32, 100)
 OPTION(osd_op_complaint_time, OPT_FLOAT, 30) // how many seconds old makes an op complaint-worthy
 OPTION(osd_command_max_records, OPT_INT, 256)
 OPTION(osd_max_pg_blocked_by, OPT_U32, 16)    // max peer osds to report that are blocking our progress
index a72c30259ab0ac1170c12cf96d894fcab2d2b2f3..98c425585aee12f57ba11118ada6a4882e8c8c8b 100644 (file)
@@ -1046,6 +1046,9 @@ void ReplicatedPG::calc_trim_to()
       min_last_complete_ondisk != pg_trim_to &&
       pg_log.get_log().approx_size() > target) {
     size_t num_to_trim = pg_log.get_log().approx_size() - target;
+    if (num_to_trim < cct->_conf->osd_pg_log_trim_min) {
+      return;
+    }
     list<pg_log_entry_t>::const_iterator it = pg_log.get_log().log.begin();
     eversion_t new_trim_to;
     for (size_t i = 0; i < num_to_trim; ++i) {