Что такое vector clock?

Senior
30 просмотров
AFK Offer AI

Расширение Lamport clock — каждый процесс хранит вектор счётчиков [N1, N2, ...Nn], по одному на каждый узел. При локальном событии инкрементирует свой. При отправке — прикладывает весь вектор. При получении — берёт поэлементный max и инкрементирует свой. Позволяет определить causality: если все элементы V(a) <= V(b) и хотя бы один <, то a → b. Иначе события concurrent. Минус — размер растёт с числом узлов.

Следующий вопрос

Что такое compiler intrinsics в Go?