Description
Minor perf change:
Calculate maxThroughputPerOperation outside of control() since start()&end() are called only once per operation, but control can be called hundreds/thousands of time.
Flaky test:
Problems in current test:
- writes only 2.5MB each iteration but control triggers sleep only every 1Mb write (decided by HBASE_HSTORE_FLUSH_THROUGHPUT_CONTROL_CHECK_INTERVAL). Either increase data written in each batch or decreasing this threshold for better throughput control.
- We shouldn't be timing table disable/delete/create and populating data in throughput calculations.
See the differences below.
With patch (total data written 30M)
run 1:
Throughput is: 1.0113841089709052 MB/s
Throughput w/o limit is: 14.665069580078125 MB/s
With 1M/s limit, flush use 29683ms; without limit, flush use 2130ms
run 2:
Throughput is: 1.0113841089709052 MB/s
Throughput w/o limit is: 14.665069580078125 MB/s
With 1M/s limit, flush use 29674ms; without limit, flush use 2027ms
Without patch (total data written 25M)
run 1:
Throughput is: 0.921681903523776 MB/s
Throughput w/o limit is: 4.06833346870301 MB/s
With 1M/s limit, flush use 27189ms; without limit, flush use 6159ms
run 2:
Throughput is: 0.9422982728478803 MB/s
Throughput w/o limit is: 4.047858424942981 MB/s
With 1M/s limit, flush use 26594ms; without limit, flush use 6190ms