LINUX.ORG.RU

История изменений

Исправление Manhunt, (текущая версия) :

Занятые GUID храняться
Получить свободный GUID без коллизий с (желательно) равной вероятностью среди всех свободных GUID, обращаясь к хранилищу минимальное количество раз.
Когда количество занятых id станет больше 20% из возможных id

Генерируешь рандомный GUID и запрашиваешь у хранилища ближайший к нему неиспользованный. Чтобы эффективно обслуживать такой запрос, хранилище должно оперировать не отдельными GUID-ами, а непрерывными диапазонами GUID-ов: расширять и объединять диапазоны по мере добавления в него новых GUID-ов, сужать и разделять диапазоны по мере уничтожения старых GUID-ов.

Исходная версия Manhunt, :

Занятые GUID храняться
Получить свободный GUID без коллизий с (желательно) равной вероятностью среди всех свободных GUID, обращаясь к хранилищу минимальное количество раз.
Когда количество занятых id станет больше 20% из возможных id

Генерируешь рандомный GUID и запрашиваешь у хранилища ближайший к нему неиспользованный. То есть хранилище должно оперировать не GUID-ами, а непрерывными диапазонами GUID-ов: расширять и объединять диапазоны по мере добавления в него новых GUID-ов, сужать и разделять диапазоны по мере уничтожения старых GUID-ов.