4 ms·
This is a great article. There was a previous attempt to bring async io to Postgres, but sadly it went dormant: https://commitfest.postgresql.org/34/3316/ http
by samwillis 2y ago
This is a great article.
There was a previous attempt to bring async io to Postgres, but sadly it went dormant: https://commitfest.postgresql.org/34/3316/ https://commitfest.postgresql.org/34/3316/
A more recent proposal was to make it possible to swap out the storage manager for a custom one without having to fork the codebase. I.e. extensions can provide an alternative. https://commitfest.postgresql.org/49/4428/ https://commitfest.postgresql.org/49/4428/
This would allow for custom ones that do async IO to any custom storage layer.
There are a lot of interested parties in the new proposal (it's come out of Neon, as they run a fork with a custom storage manager). With the move to separate compute from storage this becomes something many Postgres orgs will want to be able to do.
A change of core to use async io becomes slightly less relevant when you can swap out the whole storage manager.
(Note that the storage manager only handles pages in the heap tables, not the WAL. There is more exploration needed there to make the WAL extendable/replaceable)
- topspin 2y agoThank you for pointing this out. A librados based storage manager would be a game changer. The scalability and availability story of Postgres would be rewritten.