3 ms·
Doesn't the author mention using arenas?
by surajrmal 2y ago
Doesn't the author mention using arenas?
- ajross 2y agoArenas are just heaps, and subject to all the same problems. It's true that in the LSM use case in question (and I need to point out that databases are not my area!) there is a clear "flush" operation that will put a limit on how much heap churn and fragmentation you need to tolerate. And maybe that's an answer that makes skiplists more desirable in this context. But things like long-lived app data and language runtimes don't have that, and skiplists turn into headaches. A simpler consequence of the same problem: I mostly work in embedded stuff and skiplists are pretty much a non-starter as they can't easily be made intrusive without a bunch of waste.
- peterfirefly 2y agoDifferent sizes would be allocated in different arenas.
- deleted 2y ago[deleted]
- tomnipotent 2y agoIt's my understanding that in the context of append-only skip lists, like what RocksDB uses for memtables, you can see wasted space at the end of a block within an arena but no fragmentation between records within a block. SSTables are another story.