thadt 1 day ago

You can only query by key (and key ranges). To work with the fact that FoundationDB just exposes keys as raw bytes, the FDB team developed a rather clever 'tuple' serialization protocol and standardized its presence in the different client bindings. This encoding lets developers turn a tuple of values into byte string that sort correctly, making them useful for creating indexes and other higher level layers such as directories. This library appears to be a nice CLI interface to working with those facilities.

Unless you were using these tools (tuples and directories) on top of another KV store, this query language probably wouldn't help much elsewhere. However, the tuple encoding scheme is rather straightforward and for doesn't depend on anything specific to FDB (aside from versionstamps but you just wouldn't implement those for another DB).

1
withinboredom 18 hours ago

Versions are super important on any kv store that deals with concurrency. Without it, you can’t do any kind of concurrency control.