Appy created HBASE-16679: ---------------------------- Summary: Flush throughput controller: Minor perf change and fix flaky TestFlushWithThroughputController Key: HBASE-16679 URL: https://issues.apache.org/jira/browse/HBASE-16679 Project: HBase Issue Type: Bug Reporter: Appy Assignee: Appy
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 -- This message was sent by Atlassian JIRA (v6.3.4#6332)