-
Notifications
You must be signed in to change notification settings - Fork 4.7k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Use HdrHistogram for latency percentile calculation #779
Use HdrHistogram for latency percentile calculation #779
Conversation
…Histogram * Also fixed some incorrect assertions around how percentile was being calculated
Performance numbers: Benchmark (forceCircuitOpen) (isolationStrategy) BaselineScore BaselineError HDR Score HDR Error Units Diff CommandExecutionPerfTest.baselineAsyncCustomThreadPoolObserve N/A N/A 247.147 5.138 243.765 3.359 ops/ms -1.37% CommandExecutionPerfTest.baselineExecute N/A N/A 1438688.894 5143.102 1422630.068 8143.436 ops/ms -1.12% CommandExecutionPerfTest.baselineQueue N/A N/A 213.75 3.827 220.422 3.891 ops/ms 3.12% CommandExecutionPerfTest.baselineSyncObserve N/A N/A 12086.749 90.029 12005.763 92.88 ops/ms -0.67% CommandExecutionPerfTest.hystrixExecute TRUE THREAD 756.134 9.987 750.421 14.344 ops/ms -0.76% CommandExecutionPerfTest.hystrixExecute TRUE SEMAPHORE 763.237 13.021 761.161 11.188 ops/ms -0.27% CommandExecutionPerfTest.hystrixExecute FALSE THREAD 105.68 6.129 104.066 7.903 ops/ms -1.53% CommandExecutionPerfTest.hystrixExecute FALSE SEMAPHORE 310.77 8.657 312.867 6.848 ops/ms 0.67% CommandExecutionPerfTest.hystrixObserve TRUE THREAD 694.001 12.909 697.921 8.388 ops/ms 0.56% CommandExecutionPerfTest.hystrixObserve TRUE SEMAPHORE 695.901 9.682 701.939 12.944 ops/ms 0.87% CommandExecutionPerfTest.hystrixObserve FALSE THREAD 109.284 2.681 107.554 2.879 ops/ms -1.58% CommandExecutionPerfTest.hystrixObserve FALSE SEMAPHORE 278.146 3.883 280.664 4.046 ops/ms 0.91% CommandExecutionPerfTest.hystrixQueue TRUE THREAD 752.702 10.624 780.142 13.745 ops/ms 3.65% CommandExecutionPerfTest.hystrixQueue TRUE SEMAPHORE 750.394 11.706 767.212 12.961 ops/ms 2.24% CommandExecutionPerfTest.hystrixQueue FALSE THREAD 109.66 1.806 103.133 8.17 ops/ms -5.95% CommandExecutionPerfTest.hystrixQueue FALSE SEMAPHORE 309.703 6.823 311.532 8.319 ops/ms 0.59% CommandExecutionPerfTest.hystrixToObservable TRUE THREAD 737.15 14.007 740.795 12.562 ops/ms 0.49% CommandExecutionPerfTest.hystrixToObservable TRUE SEMAPHORE 739.351 12.943 735.285 10.498 ops/ms -0.55% CommandExecutionPerfTest.hystrixToObservable FALSE THREAD 113.566 1.413 111.999 2.029 ops/ms -1.38% CommandExecutionPerfTest.hystrixToObservable FALSE SEMAPHORE 301.764 5.037 301.471 5.837 ops/ms -0.10% MultiThreadedMetricsTest.evenSplit:evenSplitOfWritesAndReadsCommandExecution N/A THREAD 88.055 3.119 81.455 3.558 ops/ms -7.50% MultiThreadedMetricsTest.evenSplit:evenSplitOfWritesAndReadsCommandExecution N/A SEMAPHORE 229.168 11.314 223.642 16.355 ops/ms -2.41% MultiThreadedMetricsTest.readHeavy:readHeavyCommandExecution N/A THREAD 25.409 1.039 25.435 1.056 ops/ms 0.10% MultiThreadedMetricsTest.readHeavy:readHeavyCommandExecution N/A SEMAPHORE 107.26 2.433 105.018 3.124 ops/ms -2.09% MultiThreadedMetricsTest.writeHeavy:writeHeavyCommandExecution N/A THREAD 96.301 6.428 97.505 6.774 ops/ms 1.25% MultiThreadedMetricsTest.writeHeavy:writeHeavyCommandExecution N/A SEMAPHORE 275.957 12.397 252.638 14.648 ops/ms -8.45% |
I will reformat the above comment when I have more time, but the takeaway is that using HdrHistogram for percentiles gained correctness and didn't appear to affect performance negatively |
NetflixOSS » Hystrix » Hystrix-pull-requests #112 SUCCESS |
Use HdrHistogram for latency percentile calculation
Partially addresses #698