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

Implement snapshot and garbage collector that move all confirmed blocks to disk, and moves all spent outputs (and inputs?) to disk. #13

Open
kulpreet opened this issue Aug 13, 2020 · 1 comment
Projects

Comments

@kulpreet
Copy link
Owner

No description provided.

@kulpreet kulpreet created this issue from a note in MVCC DB (To do) Aug 13, 2020
@kulpreet
Copy link
Owner Author

This will require a revisit to block, tuple and varlens design. Specifically to handle pointer swizzling when these are pushed to and from disk.

Data is swizzled out to disk only once.

According to current design, when we need to read transactions, we will populate a temporary buffer to respond to query with data fetched from disk and then blow that away when memory is needed to respond to next query.

In other words, we don't populate the results fetched from disk into memory block pool, which will require us to once again swizzle and send data to disk. Instead, once data is gone to disk, it never hits the block pool buffers again. Results are constructed in a separate memory space which can just be cleared out whenever we need space for a new query.

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

No branches or pull requests

1 participant