6 ms·
In my benchmark of a simple ledger I generate and do 25,021,365 (25 million) random transactions per second. (Withdraw and deposit over 80,000 accounts) Parale
by samsquire 4y ago
In my benchmark of a simple ledger I generate and do 25,021,365 (25 million) random transactions per second. (Withdraw and deposit over 80,000 accounts)
Paralellise it via sharding and I get 80,958,379 transctions per second.
If I remove the randomness, I get 134,600,233 transactions per second. If I parallelise with 12 threads I get 931,024,042 transactions per second.
My point being, if you paralellise properly and do not use shared data, then you can boost performance by a multiple of the number of threads.
https://github.com/samsquire/multiversion-concurrency-control/blob/main/src/main/java/main/ShardedNonRandomBank2.java https://github.com/samsquire/multiversion-concurrency-contro...
For the technique I use for this scalability, see my journal entries on sharded structs and sharded integers
https://github.com/samsquire/ideas4#565-sharded-struct-pseudo-message-passing https://github.com/samsquire/ideas4#565-sharded-struct-pseud...
https://github.com/samsquire/ideas4#608-sharded-integers https://github.com/samsquire/ideas4#608-sharded-integers