]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commit
osd/ReplicatedPG: basic flush and evict agent functionality
authorSage Weil <sage@inktank.com>
Fri, 24 Jan 2014 22:35:41 +0000 (14:35 -0800)
committerSage Weil <sage@inktank.com>
Sun, 16 Feb 2014 06:09:38 +0000 (22:09 -0800)
commitda9ed08ea358ede8dc887f1e8fd2495b625b3d23
tree37bbd128139e661913ffb3bc9c41c25e6d730377
parenta54f81982d5f83a6c9aacaa1fef26baafb548b48
osd/ReplicatedPG: basic flush and evict agent functionality

This is very basic flush and evict functionality for the tiering agent.

The flush policy is very simple: if we are above the threshold and the
object is dirty, and not super young, flush it.  This is not too braindead
of a policy (although we could clearly do something smarter).

The evict policy is pretty simple: evict the object if it is clean and
we are over our full threshold.  If we are in the middle mode, try to
estimate how cold the object is based on an accumulated histogram of
objects we have examined so far, and decide to evict based on our
position in that histogram relative to our "effort" level.

Caveats:
 * the histograms are not refreshed
 * we aren't taking temperature into consideration yet, although some of
   the infrastructure is there.

Signed-off-by: Sage Weil <sage@inktank.com>
src/common/config_opts.h
src/osd/Makefile.am
src/osd/PG.cc
src/osd/PG.h
src/osd/ReplicatedPG.cc
src/osd/ReplicatedPG.h
src/osd/TierAgentState.h [new file with mode: 0644]
src/osd/osd_types.h