Следует обратить внимание на “ выборе подходящей версии” для чтения. Версия xj не является подходящей в двух случаях: во-первых, если существует путь из ti в tj (т.е. tj следует после ti по порядку сериализации); во-вторых, если существует путь (tj, tk, ti), где tk пишет x – wk(xk). В этих случаях отсутствует способ выбора места для wk(xk) в эквивалентном моноверсионном последовательном расписании.
Как уже отмечалось, выбор дуги для добавления в графе – “(ti, tj) либо (tk, ti)” – по сути, является выбором “позиции записи”. Выбирается порядок следования других транзакций, которые пишут x. В некоторых случаях будет иметься несколько альтернативных путей, а в некоторых уже существующие дуги не оставят возможности выбора.
В рассмотренном нами примере в графе образуется цикл на последнем шаге – w2[x2]. Выполняя этот шаг, мы должны будем согласно правилу 3 алгоритма добавить одну из дуг – (t2, t1) или (t3, t2). Обе ведут к образованию цикла.
Это семейство алгоритмов описано в книге [] и статье []. Оно также описано в книге [] под названием MVSGT. Заметим, что его описание в [] весьма путано. Кроме того, сам термин MVSGT впервые вводится Веикумом и Воссеном именно в этой книге. Чтобы прояснить ситуацию вокруг MVSGT, автору даже пришлось связаться с Готфридом Воссеном, который любезно согласился предоставить материалы, использованные им при подготовке книги.