GUID - наскільки унікальний

На тому самому комп'ютері потік подій

1000 за секунду. Для кожного генерується GUID. Чи буде він унікальним, чи ні?

З.И. Тільки не треба зараз розмов починати: "А чому не скористатися звичайним лічильником? А ти впевнений, що у тебе все нормально з архітектурою?" і т.п. :)

Буде унікальним. Бо крім прив'язки до заліза там і зараз задіяно.

ти впевнений, що в тебе все гаразд з архітектурою?

> ти впевнений, що в тебе все нормально з архітектурою?

Не впевнений. :) Але поки що не від мене залежить. :)

1000 за секунду. Для кожного генерується GUID а встигне?

На тому самому комп'ютері .

Чесно кажучи, не очікував такого питання. Начебто це великі істини. GUID унікальний. Проблеми можуть бути тільки якщо він генерується на лівому залозі.

Наскільки унікальний? З яким допуском береться поточний час? Просто в MSSQL, наприклад, хоч вбийся - дискрет 3 мілісекунди.

Єдина проблема задачі GUID-ів може скінчиться :)

:) Потвори. І при цьому вони примудряються проіндексувати унікальними ключами таблиці, що реплікуються.

Все ще залежить від операційної системи. Свого часу під 98-им ми натикалися на колізію двох парних гуїдів.

Взагалі, алгоритм генерації GUID"а треба шукати не в MS"івської документації, а в першоджерелі, стандартах OSF (конкретно - DCE RPC). Щось типу цього: http://www.opengroup.org/onlinepubs/9629399/apdxa.htm#tagcjh_20

Ось що знайшов у стандарті:

- terminating the requester

- reissuing the request until it succeeds

- stalling the UUID generator until the system clock catches up.

GUID унікальний статистично, як кажуть. Тобто. повторення можливі, але настількирідко, що їх можна знехтувати.

> за умови, що 1000 в секундуЩо за маячня.

Може я скажу новину, але унікальність GUID'a ніяк від частоти генерації не залежить. Та й взагалі, GUID НЕ МОЖУ закінчиться. вірніше можуть. до 3400 року. якщо це когось хвилює.

Гумор на тему: http://blogs.byte-force.com/xor/archive/2004/11/15/352.aspx

Гумор в тему. А що швидше, згенерувати GUID, або створити потік?

Якщо всі комп'ютери світу будуть генерувати GUID з якоюсь шаленою швидкістю, то ймовірність повторення за чорти якийсь час (чи за рік, чи за час існування Всесвіту) не перевищує п'яти відсотків. Унікальним він буде.

Ну якщо 1000 в секунду, то имхо, якщо у мене голова з ранку варить, ймовірність повторення буде 1000*кількість секунд/2^128 або приблизно кількість секунд/2^118. Тобто ймовірність повторення на добу – десь 1/2^100, на рік – десь 1/2^90

= 1/10^26. Я дуже сильно округляв, щоби просто показати порядки.

Можливість 1/10^26 на рік - це дуже невелика можливість. Може, я неправильно вважаю.

Чорт, я ж зарікся сюди писати. Сподіваюся, це буде мій останній пост :)

> ймовірність повторення за чорти якийсь час (чи за рік, чи за час існування Всесвіту) не перевищує п'яти . відсотків. Унікальним він буде.якщо ймовірність > 0, отже, гарантій унікальності бути не може може бути тільки відчуття унікальності а при можливій зміні заліза - так і взагалі

> Власне, мене цікавив той мінімальний часовий інтервал, > для якого гарантується унікальність GUID на рівні > алгоритму генерації.Нижня оцінка - дискретність системного таймера. Насправді може ігірше.

При досить високій швидкості закачування даних швидше за все гальма виникнуть саме через генерацію гуїдів. Лічильник таки крутити швидше.

> Лічильник таки крутити швидше.

Та я знаю, що його крутити швидше. Сам фанат сурогатних ключів. Але тут система сильно розподілена виходить. І навіть складовий ключ унікальності не дає, є прецедент, коли таке може виникнути. А коли прецедент є - треба модель міняти.

Я, ось, одного зрозуміти не можу - чому не зрозумілий простий факт з комбінаторики ?

І до чого тут MAC, system time, system slice та інша трібуха? Як би вони не імплантувалися в алгоритм.

З рівним успіхом можна користуватися RND-генератором бажаної довжини. Недостатньо 2^128 - використовуєш 2^1024 і т.п.

> за даним документом MS Word (також що отримує під час створення > свій унікальний GUID) можна було визначити комп'ютер на > якому він був створенийа що, алгоритм реверсивний?

Ця історія про Office 97. Потім MS пішла від вбудовування MAC.

Ні. Так само як і нормальний хеш. Для швидко наступних запитів додатково використовується інкремент.

> Ні. Так само, як і нормальний хеш.так у чому тоді був страх> за GUID визначити комп'ютер, на якому він був створений?

Останній блок в GUID був присвячений MAC. Тобто. був завжди однаковий для одного і того ж інтерфейсу і як би видавав з головою комп'ютер, на якому він був створений.

Обов'язково закінчиться, через 2118 секунд