optimize in-memory transaction store #1063
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
What
Increasing the transaction retention window would increase the memory utilization.
This optimization helps to reduce that.
Why
Storing the expanded go-XDR in memory could be a memory hog compared to encoded XDR.
Known limitations
The additional encoding during ingestion would slow down the ingestion ( a bit ).
This is a tradeoff in CPU & ingestion time vs memory utilization.
Memory Consumption
The transaction count of 10M was selected since it aligns with the expected daily transaction volume of 500 transactions per ledger /w roughly 20,000 transactions per day ( 4.32 seconds / ledger )