Skip to content
New issue

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

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

Already on GitHub? # to your account

ledger stress test [DO NOT MERGE] #393

Open
wants to merge 11 commits into
base: dev
Choose a base branch
from
Open

ledger stress test [DO NOT MERGE] #393

wants to merge 11 commits into from

Conversation

RichardAH
Copy link
Contributor

High Level Overview of Change

Context of Change

Type of Change

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to not work as expected)
  • Refactor (non-breaking change that only restructures code)
  • Tests (you added tests for code that already exists, or your new feature included in this PR)
  • Documentation update
  • Chore (no impact to binary, e.g. .gitignore, formatting, dropping support for older tooling)
  • Release

API Impact

  • Public API: New feature (new methods and/or new fields)
  • Public API: Breaking change (in general, breaking changes should only impact the next api_version)
  • libxrpl change (any change that may affect libxrpl or dependents of libxrpl)
  • Peer protocol change (must be backward compatible or bump the peer protocol version)

@RichardAH RichardAH changed the title async submitTransaction [DO NOT MERGE] improved mempool [DO NOT MERGE] Dec 9, 2024
@RichardAH
Copy link
Contributor Author

ripple.app.LedgerStress Multithreaded stress test: 10000 txns/ledger for 5 ledgers using 12 threads
Using 12 hardware threads
Creating 5000 accounts
Accounts created: 2500
Starting ledger 0
Metrics - Submit time: 265ms, Close time: 1406ms, Transaction count: 8486, Successful: 9985, Failed: 0, Base fee: 10
Completed ledger 0 in 1671ms with 9985 successful transactions using 12 threads
Starting ledger 1
#29986 failed: LedgerStress_test.cpp(294)
Metrics - Submit time: 242ms, Close time: 1686ms, Transaction count: 11484, Successful: 9985, Failed: 0, Base fee: 10
Completed ledger 1 in 1928ms with 9985 successful transactions using 12 threads
Starting ledger 2
Metrics - Submit time: 276ms, Close time: 1552ms, Transaction count: 9985, Successful: 9985, Failed: 0, Base fee: 10
Completed ledger 2 in 1828ms with 9985 successful transactions using 12 threads
Starting ledger 3
Metrics - Submit time: 241ms, Close time: 1554ms, Transaction count: 9985, Successful: 9985, Failed: 0, Base fee: 10
Completed ledger 3 in 1795ms with 9985 successful transactions using 12 threads
Starting ledger 4
Metrics - Submit time: 276ms, Close time: 1549ms, Transaction count: 9985, Successful: 9985, Failed: 0, Base fee: 10
Completed ledger 4 in 1825ms with 9985 successful transactions using 12 threads

@RichardAH RichardAH changed the title improved mempool [DO NOT MERGE] ledger stress test [DO NOT MERGE] Dec 9, 2024
@RichardAH
Copy link
Contributor Author

RichardAH commented Dec 9, 2024

After further testing threadlocalqueue did not appear to be faster, so I've changed this PR to just be a stress test. The existing code seems to be able to close 50k txn ledgers with a close time of around 8 seconds on commodity hardware.

Further optimizations should be chased in attempting to parallelize tx application, AOT and partial signature verification

# for free to join this conversation on GitHub. Already have an account? # to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant