SequoiaDB is a distributed relational database with a storage layer and a computing layer. The storage layer is a database storage engine that uses the [Raft](https://raft.github.io/) algorithm to achieve data consistency across a distributed environment. The computing layer consists of relational database instances such as a MySQL instance, semi-structured data access instances such as via JSON APIs, and/or unstructured data storage model instances such as with AWS S3. Key features of SequoiaDB include - Distributed OLTP with availability and consistency guarantees - Petabyte-level horizontal scalability - Hybrid Transactional / Analytical Processing (HTAP) - 2-region 3-data-center recovery mechanisms
SequoiaDB supports relational, semi-structured (e.g. JSON), and unstructured (e.g. POSIX file) data storage models.
Indexes in SequoiaDB use conventional B-trees. An index has the following fields: - `name`: a unique name for the index on the data collection - `key`: a JSON object that defines the indexing criteria and direction - `unique`: an optional flag, default `false`, indicating if the indexing fields must be unique fields on the data collection - `enforced`: an optional flag, default `false`, only effective if `unique` is set to `true`, indicating if the indexed fields must not be `NULL` In addition to regular indexes, SequoiaDB supports full-text searching via [Elasticsearch](https://www.elastic.co/products/elasticsearch).
Commercial, Open Source
C, C#, C++, Java, PHP, Python