Re:Building a Cloud Database from Scratch: Why We Moved from...
by lenkite on Friday May 27, 2022 @11:33PM
(#31537378)
This is basically memory arenas right ? How does one handle problems as described here https://www.celonis.com/blog/c-memory-arenas-and-their-impli..., where memory appears to not be returned to the OS ?
Re:Building a Cloud Database from Scratch: Why We Moved from...
by Thorrez on Saturday May 28, 2022 @02:23AM
(#31538044)
In that blog, the arena is managed by the underlying library, and the programmer has no control over when memory is returned, and sometimes the underlying library keeps the memory around when the programmer doesn't want it to. It sounds like cyber_kinetist is talking about manually managing the arena, so then the programmer is in direct control of when the memory is returned, so the problem won't happen.
(Example: you'll understand this when you have experience with any graphics APIs, RAII wrappers don't really help you that much and will actually make your life way harder...)
My solution for general resource management, is to manage your resources manually on a central store (as you should be), get references to these objects using either pointers or indices, and use techniques like generational references to catch use-after-free scenarios at runtime. Makes things way simpler and performant.