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

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

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

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

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

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

Один комментарий к “Шок! UUID не уникален!”

  1. ну ты и клоун
    «Я уже большому количеству людей наглядно доказывал, что они ошибаются»
    наглядно? очень интересно
    возьми uuid v4 и наглядно мне покажи как у тебя вылетает дубликат

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *