Ответ 1
Во-первых, чтобы быть ясным, все это обсуждение ограничено версиями 3 и 5 UUID. В моем (анекдотическом) опыте наиболее часто используются UUID версии 4 (случайные).
4122 неоднозначно начинается алгоритм генерации UUID с именами:
Выделите UUID для использования в качестве "Идентификатора пространства имен"
Нет другого упоминания о распределении идентификатора пространства имен, и ни я, ни python не обнаружили никаких стандартизованных пробелов за пределами четыре, перечисленные в RFC 4122.
Итак, ответ на ваш первый вопрос,
- Если я создаю свой собственный UUID пространства имен, мне нужно избегать чего-либо в частности?
Вам нужно избегать четырех стандартных пространств имен.
Следующий вопрос,
- Я знаю, насколько велико пространство UUID, но имеет ли это какое-либо влияние на столкновение?
Имеет две части:
-
Сбой UUID в пространстве имен? Verbatim от 4122:
UUID, созданные из двух разных имен в [вашем] пространстве имен, должны быть разными (с очень высокой вероятностью).
-
Будет ли ваше UUID пространства имен сталкиваться с другими пространствами имен? Я не мог найти прямой ответ, так как нет стандартного для выделения идентификатора пространства имен, но аргумент в раздел 4.1.1 кажется отношение:
Взаимодействие в любой форме с вариантами, отличными от одного определенная здесь, не гарантируется и вряд ли будет проблемой в практика.
- Почему они выбрали 4-й октет для увеличения как своего рода номера версии UUID?
Это немного загадка. К счастью, у нас есть спецификация для UUID, поэтому мы можем раздобыть их для понимания.
Обратите внимание, что 8-й октет (0-index) начинается с 8
во всех случаях, поэтому мы имеем дело с RFC 4122 вариантом UUID. Уф.
Теперь проверьте октет 6 для версии: 1
, мы имеем дело с версией 1 UUID.
Этот ответ имеет удобный алгоритм для извлечения данных python из UUID версии 1. Применение алгоритма дает время в 4 февраля 1998 года. Я еще не нашел смысла в эту дату. Увеличение 3-го октета добавляет наименьший кодируемый интервал времени (100 нс) к дате.
- У меня возникают вопросы о том, что я пропустил что-то принципиальное в отношении UUID?
Неа. Существует очень мало обсуждений пространств имен UUID, так как случайные UUID настолько просты.