Always hearing about the terrible MVCC in PostgreSQL and yet not hearing that any sort of versioning management is going to be about trade-offs. I spent over a decade managing Oracle databases and now 20 years managing PostgreSQL databases (with spatterings of MSSQL Server along the way). In the kinds of work loads I deal with which are admittedly quite small compared to what many here will deal with: the PostgreSQL MVCC approach is well worth never seeing ORA-01555 like error message.
Naturally, your trade-offs may be different and I completely acknowledge there are workloads where the PostgreSQL trade-offs will be a complete pain in the ass.
As for MS-SQL server? The last serious work I had where I dealt with MS-SQL server operations, the default configuration was not one where MVCC concepts were enabled and thus not in my databases. I'll take either PostgreSQL or Oracle's approach to MVCC over row/page/table locking and lock escalation any day and I can't think of a workload where I'd trade for that MS-SQL approach... hopefully that changed along the way (I simply never really looked back).
3 comments
[ 0.28 ms ] story [ 20.7 ms ] threadPlease, folks, write with your own voice. It's good for you and it's good for your readers.
Always hearing about the terrible MVCC in PostgreSQL and yet not hearing that any sort of versioning management is going to be about trade-offs. I spent over a decade managing Oracle databases and now 20 years managing PostgreSQL databases (with spatterings of MSSQL Server along the way). In the kinds of work loads I deal with which are admittedly quite small compared to what many here will deal with: the PostgreSQL MVCC approach is well worth never seeing ORA-01555 like error message.
Naturally, your trade-offs may be different and I completely acknowledge there are workloads where the PostgreSQL trade-offs will be a complete pain in the ass.
As for MS-SQL server? The last serious work I had where I dealt with MS-SQL server operations, the default configuration was not one where MVCC concepts were enabled and thus not in my databases. I'll take either PostgreSQL or Oracle's approach to MVCC over row/page/table locking and lock escalation any day and I can't think of a workload where I'd trade for that MS-SQL approach... hopefully that changed along the way (I simply never really looked back).