2010-04-25 12 views
9

Mi chiedo in che modo gli UUID di formato sono rappresentati di default in CouchDB. Mentre RFC 4122 descrive UUID come 550e8400-e29b-11d4-a716-446655440000, CouchDB utilizza caratteri continuamente come 3069197232055d39bc5bc39348a36417. Ho cercato un po 'di tempo in entrambi i loro wiki e nella loro documentazione di cosa si tratta in realtà, tuttavia senza alcun risultato.UUID in CouchDB

Sapete se questo è un formato non conforme a RFC che omette tutti - oppure è una rappresentazione completamente diversa dei 128 bit.

Lo sfondo è che sto usando gli UUID Java che sono formattati come indicato nella RFC. Vedo il vantaggio che lo stile CouchDB è probabilmente più utile per la costruzione di alberi interni, ma voglio essere sicuro di usare un'implementazione coerente.

risposta

11

Tecnicamente non usiamo lo standard rfc per uuids come hai notato. Gli uuid della versione quattro si riservano qualcosa come quattro bit per specificare la versione di uuid. Inoltre, non li formattiamo con i trattini che sono generalmente visti in altre implementazioni.

Gli uuid CouchDB sono 16 byte casuali formattati come esadecimale. In parole povere questo è un uuid v4 ma non conforme a rfc.

Indipendentemente dalle specifiche, in pratica non c'è molto di un problema. Generalmente non dovresti cercare di interpretare un uuid a meno che tu non stia provando a fare un'analisi di tipo out-of-band. CouchDB non interpreterà mai gli uuidi, ci basiamo solo sulle proprietà della casualità in esso contenute.

La linea di fondo sarebbe non preoccuparsi e trattarli come stringhe dopo generazione.

+0

Grazie per la risposta. –