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

Improve LogIterator Efficiency by Using Buffer Pool Instead of Page Allocation #1

Open
JyotinderSingh opened this issue Nov 5, 2024 · 3 comments
Assignees

Comments

@JyotinderSingh
Copy link
Owner

JyotinderSingh commented Nov 5, 2024

Currently, each LogIterator object allocates a Page to hold the log blocks it accesses. However, using a buffer from the buffer pool instead of directly allocating a page could improve efficiency, especially given that LogIterator is exclusively used by the recovery manager for rollbacks or recovery processes.

Modify LogIterator to use buffers from the buffer pool, rather than directly allocating pages. This would enable LogIterator to leverage caching mechanisms provided by the buffer pool, reducing redundant disk I/O during recovery.

We need to also think about how the buffer should be unpinned from a block.

Benefits

  1. Improved Performance: Using buffers will allow recovery processes to benefit from caching, resulting in reduced disk reads and faster access to log records.
  2. Simplified Resource Management: Unified use of buffers for both normal operations and recovery processes simplifies the system architecture and reduces potential code complexity.
  3. Enhanced Consistency and Integrity: Leveraging buffer management mechanisms, like pin counts and dirty flags, ensures that log blocks remain in memory as needed during critical recovery operations.
@tejaswini22199
Copy link

Hey @JyotinderSingh , I would like to work on this issue. could you assign this issue to me ?

@JyotinderSingh
Copy link
Owner Author

Hey @JyotinderSingh , I would like to work on this issue. could you assign this issue to me ?

Thanks for your interest in this issue @tejaswini22199. I've assigned it to you.

@tejaswini22199
Copy link

Thank you @JyotinderSingh !

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

No branches or pull requests

2 participants