В этой википедии страница можно прочитать:
In the other strategy, as used in multiversion concurrency control,
Transaction 2 is permitted to commit first, which provides for better
concurrency. However, Transaction 1, which commenced prior to Transaction 2,
must continue to operate on a past version of the database — a snapshot of the
moment it was started. When Transaction 1 eventually tries to commit, the DBMS
checks if the result of committing Transaction 1 would be equivalent to the
schedule **T1, T2**. If it is, then Transaction 1 can proceed. If it cannot be
seen to be equivalent, however, Transaction 1 must roll back with a
serialization failure.
Не должно ли последнее расписание быть T2, T1 вместо T1, T2 ?
Я спрашиваю об этом, потому что если T2 был зафиксирован до T1, то его эффекты уже видны для других транзакций, но эффекты T1 не таковы, потому что T1 еще не зафиксирован.Кажется очень странным, если однажды совершенный T1 мог появиться перед T2 и другими транзакциями, совершенными в это время - это было бы как запись в прошлом.
Но если я ошибаюсь, то есть, если это возможнодля текущей транзакции, когда-то совершенной, чтобы внезапно появиться перед другими, которые были совершены ранее, я хотел бы, чтобы кто-то объяснил почему, если это возможно, убедительным примером.
Спасибо