cayley icon indicating copy to clipboard operation
cayley copied to clipboard

Tuple store meta-backend

Open dennwc opened this issue 8 years ago • 1 comments

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.

dennwc avatar Dec 24 '17 20:12 dennwc

Is this: https://github.com/hidal-go/hidalgo?

iddan avatar Sep 22 '19 02:09 iddan