Из Википедии, бесплатной энциклопедии
  (Перенаправлено с векторных часов )
Перейти к навигации Перейти к поиску

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

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

История [ править ]

Без использования специального названия «векторные часы» концепция векторных часов была впервые упомянута [1] в статье 1986 года Ривки Ладин и Барбары Лисков, где они использовали термин «составная временная метка». [2] Цитата из страницы 31 статьи Лискова / Ладина:

Мы решаем эту проблему, используя составные временные метки , где для каждой реплики есть одна часть. Таким образом, если имеется n реплик, метка времени t равна

t = <t1, …, tn>

где каждая часть - положительное целое число. Поскольку обычно будет небольшое количество реплик (например, от 3 до 7), использование такой отметки времени является практичным.

Термин «векторные часы» был впервые использован независимо Колином Фиджем и Фридеманом Маттерном в 1988 году. [3] [4]

Свойство частичного упорядочивания [ править ]

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

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

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

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

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

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

Другие механизмы [ править ]

  • В 1999 году Торрес-Рохас и Ахамад разработал правдоподобным Часы , [5] механизм , который занимает меньше места , чем вектор часов , но это, в некоторых случаях, сможет полностью порядка событий, которые каузально одновременно.
  • В 2008 году Алмейда и др. представили Interval Tree Clocks . [6] [7] [8] Этот механизм обобщает векторные часы и позволяет работать в динамических средах, когда идентификаторы и количество процессов в вычислениях заранее неизвестны.
  • В 2019 году, Lum Ramabaja разработана Bloom Часы , [9] вероятностные структуры данных, пространство сложность не зависит от числа узлов в системе. Если два часа не сравнимы, часы цветения всегда могут определить это, т.е. ложноотрицательные результаты невозможны. Если два часа сопоставимы, часы Блума могут вычислить достоверность этого утверждения, т.е. они могут вычислить частоту ложных срабатываний между сопоставимыми парами часов.

Ссылки [ править ]

  1. ^ Ссылка на этот документ была обнаружена профессором Линдси Купер и описана в лекции 23 из ее серии видеолекций YouTube о распределенных системах.
  2. Барбара Лисков, Ривка Ладен (1986). «Распределенные службы с высокой доступностью и отказоустойчивый распределенный сборщик мусора» . ACM. С. 29–39 . Проверено 22 сентября 2020 .
  3. ^ Colin J. Fidge (февраль 1988). «Метки времени в системах передачи сообщений, сохраняющих частичный порядок» (PDF) . В К. Раймонде (ред.). Proc. 11-й Австралийской конференции по информатике (ACSC'88) . С. 56–66 . Проверено 13 февраля 2009 .
  4. ^ Мэттерн, F. (октябрь 1988), "Virtual Time и Глобальные состояния распределенных систем", в Cosnard, М. (ред.), Proc. Семинар по параллельным и распределенным алгоритмам , Chateau de Bonas, Франция: Elsevier, стр. 215–226.
  5. ^ Франсиско Торрес-Рохас; Mustaque Ахамад (1999), "Правдоподобные часы: постоянного размер логических часы для распределенных систем" , распределенные вычисления , 12 (4): 179-195, DOI : 10.1007 / s004460050065
  6. ^ Алмейда, Пауло; Бакеро, Карлос; Фонте, Виктор (2008), «Часы с интервалом в дереве: логические часы для динамических систем», Бейкер, Теодор П.; Буй, Ален; Tixeuil, Sébastien (eds.), Principles of Distributed Systems (PDF) , Lecture Notes in Computer Science, 5401 , Springer-Verlag, Lecture Notes in Computer Science, pp. 259–274, Bibcode : 2008LNCS.5401 ... B , DOI : 10.1007 / 978-3-540-92221-6 , ISBN  978-3-540-92220-9
  7. ^ Алмейда, Пауло; Бакеро, Карлос; Фонте, Виктор (2008), «Часы с интервалом в дереве: логические часы для динамических систем», Часы с деревом с интервалом: логические часы для динамических систем , Лекционные заметки по информатике, 5401 , стр. 259, DOI : 10.1007 / 978-3-540-92221-6_18 , ЛВП : 1822/37748 , ISBN 978-3-540-92220-9
  8. Zhang, Yi (2014), «Предварительные сведения: результаты часов с интервальным деревом», Предварительные сведения: результаты с указанием часов с временным деревом (PDF)
  9. ^ Lum Ramabaja (2019), цветении Часы , Arxiv : 1905,13064 , Bibcode : 2019arXiv190513064R

См. Также [ править ]

  • Отметки времени Лэмпорта
  • Матричные часы
  • Вектор версии

Внешние ссылки [ править ]

  • Почему логические часы просты (сравниваются истории причин, векторные часы и векторы версий)
  • Объяснение векторных часов
  • Реализация векторных часов на основе меток времени в Erlang
  • Реализация векторных часов в Objective-C
  • Реализация векторных часов в Erlang
  • Почему векторные часы сложны
  • Почему Кассандре не нужны векторные часы