Jump to content

Векторные часы

(Перенаправлено с векторных часов )

Векторные часы — это структура данных, используемая для определения частичного порядка событий в распределенной системе и обнаружения нарушений причинно-следственной связи . Как и в метках времени Лампорта , межпроцессные сообщения содержат состояние логических часов отправляющего процесса . Векторные часы системы из N процессов представляют собой массив /вектор из N логических часов, по одному такту на процесс; локальная копия глобального массива часов с «максимально возможными значениями» хранится в каждом процессе.

Обозначим как векторные часы, поддерживаемые процессом , обновление часов происходит следующим образом: [1]

Пример системы векторных часов. События в синей области — это причины, ведущие к событию B4, тогда как события в красной области — это последствия события B4.
  • Первоначально все часы равны нулю.
  • Каждый раз, когда в процессе происходит внутреннее событие, он увеличивает свои логические часы в векторе на единицу. Например, при событии в процессе , он обновляется .
  • Каждый раз, когда процесс отправляет сообщение, он увеличивает свои логические часы в векторе на единицу (как в пункте выше, но не дважды для одного и того же события), затем соединяет сообщение с копией своего собственного вектора и, наконец, отправляет сообщение. пара.
  • Каждый раз, когда процесс получает пару часов сообщение-вектор, он увеличивает свои собственные логические часы в векторе на единицу и обновляет каждый элемент в своем векторе, беря максимальное значение в своих собственных векторных часах и значение в векторе в полученная пара (для каждого элемента). Например, если процесс получает сообщение от , он сначала увеличивает свои собственные логические часы в векторе на единицу. а затем обновляет весь свой вектор, установив .

Лампорт придумал идею логических часов Лампорта в 1978 году. [2] Однако логические часы в этой статье были скалярами, а не векторами. Обобщение векторного времени разрабатывалось несколько раз, по-видимому независимо, разными авторами в начале 1980-х годов. [3] Эта концепция содержится как минимум в 6 статьях. [4] Канонически цитируемые статьи о векторных часах — это работы Колина Фиджа и Фридемана Маттерна 1988 года: [5] [6] поскольку они (независимо) установили название «векторные часы» и математические свойства векторных часов. [3]

Частичный заказ недвижимости

[ редактировать ]

Векторные часы позволяют частично причинно упорядочить события. Определение следующего:

  • обозначает векторные часы события , и обозначает компонент этих часов для процесса .
    • По-английски: меньше, чем , тогда и только тогда, когда меньше или равно для всех индексов процесса , и по крайней мере одно из этих отношений строго меньше (т. е. ).
  • обозначает это событие произошло до события . Оно определяется как: если , затем

Характеристики:

  • Антисимметрия : если , тогда ¬
  • Транзитивность : если и , затем ; или, если и , затем

Связь с другими заказами:

  • Позволять быть в реальном времени, когда событие происходит. Если , затем
  • Позволять быть в Лэмпорте временной меткой события . Если , затем

Другие механизмы

[ редактировать ]
  • В 1999 году Торрес-Рохас и Ахамад разработали «Правдоподобные часы» . [7] механизм, который занимает меньше места, чем векторные часы, но который в некоторых случаях полностью упорядочивает события, которые причинно совпадают.
  • В 2005 году Агарвал и Гарг создали Chain Clocks . [8] система, которая отслеживает зависимости с использованием векторов, размер которых меньше количества процессов, и автоматически адаптируется к системам с динамическим количеством процессов.
  • В 2008 году Алмейда и др. представили часы интервального дерева . [9] [10] [11] Этот механизм обобщает векторные часы и позволяет работать в динамических средах, когда идентификаторы и количество процессов в вычислениях заранее неизвестны.
  • В 2019 году Лам Рамабаджа предложил Bloom Clocks — вероятностную структуру данных, основанную на фильтрах Блума . [12] [13] [14] По сравнению с векторными часами пространство, используемое на каждый узел, фиксировано и не зависит от количества узлов в системе. Сравнение двух часов либо приводит к истинному отрицательному результату (часы несопоставимы), либо к предположению, что одни часы предшествуют другим, с возможностью ложного положительного результата, когда эти два часа не связаны между собой. Уровень ложных срабатываний уменьшается по мере увеличения разрешенного объема памяти.

См. также

[ редактировать ]
  1. ^ «Распределенные системы, 3-е издание (2017 г.)» . РАСПРЕДЕЛЕННЫЕ-СИСТЕМЫ.NET . Проверено 21 марта 2021 г.
  2. ^ Лэмпорт, Л. (1978). «Время, часы и порядок событий в распределенной системе» (PDF) . Коммуникации АКМ . 21 (7): 558–565. дои : 10.1145/359545.359563 . S2CID   215822405 .
  3. ^ Jump up to: а б Шварц, Рейнхард; Маттерн, Фридеманн (март 1994 г.). «Обнаружение причинно-следственных связей в распределенных вычислениях: В поисках Святого Грааля» . Распределенные вычисления . 7 (3): 149–174. дои : 10.1007/BF02277859 . S2CID   3065996 .
  4. ^ Купер, Линдси (8 апреля 2023 г.). «Кто изобрел векторные часы?» . разложение ∘ др . Документы (в хронологическом порядке):
    • Фишер, Майкл Дж.; Майкл, Алан (1982). «Жертвовать сериализуемостью ради достижения высокой доступности данных в ненадежной сети». Материалы 1-го симпозиума ACM SIGACT-SIGMOD по принципам систем баз данных - PODS '82 . п. 70. дои : 10.1145/588111.588124 . ISBN  0897910702 . S2CID   8774876 .
    • Паркер, Д.С.; Попек, Дж.Дж.; Рудисин Г.; Стоутон, А.; Уокер, Би Джей; Уолтон, Э.; Чоу, Дж. М.; Эдвардс, Д.; Кисер, С.; Клайн, К. (май 1983 г.). «Обнаружение взаимной несогласованности в распределенных системах». Транзакции IEEE по разработке программного обеспечения . СЭ-9 (3): 240–247. дои : 10.1109/TSE.1983.236733 . S2CID   2483222 .
    • Вуу, Джин ТиДжей; Бернштейн, Артур Дж. (1984). «Эффективные решения проблем с реплицируемым журналом и словарем». Материалы третьего ежегодного симпозиума ACM по принципам распределенных вычислений — PODC '84 . стр. 233–242. дои : 10.1145/800222.806750 . ISBN  0897911431 . S2CID   2384672 .
    • Стром, Роб; Йемини, Шаула (август 1985 г.). «Оптимистическое восстановление в распределенных системах» . Транзакции ACM в компьютерных системах . 3 (3): 204–226. дои : 10.1145/3959.3962 . S2CID   1941122 .
    • Шмук, Фрэнк Б. (ноябрь 1985 г.). Программные часы и порядок событий в распределенной системе (неопубликовано).
    • Лисков, Варвара; Ладин, Ривка (1986). «Высокодоступные распределенные сервисы и отказоустойчивая распределенная сборка мусора». Материалы пятого ежегодного симпозиума ACM по принципам распределенных вычислений - PODC '86 . стр. 29–39. дои : 10.1145/10590.10593 . ISBN  0897911989 . S2CID   16148617 .
    • Рейналь, Мишель (февраль 1987 г.). «Распределенный алгоритм для предотвращения взаимного дрейфа между n логическими часами». Письма об обработке информации . 24 (3): 199–202. дои : 10.1016/0020-0190(87)90186-4 .
  5. ^ Фидж, Колин Дж. (февраль 1988 г.). «Временные метки в системах передачи сообщений, сохраняющие частичный порядок» (PDF) . В К. Раймонде (ред.). Материалы 11-й Австралийской конференции по информатике (ACSC'88) . Том. 10. С. 56–66 . Проверено 13 февраля 2009 г.
  6. ^ Маттерн, Фридеманн (октябрь 1988 г.). «Виртуальное время и глобальные состояния распределенных систем». В Коснаре, М. (ред.). Учеб. Практикум по параллельным и распределенным алгоритмам . Шато де Бонас, Франция: Эльзевир. стр. 215–226.
  7. ^ Франсиско Торрес-Рохас; Мустак Ахамад (1999), «Правдоподобные часы: логические часы постоянного размера для распределенных систем» , Distributed Computing , 12 (4): 179–195, doi : 10.1007/s004460050065 , S2CID   2936350
  8. ^ Агарвал, Анураг; Гарг, Виджай К. (17 июля 2005 г.). «Эффективное отслеживание зависимостей для соответствующих событий в системах с общей памятью» (PDF) . Материалы двадцать четвертого ежегодного симпозиума ACM по принципам распределенных вычислений . Ассоциация вычислительной техники. стр. 19–28. дои : 10.1145/1073814.1073818 . ISBN  1-58113-994-2 . S2CID   11779779 . Проверено 21 апреля 2021 г.
  9. ^ Алмейда, Пауло; Бакеро, Карлос; Фонте, Виктор (2008), «Часы интервального дерева: логические часы для динамических систем», Бейкер, Теодор П.; Буи, Ален; Тиксёй, Себастьян (ред.), Принципы распределенных систем (PDF) , Конспекты лекций по информатике, том. 5401, Springer-Verlag, Конспекты лекций по информатике, стр. 259–274, Bibcode : 2008LNCS.5401.....B , doi : 10.1007/978-3-540-92221-6 , ISBN  978-3-540-92220-9
  10. ^ Алмейда, Пауло; Бакеро, Карлос; Фонте, Виктор (2008), «Часы дерева интервалов: логические часы для динамических систем», Часы интервального дерева: логические часы для динамических систем , Конспект лекций по информатике, том. 5401, с. 259, номер doi : 10.1007/978-3-540-92221-6_18 , hdl : 1822/37748 , ISBN  978-3-540-92220-9
  11. ^ Чжан, И (2014), «Предварительные сведения: результаты синхронизации дерева интервалов», Предварительные сведения: результаты синхронизации дерева интервалов (PDF)
  12. ^ Поццетти, Томмазо; Кшемкальяни, Аджай Д. (1 апреля 2021 г.). «Сбрасываемые векторные часы для анализа причинно-следственных связей с применением к динамическому обнаружению гонок» . Транзакции IEEE в параллельных и распределенных системах . 32 (4): 772–785. дои : 10.1109/TPDS.2020.3032293 . S2CID   220362525 .
  13. ^ Лум Рамабаджа (2019), The Bloom Clock , arXiv : 1905.13064 , Бибкод : 2019arXiv190513064R
  14. ^ Кулкарни, Сандип С; Эпплтон, Гейб; Нгуен, Дуонг (4 января 2022 г.). «Достижение причинности с помощью физических часов». Материалы 23-й Международной конференции по распределенным вычислениям и сетям . стр. 97–106. arXiv : 2104.15099 . дои : 10.1145/3491003.3491009 . ISBN  9781450395601 . S2CID   233476293 .
[ редактировать ]
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 16cc9bfada374e6d6952aa5804481b2d__1714284060
URL1:https://arc.ask3.ru/arc/aa/16/2d/16cc9bfada374e6d6952aa5804481b2d.html
Заголовок, (Title) документа по адресу, URL1:
Vector clock - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)