2010-04-25 18 views
9

Zastanawiam się, jaki format identyfikatorów UUID jest domyślnie reprezentowany w CouchDB. Podczas gdy RFC 4122 opisuje UUID, takie jak 550e8400-e29b-11d4-a716-446655440000, CouchDB używa ciągłych znaków, takich jak 3069197232055d39bc5bc39348a36417. Szukałem trochę czasu zarówno na ich wiki, jak i na ich dokumentacji, co to jest, ale bez rezultatu.UUIDs w CouchDB

Czy wiesz, czy jest to format niezgodny z RFC, pomijając wszystkie -, czy jest to zupełnie inna reprezentacja 128 bitów.

W tle używam Java UUID, które są sformatowane zgodnie ze specyfikacją RFC. Widzę zaletę, że styl CouchDB jest prawdopodobnie bardziej przydatny do budowania wewnętrznych drzew, ale chcę mieć pewność, że użyję spójnej implementacji.

Odpowiedz

11

Technicznie nie używamy standardu rfc dla uuidów, jak zauważyliście. Wersja cztery uuids rezerwują coś jak cztery bity, aby określić wersję uuid. Nie formatujemy ich również łącznikami, które są ogólnie widoczne w innych implementacjach.

Uuids CouchDB to 16 losowych bajtów sformatowanych jako hex. Z grubsza mówiąc, jest to wersja vu uuid, ale nie rfc.

Bez względu na specyfikę, w praktyce nie ma większego problemu. Generalnie nie powinieneś próbować interpretować uuid, chyba że próbujesz przeprowadzić jakąś pozapasmową analizę. CouchDB nigdy nie będzie interpretować uuidów, polegamy tylko na właściwościach losowości w nich zawartych.

Najważniejsze jest, aby nie martwić się o to i traktować je jak struny po pokoleniu.

+0

Dziękuję za odpowiedź. –