cayleygraph / cayleygraph/cayley
Tuple store meta-backend
- Dominant language
- Go
- Stars
- 15.1k
- Forks
- 1.2k
- PR merge metrics
- No merged PRs in 30d
Description
Regardless of all the differences, it looks like we could unify our SQL and NoSQL implementations (and even KV) under a single interface.
Rough idea is to have a flat typed record with multiple values, as in SQL, but allow only one PK per table that may consist of one or more fields. Most NoSQL backends will just hash PK fields into one key field, as they do now, and SQL will build proper PK from multiple fields.
Secondary indexes may also be defined and will always map to PK value. They cannot be unique - in case unique indexes needed, higher level can always make a new "table" for it.
Supported operations are the same as in current NoSQL meta-backend. The only difference is that it needs to resemble KV interface to make proper transactions possible.
Also, #654 seems like an implementation of exactly this kind of interface.
In case this interface will be implemented we will have a single QuadStore implementation instead of three separate ones.
Contributor guide
Assessment
This issue has not been assessed yet.