cayleygraph / cayleygraph/cayley

Tuple store meta-backend

Open
#665 1 comment 2 reactions 1 assignee Claimed by @dennwc View on GitHub
backends
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

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.