[CONTROLLER-1561] Cluster transaction pipelining function Created: 26/Oct/16 Updated: 25/Jul/23 Resolved: 29/Dec/16 |
|
| Status: | Resolved |
| Project: | controller |
| Component/s: | clustering |
| Affects Version/s: | None |
| Fix Version/s: | None |
| Type: | Bug | ||
| Reporter: | HeYunBo | Assignee: | Tom Pantelis |
| Resolution: | Done | Votes: | 0 |
| Labels: | None | ||
| Remaining Estimate: | Not Specified | ||
| Time Spent: | Not Specified | ||
| Original Estimate: | Not Specified | ||
| Environment: |
Operating System: All |
||
| Issue Links: |
|
||||||||
| External issue ID: | 7033 | ||||||||
| Description |
|
I have finished the cluster transaction pipelining function and have done performance test in boron, the tx rate increased greatly. The function involved the following projects. 1. sal-akka-raft The yangtools support has been submitted https://git.opendaylight.org/gerrit/#/c/47569/ |
| Comments |
| Comment by HeYunBo [ 26/Oct/16 ] |
|
sal-akka-raft sal-distribute-datastore The core implementations is ShardDataTree.java AbstractDataTreeTip.java |
| Comment by HeYunBo [ 26/Oct/16 ] |
|
In order to maintain the stability of the current transaction function,provides JMX API to enable transaction pipeline policy. meanwhile, this function need to disable TransactionRateLimiter |
| Comment by Robert Varga [ 29/Oct/16 ] |
|
I believe the ShardDataTree bits are conceptually fine – in fact this is precisely why there is a DataTreeCandidateTip and we have a ShardDataTree in its current shape and form. Why does the TransactionLimiter need to be disabled, though? Is it causing problems? |
| Comment by HeYunBo [ 31/Oct/16 ] |
|
The TransactionLimiter is used to measure the transaction latency. Normally, the TransactionCreationRateLimit is 500~700 The TransactionCreationRateLimit is 400~500 if keep TransactionLimiter in transaction pipeline process , the total tx rate will be as same as before per shard even though in multi-thread Condition |
| Comment by Tom Pantelis [ 31/Oct/16 ] |
|
(In reply to HeYunBo from comment #4) Are you saying the TransactionLimiter artificially limits the rate? We can't disable the rate limiting. However, Robert is re-implementing the front-end along with the rate limiting. |
| Comment by HeYunBo [ 04/Nov/16 ] |
|
Yes, actually,the TransactionLimiter limits the rate, the implements need to be reconsidered when enable the transaction pipelining function |
| Comment by Tom Pantelis [ 15/Dec/16 ] |
|
The first patch, https://git.opendaylight.org/gerrit/#/c/28775/, to handle the DataTreeCandidate chaining has been merged. Submitted a second patch to implement the transaction pipe-lining: https://git.opendaylight.org/gerrit/#/c/49384/ |
| Comment by Tom Pantelis [ 21/Dec/16 ] |
|
Remaining patches: https://git.opendaylight.org/gerrit/#/c/49439/ |