Я думаю, что они иногда используются взаимозаменяемо, и если транзакция включает только один объект, то они по существу одинаковы, но MVCC является расширением оптимистичного параллелизма (или его версии), который обеспечивает гарантии, когда более одного объектаучаствует.Скажем, у вас есть два объекта, A и B, которые должны поддерживать некоторый инвариант между ними, например, это два числа, сумма которых постоянна.Теперь транзакция T1 вычитает 10 из A и добавляет ее в B, в то время как одновременно другая транзакция T2 считывает два числа.Даже если вы оптимистично обновите A и B независимо (CAS их), T2 может получить несогласованное представление двух чисел (скажем, если он читает A до его изменения, но читает B после того, как он был изменен).MVCC гарантирует, что T2 считывает согласованное представление A и B, возможно, возвращая их старые значения, т. Е. Он должен сохранять старые версии.
Подводя итог, оптимистическая блокировка (или оптимистическое управление параллелизмом) является общимПринцип синхронизации без блокировок.MVCC - это оптимистичный метод, который позволяет выполнять отдельные транзакции, охватывающие несколько объектов.