-
Notifications
You must be signed in to change notification settings - Fork 1
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
Memory Management + Buffer Cache #4
Comments
Quoted from Robert Haas: some notes on terminology if you're trying to parse the Andy Pavlo talk:
there were two things in the talk that i thought might be mistakes:
|
2 papers about GCLOCK(Generalized clock): |
Frédéric: Andy talks about finding a trade-off between evicting a dirty page that is rather cold versus evicting a clean page that is rather hot. But if I understood correctly, postgres' implementation of GCLOCK doesn't even consider wether a page is dirty or not? Ants: We have background writer that tries to make sure that if a page is going to be evicted then it has been written out by the time someone needs it. Robert Haas: the relevant logic here is in StrategyGetBuffer(). it doesn't care whether the buffer is dirty when deciding what to evict:
Junwang Zhao: I thought the usage count can be used for that? If a dirty page is cold, it's usage count is low, a hot clean page has high usage count, so the dirty page will be selected as the victim. |
x4m: Any block may be in shared buffers, or buffers of some BufferAccessStrategy. When we are locking buffer in shared buffers, how do we ensure it's not accesed somewhere by some strategy? TomasV: It still has to be in the global hash table, mapping blocks to shared buffers. |
Signed-off-by: Junwang Zhao <[email protected]>
Workshop Title
Andy Pavlo, CMU Database Group, Memory Management + Buffer Cache
Date: November 2024
Resources
The text was updated successfully, but these errors were encountered: