About this project
SequoiaDB (巨杉数据库) is a distributed document-oriented NoSQL database designed for large-scale data platforms. Its core engine, sequoiadb, implements a self-developed native distributed storage engine that guarantees ACID transactions while supporting elastic scaling, high concurrent access, and high availability. Data is stored in JSON format, providing a flexible semi-structured model, and the system includes an S3-compatible object storage interface, allowing it to handle multi-model workloads across structured, semi-structured, and unstructured data.
The product comprises several components:
- Engine: the sequoiadb process, with control scripts sdbstart, sdbstop, sdbdblist, sdbfmp.
- Shell: sdb client and its backend sdbbp for interactive querying and administration.
- Cluster Manager: sdbcm, sdbcmart, sdbcmtop, sdbcmd for managing cluster topology and services.
- Tools: utilities for log dump (sdbdpsdump), export/import (sdbexprt, sdbimprt), data inspection (sdbinspt), restore (sdbrestore), monitoring (sdbtop, sdbperfcol), and web service control (sdbwsart, sdbwstop). SequoiaFS provides a file‑system layer built on top of the database.
- Drivers: client libraries for C, C++, PHP, Java, Python (2 and 3), and .NET, enabling language‑specific access.
- Connectors: adapters for Hadoop, Hive, Storm, and a PostgreSQL foreign data wrapper to integrate with existing big‑data and SQL ecosystems.
Building SequoiaDB requires SCons, Ant, Python, and PostgreSQL as prerequisites, along with a compatible C/C++ toolchain. The build system supports selective compilation of the engine, clients, shell, tools, test cases, and FMP (fenced mode process) via SCons flags (--engine, --client, --shell, --tool, --testcase, --fmp, --all). Drivers and connectors have their own build steps, typically invoking SCons or Maven/Ant in the respective driver directories.
Packaging for RPM‑based distributions is provided via a Python script (package.py) that generates installable packages after meeting the RPM prerequisites.
To run SequoiaDB in standalone mode, a data directory is created, the engine is started with sdbstart (e.g., ./sdbstart -p 11810 --force), and the shell (sdb) is used to instantiate a database object and run commands. Cluster deployment follows the instructions in the SequoiaDB Information Center.
The project is primarily licensed under Apache License 2.0, with most source files released under this terms. Official support targets x86_64 and ppc64 Linux distributions such as CentOS, Red Hat, SUSE, and Ubuntu; Windows and 32‑bit builds are considered test‑only.
SequoiaDB positions itself as a versatile data platform suitable for historical data platforms, full‑data platforms, real‑time data mid‑office, and content data management scenarios, offering a blend of NoSQL flexibility with traditional database guarantees.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.