3 ms·
""Other MVCC implementations have their own drawbacks of course."" Thanks for the info, can you elaborate on the drawbacks of other technics ?
by bsaul 11y ago
""Other MVCC implementations have their own drawbacks of course.""
Thanks for the info, can you elaborate on the drawbacks of other technics ?
- ComodoHacker 11y agoI can for Oracle, which I'm most familiar with. Its approach adds much of complexity both in implementation and configuration/administation. DB engine must ensure integrity and consistency of data in different DB files in scenarios like backup, restore, crash recovery, DDL etc. DBA have to monitor and tune undo space according to database growing rate and workload. If not done properly, long-running SELECT can end up receiving "Snapshot too old" error, which means DB engine could not reconstruct all row data needed as seen at certain point of time.
- EmielMols 11y agoRollbacks (canceling a transaction) on other systems usually take longer because it physically needs to rewrite the "undo log" back to the data pages.
- ComodoHacker 11y agoYes, but usually this is not a problem, because rollbacks are rare in production.
- AlterEgo20 11y agoEven a single rare rollback can kill a prod DB. We had a situation when a bug in our code caused a series of huge UPDATEs in Oracle DB and LOCKed some critical tables. After ~2 hours we found this session and killed it. The problem - we had to wait for 2 more hours with dead prod while Oracle was rolling back everything. In Oralce killed sessions still hold their locks while rolling back. In Postgres rollback is almost instant.