Хабы: Data Engineering
В этой статье представлена авторская концепция "Инспектор транзакций", направленная на оптимизацию работы с транзакциями в системах управления базами данных (СУБД). Мы предлагаем использовать инвертированный индекс для выявления конфликтующих транзакций. Перед выполнением новой транзакции инспектор проверяет, пересекается ли ее множество задействованных строк с множеством задействованных строк уже работающих транзакций, сопоставляя инвертированный индекс новой транзакции с общим инвертированным индексом активных транзакций. Если конфликтов нет, транзакция выполняется в режиме READ UNCOMMITTED, при этом общий инвертированный индекс обновляется как при старте транзакции, так и после её завершения. Также рассматриваются вопросы обработки конфликтов, если пересечение есть. Данный подход позволяет заранее точно определить, с какими транзакциями и по каким записям может возникнуть конфликт, что облегчает обработку этого конфликта. Мы надеемся, что предложенная концепция может способствовать улучшению работы СУБД.
Читать далее