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

After submitting 4000 transactions, they slowly trickle into transaction_pool. See if this can be improved #723

Open
stringhandler opened this issue Oct 10, 2023 · 1 comment

Comments

@stringhandler
Copy link
Contributor

To replicate:
Submit 4000 transactions
The transaction_submitter ends quickly.
Then repeatedly run

select count(*) as mempool, sum(case when stage = 'AllPrepared' then 1 else 0 end) as all_prepared,
       sum(case when stage = 'LocalPrepared' then 1 else 0 end) as local_prepared,
         sum(case when stage = 'Prepared' then 1 else 0 end) as prepared,
            sum(case when stage = 'New' then 1 else 0 end) as new
from transaction_pool;

Expected:
All 4000 should be there in New

Actual:
Transactions appear in New (count goes up) at a rate of about 5 txs a second

Was tested using 5 vns on dan-testing

Cifko:
I haven't encountered the issue above, but the 4000 transactions was slow. In total (for all 4000 txs)

  • 122 seconds was the inserting into the DB
    • 8 second out of it is the creation of the db row,
    • less than one second is hex and json conversion
    • the rest is the tx.commit
  • 58 seconds was gossiping

So on average the whole transaction is 0.046 seconds (~22 tx/sec).

@stringhandler
Copy link
Contributor Author

seems like sqlite is the limit here. We use sqlite for easy debugging. Perhaps it's time to try a more performant db

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Development

No branches or pull requests

1 participant