fabric
fabric copied to clipboard
Improve the throughtput of fabric
Description
According to the claim of fabric, 100,000 TPS is the aim to achieve if there are about 15 validating nodes running in close proximity. However, according to my stress testing under production environment, the result is far from that aim:
Describe How to Reproduce
I am using the simplest example2 of chaincode to perform the test, and create 4 peers on 4 different machines. In order to reduce the docker networking overhead as much as possibe, I am using the project calico
as the docker SDN solution.
The simple query performance for each peer could reach 7000 QPS
per second, while the simple invoke performance for each peer is only 700 TPS
. This is my hardware environment: Intel(R) Xeon(R) CPU E5-2620 v3 @ 2.40GHz 64G DRAM 1T SATA Disk
In terms of transaction per second, 700 is the current status, I've not tested a P2P networking of 15 nodes, even if the throughput could be linear scalable, the peak TPS of current system is only 10,000 , which is only 1/10 of the aim, I'm not sure whether it could be linear scalable given 15 nodes, although it has been proven for 4 nodes, since the overhead of PBFT consensus would grow exponentially with the increasing number of nodes.
@yingfeng we are constantly striving to improve the performance and throughput. The consensus redesign will hopefully yield significant improvements.
So , was it determined by fabric team what contributes mostly to latency ? Network latency ? Consensus overhead ? What is the status of TPS now ?
@christo4ferris is that redesign of consensus protocol completed? Any updates so far ?