common/shared_cache.hpp: add clear()

Clear clears a key/value from the cache.

Signed-off-by: Samuel Just <sam.just@inktank.com>
doc/dev/osd_internals: add some info about throttles

Signed-off-by: Samuel Just <sam.just@inktank.com>
common/shared_cache.hpp: fix set_size()

Signed-off-by: Samuel Just <sam.just@inktank.com>
FileStore: add fd cache

Signed-off-by: Samuel Just <sam.just@inktank.com>
os/: Add WBThrottle

Signed-off-by: Samuel Just <sam.just@inktank.com>
FileStore: integrate WBThrottle

Signed-off-by: Samuel Just <sam.just@inktank.com>
ReplicatedPG::submit_push_complete don't remove the head object

The object would have had to have been removed already.  With
fd caching, this extra remove might check the wrong replay_guard
since the fd caching mechanism assumes that between any operation
on an hobject_t oid and a remove operation, all operations on that
hobject_t must refer to the same inode.

Signed-off-by: Samuel Just <sam.just@inktank.com>
WBThrottle: add perfcounters

Signed-off-by: Samuel Just <sam.just@inktank.com>
doc/dev/osd_internals: add wbthrottle.rst

Signed-off-by: Samuel Just <sam.just@inktank.com>
WBThrottle: rename replica nocache

We may want to influence the caching behavior for other
reasons.

Signed-off-by: Samuel Just <sam.just@inktank.com>
WBThrottle: add some comments and some asserts

Signed-off-by: Samuel Just <sam.just@inktank.com>
Merge branch 'wip_osd_throttle'

Fixes: #4782
Reviewed-by: Sage Weil