2010-04-25 9 views
9

Ich wundere mich über das Format UUIDs sind standardmäßig in CouchDB dargestellt. Während der RFC 4122 UUIDs wie 550e8400-e29b-11d4-a716-446655440000 beschreibt, verwendet CouchDB fortlaufend Zeichen wie 3069197232055d39bc5bc39348a36417. Ich habe sowohl in ihrem Wiki als auch in ihrer Dokumentation einige Zeit gesucht, was das eigentlich ist, jedoch ohne Ergebnis.UUIDs in CouchDB

Wissen Sie, ob dies ein nicht RFC-konformes Format ist, das alle - auslässt oder ist dies eine völlig andere Darstellung der 128 Bits.

Der Hintergrund ist, dass ich Java UUIDs verwende, die wie im RFC angegeben formatiert sind. Ich sehe den Vorteil, dass der CouchDB-Stil wahrscheinlich nützlicher für den Aufbau interner Bäume ist, aber ich möchte sicher sein, eine konsistente Implementierung zu verwenden.

Antwort

11

Technisch verwenden wir nicht den rfc-Standard für Uuids, wie Sie bemerkt haben. Version vier UUIDs reservieren etwas wie vier Bits, um die Version von UUID anzugeben. Wir formatieren sie auch nicht mit den Bindestrichen, die normalerweise in anderen Implementierungen zu sehen sind.

CouchDB UUIDs sind 16 zufällige Bytes, die als Hex formatiert sind. Grob gesagt, das ist eine v4-UUID, aber nicht RFC-konform.

Unabhängig von den Besonderheiten gibt es in der Praxis wirklich kein großes Problem. Im Allgemeinen sollten Sie nicht versuchen, einen Uuid zu interpretieren, es sei denn, Sie versuchen eine Art Out-of-Band-Analyse durchzuführen. CouchDB wird niemals Uuids interpretieren, wir verlassen uns nur auf die darin enthaltenen Eigenschaften der Zufälligkeit.

Das Endergebnis wäre, sich nicht darum zu sorgen und sie nur als Strings nach der Generation zu behandeln.

+0

Vielen Dank für Ihre Antwort. –