Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

UUIDs in CouchDB

Tags:

uuid

couchdb

I am wondering about the format UUIDs are by default represented in CouchDB. While the RFC 4122 describes UUIDs like 550e8400-e29b-11d4-a716-446655440000, CouchDB uses continuously chars like 3069197232055d39bc5bc39348a36417. I've searched some time in both their wiki and their documentation what this actually is, however without any result.

Do you know whether this is either a non RFC-conform format omitting all - or is this a completely different representation of the 128 bits.

The background is that I'm using Java UUIDs which are formatted as noted in the RFC. I see the advantage that the CouchDB-style is probably more handy for building internal trees, but I want to be sure to use a consistent implementation.

like image 351
b_erb Avatar asked Apr 25 '10 11:04

b_erb


1 Answers

Technically we don't use the rfc standard for uuids as you've noticed. Version four uuids reserve something like four bits to specify the version of uuid. We also don't format them with the hyphens that are generally seen in other implementations.

CouchDB uuids are 16 random bytes formatted as hex. Roughly speaking that's a v4 uuid but not rfc compliant.

Regardless of the specifics, there's really not much of an issue in practice. You generally shouldn't try to interpret a uuid unless you're trying to do some sort out-of-band analysis. CouchDB will never interpret uuids, we only rely on the properties of randomness involved therein.

Bottom line would be to not worry about it and just treat them as strings after generation.

like image 117
Paul J. Davis Avatar answered Jan 01 '23 10:01

Paul J. Davis