Информация об изменениях

Сообщение Re: Искуственная генерация Guid от 25.01.2022 10:59

Изменено 25.01.2022 11:00 vsb

Re: Искуственная генерация Guid
Здравствуйте, 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-ов, есть шансы получить дубликат.
Re: Искуственная генерация Guid
Здравствуйте, 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-ов, есть шансы получить дубликат.