Bedrock - a scaleable, distributed key-value database with better-than-ACID guarantees

FDB is an ordered key/value store, so the key encodings are designed such that keys have useful ordering properties in their encoded form. See data modeling and the typecode reference in their internals docs.

Erlang’s term_to_binary does not provide these properties. There is an amusingly-named library to encode terms in term order. However, Erlang term order is also insufficient because tuple length is compared before contents, which is the wrong way around for prefix scanning of indexes. Though I think maybe you could use lists?

2 Likes