|
|
|
|
|
by ikawe
1404 days ago
|
|
I should say though, I think your proposal makes sense as a way to minimize the impact of any individual checkpoint! Though you still have to occasionally support arbitrarily large WAL files to an extent because there’s no limit to how big any one write transaction is. |
|
I see it as a kind of reference counting for WAL data. A WAL file can only be deleted once the sum of all refcounts of transactions in it are zero (synced to main DB or aborted). So minimal GC impact would be if every transaction had its own WAL file but that brings overhead itself so a sensible tradeoff might be to find a middle ground where you split WAL files once they reach a certain size (configurable).