2014-01-27 8 views
2

Могу ли я использовать частный вариант/версию UUID?Могу ли я иметь «частные» UUID

Я использую случайные UUID, которые я по сути считаю большими целыми числами. Теперь у меня есть случай, когда я хотел бы создать «частный» UUID, который не основан ни на одном из известных 5 вариантов/версий.

Должен ли я «захватить» известный вариант/версию, я никогда не буду использовать? Или использовать неизвестный вариант/версию?

Ни один из RFC или wikipedia не охватывает эту тему.

ответ

3

Никто не ответил, поэтому я предлагаю свои соображения.

Мы используем случайные UUID для идентификации объектов в пределах четких границ системы. Хотя UUID представлены 128 битами, может быть только 2^121 случайных UUID, потому что версия (4 бита) и вариант (3 бита) являются константами. (На самом деле вариант 4 позволяет использовать один дополнительный бит и для педантичности, который можно добавить в 121.)

Я знаю, что мы никогда не будем использовать версии 1, 2, 3 и 5. К сожалению, оставшихся 11 (16 - 5) номеров версий в RFC.

Я решил разрешить использовать UUID версии 1 и вариант 0100 как частные (или локальные). Я зарезервировал 4 бита для моего собственного подтипа, который оставляет мне достаточно 117 бит на подтип для моего собственного использования. Для нескольких подсистем с детерминированными идентификаторами я могу теперь создавать UUID, которые вписываются в структуры, которые я использую.

Я полностью отдаю себе отчет в том, что эти идентификаторы могут теоретически сталкиваться с генерируемыми извне UUID. Но поскольку границы системы ясны и внешние идентификаторы рассматриваются отдельно, этот подход подходит нам и практически осуществим.

Смежные вопросы