Files

6.4 KiB
Raw Permalink Blame History

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 ГБ памяти. Исходная оценка использует несколько физических узлов; обязательный результат допускает несколько локальных процессов или независимую модель с проверкой сериализуемости по журналу.

Содержательные направления

  • сборка и модель транзакций.
  • алгоритмы зависимостей, взаимоблокировок и проверка сериализуемости.
  • нагрузки, сетевая модель и статистический анализ.

Возможное продолжение

Исследовать перекос ключей, долю межрегиональных транзакций, хвостовую задержку, миграцию данных либо гибридную стратегию для разных уровней конфликтности.