When running tests with OpenFlow I see the following transaction completion
times consistently for 127 and 255 switches with statistics on.
50% - 5-6 ms
75% - 7-8 ms
95% - 20-60 ms
98% - 100-160 ms
By using the 95th percentile number to determine transaction creation backpressure
we can safely increase our throughput without causing timeouts due to outliers.
Change-Id: I0d9739b3045afb389583f2dd18ac431215a28f84
Signed-off-by: Moiz Raja <moraja@cisco.com>
timerContext.stop();
Snapshot timerSnapshot = commitTimer.getSnapshot();
- double allowedLatencyInNanos = timerSnapshot.get98thPercentile();
+ double allowedLatencyInNanos = timerSnapshot.get95thPercentile();
long commitTimeoutInSeconds = actorContext.getDatastoreContext()
.getShardTransactionCommitTimeoutInSeconds();
doReturn(commitTimer).when(actorContext).getOperationTimer("commit");
doReturn(commitTimerContext).when(commitTimer).time();
doReturn(commitSnapshot).when(commitTimer).getSnapshot();
- doReturn(TimeUnit.MILLISECONDS.toNanos(2000) * 1.0).when(commitSnapshot).get98thPercentile();
+ doReturn(TimeUnit.MILLISECONDS.toNanos(2000) * 1.0).when(commitSnapshot).get95thPercentile();
doReturn(10.0).when(actorContext).getTxCreationLimit();
}