Реализация функции MVCC СУБД Hekaton
Семантика программы описана в файле _project_report.pdf.
master
ветка содержит программу, выполняющую (исходную) транзакцию newOrder в одном потоке. Остальные ветки используются для тестирования корректности и производительности:
- Ветка «test-visibility-validation»: проверка стабильности чтения.
- Ветка «тест-фантом-избегание»: тест на обнаружение фантомов.
- Ветка 'test-cascaded-aborts: проверка каскадных прерываний в контексте зависимостей фиксации.
- Ветка «тестовое сканирование»: проверка скорости сканирования программы путем многократного сканирования таблицы OrderLine.
- Ветка «только для чтения»: проверка производительности транзакций только для чтения.
- Ветка «только обновление»: проверка производительности транзакций только обновления.
В крайних случаях транзакция ведет себя следующим образом:
- SELECT: если необходимые кортежи не существуют, транзакция должна быть прервана и отменена, поскольку переменные из этого оператора SELECT понадобятся ниже.
- INSERT: при вставке дубликата PK в таблицу транзакция должна быть прервана и отменена.
- UPDATE и DELETE: при обновлении/удалении несуществующего кортежа оператор игнорируется.