Веб-версияОткрыть в Telegram

ПостГибридные логические часы (HLC, Hybrid Logical Clock)

6 февраля 2026
A
Abyssal Code
Гибридные логические часы (HLC, Hybrid Logical Clock) Немного другая ветвь развития часов Лэмпорта, которая привязывает их к реальному времени, при этом сохраняя корректность Каждый узел хранит два поля - физическое время (локальное время системы) и логический счетчик а-ля Лэмпорт Далее: - локальное событие: узел читает свое текущее системное время. Если это время больше сохраненного физического времени, то обновляем его и сбрасываем логический счетчик на 0. Иначе, то есть если системное время не сдвинулось или пошло назад, хранимое значение времени не обновляем, а лишь увеличиваем счетчик, как в часах Лэмпорта - отправка сообщения: узел обновляет свои часы по описанному выше алгоритму, после чего прикрепляет пару их значений к сообщению - получение сообщения: хранимое физическое время узла устанавливается равным максимуму локального времени и времени из сообщения. Если физическое время совпало, то счетчик приравнивается максимуму между счетчиком узла и счетчиком из сообщения, плюс единица. Иначе счетчик обнуляется Такой алгоритм гарантирует, что HLC всегда возрастают, даже при обратном ходе системных часов. Главная же особенность подхода - при условии хотя бы примерной синхронизации локальных часов узлов с реальным временем, HLC тоже всегда будут близки к реальному времени, в отличие от часов Лэмпорта или векторных часов. Это позволяет использовать их в системах, где необходимо упорядочивание по реальным таймпштампам, но требуется и надежное логическое время HLC используются в CockroachDB, YugabyteDB, TiDB, Cassandra, MongoDB, и многих других СУБД
1 · 503 ·

Рядом в ленте

AAbyssal CodeМожно заметить, что в чистом виде часы Лэмпорта не могут показать, произошло событие раньше или параллельно (то есть, мы имеем частичный порядок, когда часть соAAbyssal CodeВекторные часы (Vector Clock) Это развитие идеи часов Лэмпорта, решающее проблему конкурентности событий Вместо одного счетчика, каждый узел теперь хранит векто
это сообщение
AAbyssal CodeTrueTime, используемый в Google Spanner, их распределенной SQL СУБД Здесь способ работы со временем разрабатывался под конкретную СУБД, с учетом требований распAAbyssal CodeЯ тут пропал, потому что страшно горели дедлайны по диссертации и приходилось как ошпаренному бегать и со всех сторон всё доделывать. Теперь же текст сдан и утв
AAbyssal CodeAbyssal Code@abyssal_code · канал · Технологии
157подписчиков79постов в индексе
Лента площадки Открыть в Telegram

Открытая публичная лента из поискового индекса ChatCrawler — «Google по публичному Telegram»; обновляется по мере обхода площадки. Время — UTC.

Только публичный контент, официальный API Telegram. О проекте · Вопросы · Чего мы не делаем · Убрать страницу из выдачи · Каталог · Поиск · Как мы считаем