solana icon indicating copy to clipboard operation
solana copied to clipboard

Split out voting and banking threads in banking stage

Open AshwinSekar opened this issue 1 year ago • 1 comments

Additionally this allows us to aggressively prune the buffer for voting threads as with the new vote state only the latest vote from each validator is necessary.

Problem

Summary of Changes

Fixes #

AshwinSekar avatar Sep 20 '22 00:09 AshwinSekar

They should maybe have separate block compute limits too? Right now it seems that there is a potential for non-vote transaction compute to starve out votes due to non votes filling up block compute (see recent discussion in mb planning channel)

nikhayes avatar Sep 20 '22 22:09 nikhayes

They should maybe have separate block compute limits too? Right now it seems that there is a potential for non-vote transaction compute to starve out votes due to non votes filling up block compute (see recent discussion in mb planning channel)

The priority details are being ripped out of vote txs. With this change vote threads and bank threads would compete to add to block however having some sort of separation might be interesting cc @taozhu-chicago .

AshwinSekar avatar Sep 23 '22 21:09 AshwinSekar

Was bench-tps run to compare before/after this change?

apfitzge avatar Sep 29 '22 21:09 apfitzge

Was bench-tps run to compare before/after this change?

Before

test bench_banking_stage_multi_accounts             ... bench:  11,967,033 ns/iter (+/- 4,120,951)
test bench_banking_stage_multi_accounts_with_voting ... bench:  15,190,062 ns/iter (+/- 1,918,300)
test bench_banking_stage_multi_programs             ... bench:  15,294,097 ns/iter (+/- 3,577,250)
test bench_banking_stage_multi_programs_with_voting ... bench:  22,088,729 ns/iter (+/- 2,597,948)

After

test bench_banking_stage_multi_accounts             ... bench:  11,092,034 ns/iter (+/- 2,780,082)
test bench_banking_stage_multi_accounts_with_voting ... bench:  15,460,632 ns/iter (+/- 1,716,954)
test bench_banking_stage_multi_programs             ... bench:  15,422,798 ns/iter (+/- 2,654,561)
test bench_banking_stage_multi_programs_with_voting ... bench:  21,099,046 ns/iter (+/- 1,589,215)

AshwinSekar avatar Sep 30 '22 01:09 AshwinSekar