- Source Code
- https://github.com/SequoiaDB/SequoiaDB[02]
- Developer
- Country of Origin
- CN
- Start Year
- 2011 [22]
- Project Types
- Commercial, Open Source
- Written in
- C++
- Compatible With
- MySQL, PostgreSQL, Spark SQL
- Operating System
- Linux
- License
- AGPL v3
The storage layer is a database storage engine that uses the Raft algorithm to achieve data consistency across distributed nodes.
The computing layer consists of relational database instances, which can be a MySQL instance, a semi-structured data access interface via, for example, JSON APIs, or an unstructured data storage interface with, for example, AWS S3.
Key features of SequoiaDB include distributed OLTP with availability and consistency guarantees, petabyte-level horizontal scalability, Hybrid Transactional / Analytical Processing (HTAP), and 2-region 3-data-center recovery mechanisms.
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 algorithm to achieve data consistency across distributed nodes.
The computing layer consists of relational database instances, which can be a MySQL instance, a semi-structured data access interface via, for example, JSON APIs, or an unstructured data storage interface with, for example, AWS S3.
Key features of SequoiaDB include distributed OLTP with availability and consistency guarantees, petabyte-level horizontal scalability, Hybrid Transactional / Analytical Processing (HTAP), and 2-region 3-data-center recovery mechanisms.[05][06]
Concurrency Control[09]
SequoiaDB implements transactions, but does not support concurrency control options. Transactions are limited to only include record insert, delete, update, and query (read) operations. Other database operations such as creating new index are not supported in transactions and will not be logged as part of the transaction.
Data Model[10][11]
SequoiaDB supports relational, semi-structured (e.g. JSON), and unstructured (e.g. POSIX file) data models. Data model in storage is JSON.
Indexes[11][12]
Indexes in SequoiaDB use conventional B-trees. An index has a unique name for the index on the data collection and a JSON object that defines the indexing criteria and direction. Indexes can be unique or non-unique. If an index is unique, it can be null-able or non-null-able.
In addition to regular indexes, SequoiaDB supports full-text searching via Elasticsearch.
Isolation Levels[13]
SequoiaDB supports three levels of isolation - read uncommitted, read committed, and read stability. By default, the system is configured as read uncommitted.
Logging[14][07][15]
The system implements logical logging and log replay to support data consistency across distributed replicas.
Storage Architecture[18][17]
If the system is deployed on distributed clusters, it can be configured with either range-based or hash-based sharding.
Storage Model[19][17]
SequoiaDB uses a JSON format record as a unit of data storage. These records are stored in collections. Collections are stored in "collection spaces".
Stored Procedures[20][21]
SequoiaDB supports creating and executing custom procedures via JavaScript-like syntax in SequoiaDB Shell.
System Architecture[11]
The system is configurable to deploy on a single node or on multiple distributed nodes. In a distributed environment, coordination nodes and catalog nodes share disk space, while storage nodes are given separate disk space. The storage nodes can be configured to share disk or each to be given nonshared disk.
Citations
22 sources- SequoiaDB sequoiadb.com
- GitHub - SequoiaDB/SequoiaDB: SequoiaDB 巨杉数据库是一款分布式文档型数据库,自研的原生分布式存储引擎支持完整ACID,具备弹性扩展、高并发和高可用特性,并以文档型 JSON 的半结构化数据格式为基础,兼容S3对象数据引擎接口,进一步形成Multi-Model多模数据处理能力,可支持跨结构化、半结构化和非结构化的多模数据处理。适用于历史数据平台、全量数据平台、实时数据中台和内容数据管理平台等各类应用场景。 · GitHub github.com
- SequoiaDB 简介_文档中心_SequoiaDB巨杉数据库 sequoiadb.com
- SequoiaDB - Wikipedia wikipedia.org
- SequoiaDB sequoiadb.com
- 整体架构_SequoiaDB 简介_文档中心_SequoiaDB巨杉数据库 sequoiadb.com
- logfilesz/logfilenum_特殊配置项修改_数据库配置_运维管理_文档中心_SequoiaDB巨杉数据库 sequoiadb.com
- 文档记录_数据模型_系统架构_文档中心_SequoiaDB巨杉数据库 sequoiadb.com
- 分布式事务_系统架构_文档中心_SequoiaDB巨杉数据库 sequoiadb.com
- 产品概述_SequoiaDB 简介_文档中心_SequoiaDB巨杉数据库 sequoiadb.com
- SequoiaDB 简介_文档中心_SequoiaDB巨杉数据库 sequoiadb.com
- 索引_数据模型_系统架构_文档中心_SequoiaDB巨杉数据库 sequoiadb.com
- 分布式事务_系统架构_文档中心_SequoiaDB巨杉数据库 sequoiadb.com
- 日志归档与重放_备份恢复_运维管理_文档中心_SequoiaDB巨杉数据库 sequoiadb.com
- 数据库日志dump工具_数据管理工具_运维管理_文档中心_SequoiaDB巨杉数据库 sequoiadb.com
- flags()_SdbQuery_SequoiaDB Shell方法_参考手册_文档中心_SequoiaDB巨杉数据库 sequoiadb.com
- SequoiaDB 简介_文档中心_SequoiaDB巨杉数据库 sequoiadb.com
- 分区原理_分区_系统架构_文档中心_SequoiaDB巨杉数据库 sequoiadb.com
- 集合空间_数据模型_系统架构_文档中心_SequoiaDB巨杉数据库 sequoiadb.com
- createProcedure()_Sdb_SequoiaDB Shell方法_参考手册_文档中心_SequoiaDB巨杉数据库 sequoiadb.com
- SequoiaDB 简介_文档中心_SequoiaDB巨杉数据库 sequoiadb.com
- SequoiaDB sequoiadb.com