MB-36926: Add flusher replace benchmarks
MB-36926: Add flusher replace benchmarks

Currently the flusher benchmark benchmarks the fresh insert of a
document on the first iteration then a replace of the document on every
other iteration. This means that our result is a mix of both inserts
replaces for every benchmark except the largest (1,000,000 items) as
this only performs 1 iteration due ot the time it takes to run.

Change this to benchmark only fresh inserts of documents and add an
additional benchmark to measure the memory and time taken for only
replaces. This gives us a range of memory usages which we may see when
flushing. In particular, an insert heavy flush is something we are
likely to see when rebalancing or restoring.

Benchmark:

Run on (24 X 2400 MHz CPU s)
2019-12-17 08:53:46
***WARNING*** CPU scaling is enabled, the benchmark real time measurements may be noisy and will incur extra overhead.
--------------------------------------------------------------------------------------------------------
Benchmark                                                 Time           CPU Iterations
 UserCounters...--------------------------------------------------------------------------------------------------------
MemTrackingVBucketBench/FlushVBucket/0/1/0         12174950 ns     497544 ns       1000 PeakBytesPerItem=169.625k PeakFlushBytes=169.625k   1.96277k items/s store:couchdb mode:insert
MemTrackingVBucketBench/FlushVBucket/0/1/1         10107486 ns     595738 ns       1224 PeakBytesPerItem=174.156k PeakFlushBytes=174.156k   1.63925k items/s store:couchdb mode:replace
MemTrackingVBucketBench/FlushVBucket/0/100/0       11341718 ns     752912 ns        930 PeakBytesPerItem=2.40527k PeakFlushBytes=240.531k   129.705k items/s store:couchdb mode:insert
MemTrackingVBucketBench/FlushVBucket/0/100/1       10733501 ns     863719 ns        819 PeakBytesPerItem=2.54199k PeakFlushBytes=254.234k   113.065k items/s store:couchdb mode:replace
MemTrackingVBucketBench/FlushVBucket/0/10000/0     59571530 ns   48917808 ns         13 PeakBytesPerItem=818 PeakFlushBytes=7.80299M   199.633k items/s store:couchdb mode:insert
MemTrackingVBucketBench/FlushVBucket/0/10000/1     70590618 ns   59827354 ns         11 PeakBytesPerItem=841 PeakFlushBytes=8.02585M    163.23k items/s store:couchdb mode:replace
MemTrackingVBucketBench/FlushVBucket/0/1000000/0 7998039711 ns 7629535434 ns          1 PeakBytesPerItem=839 PeakFlushBytes=800.252M   127.998k items/s store:couchdb mode:insert
MemTrackingVBucketBench/FlushVBucket/0/1000000/1 9077836833 ns 8793012767 ns          1 PeakBytesPerItem=844 PeakFlushBytes=804.976M   111.061k items/s store:couchdb mode:replace

Change-Id: I784a5942efda7bbe4110887cbe51ea509c462882
Reviewed-on: http://review.couchbase.org/119440
Tested-by: Build Bot <80754af91bfb6d1073585b046fe0a474ce868509@couchbase.com>
Tested-by: Ben Huddleston <6c0d3f0e87b08a8c49786ca528f2c4b1ad3d36f3@couchbase.com>
Reviewed-by: Dave Rigby <a09264da4832c7ff1d3bf1608a19f4b870f93750@couchbase.com>

daverigby/kv_engine,daverigby/kv_engine,daverigby/kv_engine,daverigby/kv_engine