3 ms·
Legacy reasons. The idea was that you wouldn't need a WAL because the table itself is the log. And then you could support time-travel queries if you never clean
by apavlo 3y ago
Legacy reasons. The idea was that you wouldn't need a WAL because the table itself is the log. And then you could support time-travel queries if you never cleaned up the expired tuples.
- riku_iki 3y agoIs MVCC actually superior by some other considerations? Less lock contentions, transactional DML.
- masklinn 3y agoThe problem is not mvcc but postgres’ implementation details of it.
- Max-Ganz-II 3y agoIn what way? I didn't see anything obviously improper when I learned how serialization isolation worked.
- j16sdiz 3y agoA delicated full vacuum process that need full locking, how little isolation between tables, etc Lots of the pain point have been mitigated in the last ten years. It is now as simple as other comparable complex db can go (i.e. Not simple, but you can't find better product)
- masklinn 3y agoTFA covers its issues? It’s specifically compares postgres’ to other implementations’ (oracle and mysql).
- jabl 3y agoAlso the paper linked from TFA goes into the various implementation options in more detail: https://db.cs.cmu.edu/papers/2017/p781-wu.pdf https://db.cs.cmu.edu/papers/2017/p781-wu.pdf
- drkp 3y ago_And_ it wasn't even originally designed to be used for concurrency control at all...