Hello Mike Percy, Kudu Jenkins, I'd like you to reexamine a change. Please visit
http://gerrit.cloudera.org:8080/5057 to look at the new patch set (#8). Change subject: KUDU-798 (part 2) Remove automatic safe time adjustment from mvcc ...................................................................... KUDU-798 (part 2) Remove automatic safe time adjustment from mvcc This patch completely removes the APIs that allow automatic timestamp assignment and automatic safe time adjustment from Mvcc. The previous patch took care of making sure these APIs were unused in regular TabletServer operations. This patch completes that by removing the APIs from Mvcc and changing tests appropriately. Because for non-tserver based tests timestamp assignment and transaction start are now done under a lock, this does introduce a slowdown in tests like mt-tablet-test. I measured about 10% slowdown on an mvcc-stressing config of mt-tablet-test (perf stats in the end of this commit message). However this patch series does not add any overhead on the actual tablet server write path. In fact, this even simplifies it in some circumstances: for instance we were advancing safe time twice for leader side txns, one when it was consensus committed and one when the apply was complete. Due to this, there was even a moderate speedup in this more important case, measured with full_stack-insert-scan-test, of about 9%. =================================================================== full_stack-insert-scan-test run config: bin/full_stack-insert-scan-test \ --gtest_filter=*MRSOnlyStressTest* \ --inserts_per_client=200000 \ --concurrent_inserts=10 \ --rows_per_batch=1 \ --skip_scans Results on master before this patch series: 344086.766163 task-clock # 5.659 CPUs utilized 14,435,389 context-switches # 0.042 M/sec 91,225 cpu-migrations # 0.265 K/sec 112,036 page-faults # 0.326 K/sec 956,637,266,040 cycles # 2.780 GHz <not supported> stalled-cycles-frontend <not supported> stalled-cycles-backend 577,637,169,921 instructions # 0.60 insns per cycle 109,720,205,884 branches # 318.874 M/sec 730,807,372 branch-misses # 0.67% of all branches 60.807013290 seconds time elapsed Results on master after this patch series: 328574.272742 task-clock # 5.932 CPUs utilized 13,820,330 context-switches # 0.042 M/sec 170,370 cpu-migrations # 0.519 K/sec 111,997 page-faults # 0.341 K/sec 911,264,247,114 cycles # 2.773 GHz <not supported> stalled-cycles-frontend <not supported> stalled-cycles-backend 572,898,176,369 instructions # 0.63 insns per cycle 108,872,113,035 branches # 331.347 M/sec 728,934,228 branch-misses # 0.67% of all branches 55.387672052 seconds time elapsed =================================================================== mt-tablet-test run config: bin/mt-tablet-test \ --gtest_filter=*0*DoTestAllAtOnce* \ --num_counter_threads=0 \ --num_slowreader_threads=0 \ --flusher_backoff=1.0 \ --flusher_initial_frequency_ms=10000 \ --inserts_per_thread=1000000 \ --num_summer_threads=0 \ --gtest_repeat=3 \ --tablet_test_flush_threshold_mb=2000 \ --minloglevel=10 Results on master before this patch series: 618894.806683 task-clock # 7.716 CPUs utilized 7,243,713 context-switches # 0.012 M/sec 782 cpu-migrations # 0.001 K/sec 1,457,677 page-faults # 0.002 M/sec 1,794,712,092,284 cycles # 2.900 GHz <not supported> stalled-cycles-frontend <not supported> stalled-cycles-backend 648,757,335,519 instructions # 0.36 insns per cycle 128,766,989,780 branches # 208.060 M/sec 790,345,583 branch-misses # 0.61% of all branches 80.204388663 seconds time elapsed Result on master after this patch series: 620594.911121 task-clock # 7.012 CPUs utilized 17,645,922 context-switches # 0.028 M/sec 1,163 cpu-migrations # 0.002 K/sec 1,252,812 page-faults # 0.002 M/sec 1,775,937,664,119 cycles # 2.862 GHz <not supported> stalled-cycles-frontend <not supported> stalled-cycles-backend 757,882,564,990 instructions # 0.43 insns per cycle 155,500,757,477 branches # 250.567 M/sec 982,110,478 branch-misses # 0.63% of all branches 88.500973260 seconds time elapsed Change-Id: I6cd0b8aa52e4b0f5c0f4872d806e76387f6b9538 --- M src/kudu/tablet/compaction-test.cc M src/kudu/tablet/deltamemstore-test.cc M src/kudu/tablet/diskrowset-test-base.h M src/kudu/tablet/diskrowset-test.cc M src/kudu/tablet/local_tablet_writer.h M src/kudu/tablet/memrowset-test.cc M src/kudu/tablet/mvcc-test.cc M src/kudu/tablet/mvcc.cc M src/kudu/tablet/mvcc.h M src/kudu/tablet/tablet.cc M src/kudu/tablet/tablet.h M src/kudu/tablet/tablet_bootstrap.cc M src/kudu/tablet/transactions/transaction_driver.cc 13 files changed, 184 insertions(+), 273 deletions(-) git pull ssh://gerrit.cloudera.org:29418/kudu refs/changes/57/5057/8 -- To view, visit http://gerrit.cloudera.org:8080/5057 To unsubscribe, visit http://gerrit.cloudera.org:8080/settings Gerrit-MessageType: newpatchset Gerrit-Change-Id: I6cd0b8aa52e4b0f5c0f4872d806e76387f6b9538 Gerrit-PatchSet: 8 Gerrit-Project: kudu Gerrit-Branch: master Gerrit-Owner: David Ribeiro Alves <dral...@apache.org> Gerrit-Reviewer: Alexey Serbin <aser...@cloudera.com> Gerrit-Reviewer: David Ribeiro Alves <dral...@apache.org> Gerrit-Reviewer: Jean-Daniel Cryans <jdcry...@apache.org> Gerrit-Reviewer: Kudu Jenkins Gerrit-Reviewer: Mike Percy <mpe...@apache.org> Gerrit-Reviewer: Tidy Bot Gerrit-Reviewer: Todd Lipcon <t...@apache.org>