Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix TPS regression #312

Closed
garious opened this issue Jun 4, 2018 · 10 comments
Closed

Fix TPS regression #312

garious opened this issue Jun 4, 2018 · 10 comments
Assignees
Milestone

Comments

@garious
Copy link
Contributor

garious commented Jun 4, 2018

A performance regression slipped in since v0.5.0. It's most likely in the BankingStage, but we need to isolate it and see what can be done about it.

@garious garious added this to the v0.7.0 milestone Jun 4, 2018
@sakridge
Copy link
Member

sakridge commented Jun 4, 2018

@garious have you checked the multithreaded fix we put in for the balances table?

@garious
Copy link
Contributor Author

garious commented Jun 4, 2018

@sakridge, no, which are you referring to?

@sakridge
Copy link
Member

sakridge commented Jun 5, 2018

commit 1acd2aa
Author: Greg Fitzgerald garious@gmail.com
Date: Thu May 10 19:07:12 2018 -0600

Fix race condition in Accountant::apply_payment()

@garious
Copy link
Contributor Author

garious commented Jun 5, 2018

When there's a preexisting to account, that patch is a no-op.

@sakridge sakridge self-assigned this Jun 11, 2018
@garious
Copy link
Contributor Author

garious commented Jun 19, 2018

@sakridge says there was no measurable gain from his key-sharding experiments, which aimed to minimize thread contention for the account memory.

@sakridge
Copy link
Member

sakridge commented Jun 23, 2018

@garious @aeyakovenko
Tried to shard on bits in the public key for apply_debits -> apply_payment call flow, but I didn't manage to rework the register_entry_id() so it was still taking a write-lock. Also, apply_credits could be sharded.

Some results from #411 :

Macbook Pro 2016 15", i7-6920HQ (2.9ghz, 4c, 8t)

test pre opt (ns) with opt (ns) speedup
bench_process_transaction 7,718,997 6,467,792 1.20x
bench_banking_stage_multi_accounts 611,069,540 68,183,547 9.0x
bench_banking_stage_single_from 237,442,138 58,952,941 4.0x

Intel i7-5930k Haswell-E (3.5ghz, 6c, 12t) 'newton'

test pre opt (ns) with opt (ns) speedup
bench_process_transaction 6,707,948 3,093,161 2.2x
bench_banking_stage_multi_accounts 134,240,486 54,333,284 2.5x
bench_banking_stage_single_from 64,350,103 39,567,869 1.6x

AWS p2.8xlarge, Intel Xeon CPU E5-2686 v4 (2.2ghz, ?c, 32t)

test pre opt (ns) with opt (ns) speedup
bench_process_transaction 9,070,171 4,074,513 2.2x
bench_banking_stage_multi_accounts 383,623,579 69,790,144 5.5x
bench_banking_stage_single_from 159,065,762 29,107,990 5.5x

Intel Xeon E5-2620 v4 (2.1ghz, 8c, 16t) 'sagan'

test pre opt (ns) with opt (ns) speedup
bench_process_transaction 10,039,101 4,960,617 2x
bench_banking_stage_multi_accounts 202,239,418 88,446,154 2.3x
bench_banking_stage_single_from 95,234,199 49,350,139 1.9x

@garious
Copy link
Contributor Author

garious commented Jun 25, 2018

@sakridge, can you post newton to sagan TPS numbers here so we can close this ticket? Just client-demo to leader. No validators.

@sakridge
Copy link
Member

Highest TPS: 270133.73 sampling period 1s total transactions: 4947370 clients: 1

@sakridge
Copy link
Member

sakridge commented Jun 25, 2018

@garious Are we good with that?

@garious
Copy link
Contributor Author

garious commented Jun 25, 2018

Yes, perfect. Thanks so much for all this work!

@garious garious closed this as completed Jun 25, 2018
vkomenda pushed a commit to vkomenda/solana that referenced this issue Aug 29, 2021
Bumps [bn.js](https://github.com/indutny/bn.js) from 5.1.2 to 5.1.3.
- [Release notes](https://github.com/indutny/bn.js/releases)
- [Changelog](https://github.com/indutny/bn.js/blob/master/CHANGELOG.md)
- [Commits](indutny/bn.js@v5.1.2...v5.1.3)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants