]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commit
mon: PaxosService: fix trim criteria so to avoid constantly trimming 230/head
authorJoao Eduardo Luis <joao.luis@inktank.com>
Thu, 18 Apr 2013 15:45:07 +0000 (16:45 +0100)
committerJoao Eduardo Luis <joao.luis@inktank.com>
Thu, 18 Apr 2013 15:45:07 +0000 (16:45 +0100)
commit4b34b0e52b72a4a09bf193a6a556d2204bef8e6e
treeb1b7cc64c80daccf33706b91930ecd43ec5739ea
parent5a5fdfc66d5fb0d476cadde3de1f6dfb7a0acde7
mon: PaxosService: fix trim criteria so to avoid constantly trimming

Say a service establishes it will only keep 500 versions once a given
condition X is true.  Now say that said condition X only becomes true
after said service committing some 800 versions.

Once we decide to trim, this service would trim all 300 surplus versions
in one go.  After that, each committed version would also trim the
previous version.

Trimming an unbounded number of versions is not a good practice
as it will generate bigger transactions (thus a greater workload on
leveldb) and therefore bigger messages too.

Constantly trimming versions implies more frequent accesses to leveldb,
and keeping around a couple more versions won't hurt us in any significant
way, so let us put off trimming unless we go over a predefined minimum.

This patch adds two new options:

 paxos service trim min - minimum amount of versions to trigger a trim
                          (default: 30, 0 disables it)
 paxos service trim max - maximum amount of versions to trim during a
                          single proposal
                          (default: 50, 0 disables it)

Signed-off-by: Joao Eduardo Luis <joao.luis@inktank.com>
src/common/config_opts.h
src/mon/MDSMonitor.h
src/mon/OSDMonitor.cc
src/mon/OSDMonitor.h
src/mon/PaxosService.cc
src/mon/PaxosService.h