Re[2]: Журнал изменений базы данных
От: afkos  
Дата: 12.02.20 12:59
Оценка:
Здравствуйте, akasoft, Вы писали:

A>Здравствуйте, afkos, Вы писали:


A>>в EventLog Max(eventId) = 10

A>>Транзакция А — добавляет запись eventId = 11
A>>Транзакция Б — добавляет запись eventId = 12
A>>Транзакция Б — фиксирует транзакцию

A>Что позволяет зафиксировать eventId = 12? Как транзакция Б выбирает 12, ведь и для А, и для Б Max(eventId) = 10? Они обе должны совать 11, кто первый просунул, того и тапки.

A>А кто второй, инкрементирует eventId и пробует просунуть.

Инкремент eventId обеспечивается СУБД, identity колонка.
СУБД умеет его инкрементировать в разных транзакциях без блокировок.
Каждой транзакции достается свой eventId, и при записи в таблицу они не пересекаются по ключу, в идеале могут не мешая друг другу вставить запись в таблицу.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.