Искуственная генерация Guid
От: e.thrash  
Дата: 25.01.22 09:49
Оценка: -1 :))) :))) :)))
Сейчас много систем завязано на Guid.
А кто-то контролирует дубликаты или всё привязано к железу сервера где генерится?
я слышал про разные алгоритмы гуидов с учетом гео, но интересен такой вариант.

если поставить кучу серверов которые будут искусственно генерить новые гуиды чтобы исчерпать значения.
они будут исчерпаны для данной машины?
Re: Искуственная генерация Guid
От: · Великобритания  
Дата: 25.01.22 10:18
Оценка: 26 (2) +2 :))
Здравствуйте, e.thrash, Вы писали:

ET>если поставить кучу серверов которые будут искусственно генерить новые гуиды чтобы исчерпать значения.

Это известная проблема: https://rsdn.org/article/mag/200301/GUIDEcology.xml
Автор(ы): Антон Злыгостев
Дата: 21.02.2003
но это не зря, хотя, может быть, невзначай
гÅрмония мира не знает границ — сейчас мы будем пить чай
Re: Искуственная генерация Guid
От: vsb Казахстан  
Дата: 25.01.22 10:59
Оценка:
Здравствуйте, e.thrash, Вы писали:

ET>А кто-то контролирует дубликаты


Нет.

ET>или всё привязано к железу сервера где генерится?


Всё привязано к математическим расчётам, которые говорят, что шансы сгенерировать два GUID-а приемлемо малы. А уж сделать это в одной системе, где их пересечение действительно приведёт к чему-то плохому — практически невозможно.

ET>если поставить кучу серверов которые будут искусственно генерить новые гуиды чтобы исчерпать значения.

ET>они будут исчерпаны для данной машины?

Если не усложнять рассуждения реальными алгоритмами GUID-ов, а принять, что GUID это 128 случайных битов, то чтобы сгенерировать 2 совпадающих GUID-а с достаточно большой вероятносью, нужно сгенерировать порядка 2^64 GUID-ов. Очевидно, их при этом нужно где-то хранить.

Чтобы сгенерировать 2^64 GUID-ов за сто лет, нужно генерировать их со скоростью 250 млн в секунду. В принципе это реально на 100-ядерном сервере, если больше ничего на нём не делать. А если купить десять тысяч виртуальных машин в каком-нибудь амазон облаке, то можно и за год справиться.

Чтобы сохранить 2^64 GUID-ов, нужно 2^70 байтов, это примерно 1 зеттабайт информации (1 миллиард терабайтов). Вот тут уже посложней, по некоторым расчётам всё человечество примерно столько информации хранит.

В общем если направить все ресурсы цивилизации на генерацию и сохранение GUID-ов, есть шансы получить дубликат.
Отредактировано 25.01.2022 11:00 vsb . Предыдущая версия .
Re: Искуственная генерация Guid
От: netch80 Украина http://netch80.dreamwidth.org/
Дата: 25.01.22 12:27
Оценка:
Здравствуйте, e.thrash, Вы писали:

ET>Сейчас много систем завязано на Guid.

ET>А кто-то контролирует дубликаты или всё привязано к железу сервера где генерится?
ET>я слышал про разные алгоритмы гуидов с учетом гео, но интересен такой вариант.

При _честной_ генерации 2**122 случайных бит в случае варианта 1 тип 4 (стандарт для MS), или 74 бита времени плюс 48 MAC в варианте 1 тип 1 (MAC-based) — совпадение невероятно.

Но это только если нет злоумышленников, которые указывают чужие GUID/UUID. Если они есть — сливай свет и туши воду — или добавлять надёжный id источника, или централизованный надёжный генератор.

К железу у MS обычно не привязывают, там чистый рандом.

ET>если поставить кучу серверов которые будут искусственно генерить новые гуиды чтобы исчерпать значения.

ET>они будут исчерпаны для данной машины?

Вики бы прочитал:

Since the time and clock sequence total 74 bits, 274 (1.8×10**22, or 18 sextillion) version-1 UUIDs can be generated per node ID, at a maximal average rate of 163 billion per second per node ID.


Для random-based пересчитаешь сам.
The God is real, unless declared integer.
Re: Искуственная генерация Guid
От: Pzz Россия https://github.com/alexpevzner
Дата: 26.01.22 17:27
Оценка:
Здравствуйте, e.thrash, Вы писали:

ET>если поставить кучу серверов которые будут искусственно генерить новые гуиды чтобы исчерпать значения.

ET>они будут исчерпаны для данной машины?

Зачем его исчерпывать, если GUIDы не хранятся в секрете? При желании, злоумышленник может сознательно чужой GUID взять. Но только каковы шансы, что честно сгенерированный GUID окажется в одном контексте с GUID'ом, сгенерированным/сворованным какими-то козлами?
Re[2]: Искуственная генерация Guid
От: e.thrash  
Дата: 27.01.22 15:14
Оценка: :)))
Здравствуйте, Pzz, Вы писали:

Pzz>Здравствуйте, e.thrash, Вы писали:


ET>>если поставить кучу серверов которые будут искусственно генерить новые гуиды чтобы исчерпать значения.

ET>>они будут исчерпаны для данной машины?

Pzz>Зачем его исчерпывать, если GUIDы не хранятся в секрете?


меня тут больше интересовал вопрос что будет если на Guid.NewGuid() весь диапазон исчерпается.
в каждом языке своя реализация?
Re[3]: Искуственная генерация Guid
От: Sinclair Россия https://github.com/evilguest/
Дата: 28.01.22 06:49
Оценка: +1
Здравствуйте, e.thrash, Вы писали:
ET>меня тут больше интересовал вопрос что будет если на Guid.NewGuid() весь диапазон исчерпается.
Байку про изобретателя шахмат слышали?
ET>в каждом языке своя реализация?
Вас же не просто так отправляли в википедию. Там подробно написано, как должны быть устроены конформные реализации.
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re[3]: Искуственная генерация Guid
От: · Великобритания  
Дата: 28.01.22 19:37
Оценка:
Здравствуйте, e.thrash, Вы писали:

e> Pzz>Зачем его исчерпывать, если GUIDы не хранятся в секрете?

e> меня тут больше интересовал вопрос что будет если на Guid.NewGuid() весь диапазон исчерпается.
Возьми, да исчерпай, никто же не запрещает. И посмотри что будет.
avalon/3.0.0
но это не зря, хотя, может быть, невзначай
гÅрмония мира не знает границ — сейчас мы будем пить чай
Re: Искуственная генерация Guid
От: VladFein США  
Дата: 28.01.22 19:52
Оценка: :))
Здравствуйте, e.thrash, Вы писали:

ET>Сейчас много систем завязано на Guid.

ET>А кто-то контролирует дубликаты или всё привязано к железу сервера где генерится?
ET>я слышал про разные алгоритмы гуидов с учетом гео, но интересен такой вариант.

ET>если поставить кучу серверов которые будут искусственно генерить новые гуиды чтобы исчерпать значения.

ET>они будут исчерпаны для данной машины?

Ответ, очевидно, один — нужно организовать GUID recycling. Продайте идею зеленым. Или Грету привлеките.
Re[3]: Искуственная генерация Guid
От: Географ Россия нет
Дата: 14.02.22 10:15
Оценка:
Здравствуйте, e.thrash, Вы писали:

ET>меня тут больше интересовал вопрос что будет если на Guid.NewGuid() весь диапазон исчерпается.

ET>в каждом языке своя реализация?

Напомню, что 10^50 (10 в 50-й степени) есть число атомов в наблюдаемой вселенной.
И оно существенно меньше числа возможных GUID'ов.
Хотя... это была старая цифра, середины XX века. Новая цифра где-то 10^82. И это уже сравнимо с диапазоном GUID. Но проблем беспокоиться я лично не вижу.
Все данные устаревают, GUID'ы, интегрированные в данные, тоже устареют. И могут быть спокойно переиспользованы каждые 50-100 лет без всяких последствий для заказчика)))
Отредактировано 13.04.2022 21:12 VladD2 . Предыдущая версия .
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.