В RFC4122 есть фраза «UUID имеет длину 128 битов и может гарантировать уникальность в пространстве и времени» - PullRequest
0 голосов
/ 10 апреля 2020

RFC4122 что означает фраза uniqueness across space and time и, пожалуйста, объясните.

Ответы [ 2 ]

1 голос
/ 10 апреля 2020

Это в основном означает, что для всех реализаций c этот идентификатор статистически гарантированно является уникальным

Хотя технически невозможно повторное дублирование UUID, формула для расчета вероятности выглядит следующим образом. n равно количеству цифр в UUID, а r - количество желаемых UUID. Попробуйте подключить это к калькулятору.

enter image description here

Что ж, калькулятор сломался, если вы попробовали это, так как вычисления огромны. И значение этого только для 32-символьных UUIDS будет очень близко к 1 для любого числа, меньшего 10 ^ 16 чисел. Это 10 квадриллионов.

Вы не собираетесь исчерпать UUID, если вы являетесь Facebook. Вы не будете исчерпывать удостоверения личности, если вы являетесь правительством США. Оба хранят огромное количество данных (пространство) и генерируют данные в течение длительного времени (времени).

1 голос
/ 10 апреля 2020

«в пространстве и времени» описывает, как маловероятно, чтобы два UUID были одинаковыми.

128 битов энтропии довольно велико, и столкновение будет похоже на подбрасывание монеты 128 голов подряд дважды или бросание 6 на 6-стороннем d ie 50 раз дважды . Чтобы определить биты энтропии здесь, вы берете log_2 из числа опций:

  • 128 UUID bits / log_2(2) => 128 / 1 => 128 coin flips
  • 128 UUID bits / log_2(6) => 128 / 2.6 ~=> 50 dice rolls

Это дублирование называется коллизией UUID, и оно возможно ; однако, шанс очень мал и не стоит беспокоиться о .

...