6.4 KiB
6.4 KiB
P10. Detock: транзакции между регионами без глобального упорядочивания
- Версия и дата проверки: 1.1, 07.09.2026.
- Статус: готово к назначению.
Статья и исходные материалы
- Основная статья: Cuong D. T. Nguyen, Johann K. Miller и Daniel J. Abadi — Detock: High Performance Multi-region Transactions at Scale. SIGMOD 2023.
- Кратко о статье: Межрегиональные транзакции затрагивают несколько первичных регионов и при высокой конфликтности приводят либо к частым откатам, либо к распределённым взаимоблокировкам. Detock предлагает протоколы управления конкурентностью и детерминированного разрешения взаимоблокировок, сохраняя строгую сериализуемость без глобального упорядочивания всех операций. Проект проверяет этот механизм на сокращённой реализации или дискретно-событийной модели.
- Почему результат актуален: код собирается на обычном Linux-стеке и допускает локальный функциональный запуск; вопрос о цене межрегиональной координации и конфликтов остаётся центральным для геораспределённых транзакционных систем.
- Артефакты и данные: umd-dslam/Detock под MIT, с C++-реализацией, однопроцессной конфигурацией, многорегиональным стендом и отдельными данными экспериментов. Зафиксированные ревизии:
umd-dslam/Detock@9f75dbdf93b6(MIT). - Что уже предоставляет артефакт: Готовы реализация Detock, генерация транзакций и экспериментальные конфигурации. Их можно адаптировать для локального пути либо использовать как эталон при создании модели.
Обязательный результат
- Проверяемый вопрос или утверждение: графовое управление зависимостями и детерминированное разрешение взаимоблокировок сохраняют строгую сериализуемость и уменьшают потери при высокой конфликтности по сравнению с глобальным упорядочиванием или откатами по тайм-ауту.
- Технический результат: Запустить сокращённую конфигурацию Detock в нескольких локальных процессах либо независимо реализовать его дискретно-событийную модель. Добавить реализации глобального порядка и простой стратегии отката, общий генератор транзакций и автоматическую проверку допустимости и сериализуемости по журналу.
- Обязательное приращение команды: Создать предусмотренный общий стенд Detock, глобального порядка и простой стратегии отката, дополнив его сопоставимыми входами и собственной проверкой допустимости и сериализуемости по журналу. При модельном пути команда реализует сохраняемые механизмы и проверяет модель; при работе с кодом отвечает за локальную адаптацию и сравнение.
- Эксперимент: при выбранном техническом пути сравнить Detock с глобальным порядком и простой стратегией отката, варьируя конфликтность и межрегиональную задержку и контролируя сериализуемость всех результатов.
- Границы выводов: сериализуемость и относительная эффективность проверяются для выбранной модели транзакций, конфликтности и межрегиональной задержки; локальный стенд или модель не подтверждают производительность Detock в реальной глобальной сети.
- Ресурсный профиль: расширенно локально или имитация, Linux, C++, CPU, желательно 16 ГБ памяти. Исходная оценка использует несколько физических узлов; обязательный результат допускает несколько локальных процессов или независимую модель с проверкой сериализуемости по журналу.
Содержательные направления
- сборка и модель транзакций.
- алгоритмы зависимостей, взаимоблокировок и проверка сериализуемости.
- нагрузки, сетевая модель и статистический анализ.
Возможное продолжение
Исследовать перекос ключей, долю межрегиональных транзакций, хвостовую задержку, миграцию данных либо гибридную стратегию для разных уровней конфликтности.