I am working on a research project comparing several document-oriented databases.
MongoDB has BSON, ArangoDB has VelocyPack, Postgresql has Jsonb,…
Does Couchbase also have its own binary format to work with JSON documents, on disk or in memory?
I am working on a research project comparing several document-oriented databases.
MongoDB has BSON, ArangoDB has VelocyPack, Postgresql has Jsonb,…
Does Couchbase also have its own binary format to work with JSON documents, on disk or in memory?
Data is typically stored as plain JSON, though binary documents can also be stored (though not manipulated). This is noted here:
https://docs.couchbase.com/server/current/learn/architecture-overview.html#about-this-section
and in more detail here:
https://docs.couchbase.com/server/current/learn/data/data.html
HTH.
@dh When Couchbase stores a JSON document, does it store the JSON text (possibly Snappy-compressed), or does it use some other binary JSON format internally?
I think that’s the thrust of the question, judging from the related discussion on StackOverflow.
@jwalker may be better placed to confirm the internals. AFAIK, it does depend on the bucket type, with Couchbase buckets being implemented with GitHub - couchbase/couchstore: couchbase storage file library
Certainly when couchstore is the storage, a document is just compressed using snappy, no other “re-formatting” occurs. So if a JSON document is written, it is just that JSON document stored after being snappy compressed, if a binary value is written, it is just that binary value stored after being snappy compressed.