Шок! UUID не уникален!

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

Разумеется, это не так. Я уже большому количеству людей наглядно доказывал, что они ошибаются. В сказку про уникальность UUID верят огромное количество людей. Не знаю, кто первый начал распространять эту ложную информацию, но в уникальность UUID-ов верит огромное количество людей.

Мы же подумаем логически. UUID — это 128-битный идентификатор. Его разрядность ограничена. А значит, каким бы алгоритмом генерации мы не пользовались, то даже в самом лучшем для нас случае существует 2128 комбинаций UUID-ов, после которых любой новый сгенерированный UUID будет повторять один из ранних. Что однозначно доказывает, что UUID НЕ уникален. Вернее даже то, что UUID не имеет математической уникальности. На самом деле, генерация повторного UUID-а произойдёт гораздо раньше, здесь мы рассмотрели самый идеальный случай.

UUID имеет статистическую уникальность, что означает такую маленькую вероятность генерации точно такого же UUID-а, что её в большинстве случаев (но не во всех) можно пренебречь. Статистическая уникальность достигается с помощью различных алгоритмов генерации UUID.

Чтобы не быть глосновным, разумеется, нужно привести источники. Например, wikipedia даже приводит формулу расчёта вероятности повторения UUID.


Поделиться:
1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (Пока оценок нет)
Загрузка...

Добавить комментарий

Ваш e-mail не будет опубликован.

*