github.com
69
13
mdaniel 1 day ago

I dunno why you chose to editorialize the repo's summary (and thus the html title contents) away from the much clearer "Foundation DB Query Language" than what sounded like a generic KV query language whose readme launched right into talking about Foundation DB and never got around to any S3 specifics

surprisetalk 1 day ago

Totally fair point. Although FQL is specifically designed for FoundationDB, I'm personally excited about using it as a generic syntax for querying other KV stores.

MarkMarine 1 day ago

I don’t have any exposure to foundationDB except for the incredible endorsement of Aphyr saying they have a test suite so good he didn’t bother testing it with jepson. I’m shocked by the demo I just saw with FQL, when I hear KV store I assume I can only query by Key. This looks far richer. I’m not sure I understand what I’m seeing, can anyone actually using this DB explain?

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).

withinboredom 16 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.

rapsey 1 day ago

FDB is a sorted KV database. So you can do range queries.

fatnoah 15 hours ago

Am I the only one that thought of this? https://en.wikipedia.org/wiki/Facebook_Query_Language

m3047 15 hours ago

I was looking for possible inspiration for some kind of best practice to reduce the amount of information returned for wildcarded Redis queries (reduce it to just what's changing, or maybe some piece of what's changing). Didn't find it. Could be the documentation lacks clarity.

geogra4 19 hours ago

Reminds me a lot of XPath/XQuery

cryptonector 1 day ago

Every NoSQL ends up getting a QL.

PittleyDunkin 1 day ago

"NoSQL" was always a terribly-named movement indicating a heinously-shallow view of data stores.

josephg 1 day ago

NoSQL != NoQL.

otabdeveloper4 19 hours ago

SQL is "Structured Query Language".

So yes, they get the QL without the S.