-
Notifications
You must be signed in to change notification settings - Fork 19
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
[epic] move in-memory datastructures to the database #115
Comments
Related: #60 |
This was referenced Apr 4, 2024
mollykarcher
changed the title
Move in-memory datastructures to the database
[epic] move in-memory datastructures to the database
Apr 11, 2024
Merged
mollykarcher
modified the milestones:
platform sprint 47,
platform sprint 49,
platform sprint 48
Jun 18, 2024
Merged
@psheth9 can we close this? Did you do performance tests in AWS? |
Yes I am closing this !! Also performance and sanity checks are being done in this issue |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
What problem does your feature solve?
Reduces memory consumption so that we can extend the default history retention to one week (currently at 2 hours for transactions and 24 hours for events). See the analysis document for details.
What would you like to see?
I would like to see the in-memory data-structures (Currently based around
LedgerBucketWindow
) stored in the database instead of in-memory.Regarding the DB schema, we can either roughly mirror what's kept in memory or use some sort of indexing on the txmeta which is already kept in the DB.
We should also have the bigger picture in mind when modifying the schema. The chosen schema should consider extensibility to implement the new Soroban RPC endoints.
I suggest presenting a schema design which should be peer reviewed before jumping to the implementation.
As an output of this ticket we should also get a performance comparison (e.g. through a purposely built Golang benchmark)
What alternatives are there?
The performance shouldn't considerably degrade. If it does, we should consider caching recent data (particularly for transactions). However, a hybrid in-memory/db approach increases complexity.
Subtasks
Design
Implementation (Transactions)
getTransaction
RPC call to leverage a larger history window #140Implementation [Events]
getEvents
RPC to fetch events from DB #190The text was updated successfully, but these errors were encountered: