Current .get() methods return values as bufferlists, which are replacing
bufferlists provided by caller. This is particularly inefficient with
MonitorDBStore, because its get() method uses its own temporary bufferlist
which is then appended to bufferlist provided by MonitorDBStore user.
This changeset:
- adds value_as_ptr() which returns just a bufferptr
- modifies *DBStore.get() methods to append returned bufferptr to provided
bufferlist instead of replacing it
- modifies mondbstore to pass provided bufferlist as target for underlying
.get() method, instead of providing its own and appending it to one given
by caller.
This reduces CPU usage of *DBStore.get() methods by up to 5% (particularly
visible with MonitorDBStore, which doesn't use two temporary bufferlists
anymore).
Signed-off-by: Piotr Dałek <piotr.dalek@ts.fujitsu.com>