Что такое «алгоритм децентрализованной уникальности»? - PullRequest
1 голос
/ 09 июня 2010

Функция в COM для создания GUID (CoCreateGUID) использует «Алгоритм децентрализованной уникальности», но мой вопрос, что это?

Ответы [ 2 ]

6 голосов
/ 09 июня 2010

Метод генерации идентификатора, который имеет некоторую гарантию уникальности, не полагаясь на какую-либо координацию через центрального «провайдера идентификаторов» (который требует сетевого подключения и может быть сложным для организации).Для этого есть два основных метода, ни один из которых не дает абсолютной гарантии:

  1. Используйте достаточно уникальный идентификатор для локального компьютера (обычно его MAC-адрес) и добавьте локально уникальный идентификатор (например, timestamp + process).число + автоинкрементный счетчик).
  2. Используйте хороший генератор случайных чисел с хорошим начальным числом, чтобы сгенерировать идентификатор и сделать его достаточно длинным, чтобы коллизии были маловероятны.
0 голосов
/ 09 июня 2010

Я искал свою локальную библиотеку и архивы, но не могу найти ссылку на конкретный алгоритм. Но обычно этот тип алгоритма используется для генерации 128-битных значений GUID, которые могут встречаться только один раз. Использование стандартного алгоритма генерации случайных чисел не генерирует истинную случайность. Таким образом, в этом случае они приняли несколько значений, в том числе:

  1. Компьютеры Сетевой адрес
  2. Значение времени на компьютерах
  3. Значения, учитываемые для перехода на летнее время, а также для ручного изменения системных часов пользователем.

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

Подробнее о генерации случайных чисел можно прочитать здесь

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...