2010-04-25 4 views
9

Мне интересно, формат UUID по умолчанию представлен в CouchDB. Хотя RFC 4122 описывает UUID, например 550e8400-e29b-11d4-a716-446655440000, CouchDB использует непрерывные символы, такие как 3069197232055d39bc5bc39348a36417. Я искал некоторое время в своей вики и их документации, что это на самом деле, но без каких-либо результатов.UUIDs в CouchDB

Знаете ли вы, что это либо формат, не соответствующий RFC, который пропускает все -, либо это совершенно иное представление о 128 бит.

Фон состоит в том, что я использую Java UUID, которые отформатированы, как указано в RFC. Я вижу преимущество, что CouchDB-стиль, вероятно, более удобен для создания внутренних деревьев, но я хочу быть уверенным в использовании последовательной реализации.

ответ

11

Технически мы не используем стандарт rfc для uuids, как вы заметили. Версия 4 uuids резервирует что-то вроде четырех бит, чтобы указать версию uuid. Мы также не форматируем их с помощью дефисов, которые обычно видны в других реализациях.

CouchDB uuids - 16 случайных байтов, отформатированных как hex. Грубо говоря, это v4 uuid, но не совместимый с rfc.

Независимо от специфики, на практике практически не существует проблемы. Обычно вы не должны пытаться интерпретировать uuid, если вы не пытаетесь сделать какой-то внеполосный анализ. CouchDB никогда не будет интерпретировать uuids, мы полагаемся только на свойства случайности, связанные с ними.

Нижняя строка не должна беспокоиться об этом и просто рассматривать их как строки после поколения.

+0

Благодарим вас за ответ. –