On Tue, Sep 9, 2025 at 10:27 AM Ellen Allhatatlan < ellenallhatat...@gmail.com> wrote:
> Reading this article > > https://firebirdsql.org/migrating-from-firebird-to-postgresql-what-can-go-wrong- > I'm a bit confused (not the first time...) > > In part 1. Differences in MVCC implementation - he's saying that "It’s > not that the PostgreSQL implementation of MVCC is bad — it’s just > fundamentally different" > > But, I thought Firebird had SWEEP instead of VACUUM (how much closer > can the words be?) and that FB's implementation of MVCC was > essentially similar. > Is this correct? Then why is he pointing out the performance diffs > because of MVCC? I'm puzzled! Note: your link is wrong, corrected here: https://firebirdsql.org/migrating-from-firebird-to-postgresql-what-can-go-wrong <https://firebirdsql.org/migrating-from-firebird-to-postgresql-what-can-go-wrong-> What the article is driving at is that postgres does not use rollback logs to handle updated records in the MVCC implementation. There are absolutely performance tradeoffs in that decision and, if you do a lot of development against postgresql, those tradeoffs should influence how you design databases. The author then cherry picked the 'worst case' case, large unconstrained updates. The article is a bit of a cheezy dig on postgres. Another example is the complaint about autonomous transactions with another cherry picked example to make postgres look back. In the real world, these would not matter much, and can be worked around (if you want to see my take on how to deal with it, see here: https://github.com/leaselock/pgasync). merlin