Ну вот, смотри сам :

Тр-ция 1 вставляет ключ 'AAA', запись 1
Тр-ция 1 коммит

Тр-ция 2 апдейтит запись 1 и меняет ключ на 'BBB'.
Тр-ция 2 коммит

Тр-ция 3 ищет ключ 'AAA'.
   Там есть {запись 1, тр-ция 1}

Если тр-ция 3 не прочитает запись 1, которая уже имеет ключ 'BBB',
то она выдаст неверный результат.

   Значение {ключ 'AAA', запись 1, тр-ция 1} будет удалено
из индекса только в результате сборки мусора.

Спасибо за разяснения. Въехал вроде.

А вот где-то внутрях сервера есть список активных транзакций? Если его задействовать при поиске тоже видимо не получится? Ты простейшую ситуацию обрисовал, а вариаций на тему с учетом уровня изолированности много придумать можно. Мне чего-то все не просчитать :).


И еще интересно. Думали ли в сторону hash join? Мне кажется наверняка
обсуждалось. Тоже интересно  узнать выводы...

   ДЕ пытай :)


Не пытать не буду :). Будет у него время - сам все скажет, надеюсь. :)

With b/r. Gleb.

Ответить