scylladb/scylladb

GitHub: scylladb/scylladb

ScyllaDB 是一款用 C++ 编写的高性能分布式 NoSQL 数据库,兼容 Cassandra CQL 和 DynamoDB API,提供比传统方案高一个数量级的性能与更低的硬件成本。

Stars: 15400 | Forks: 1470

# Scylla [![Slack](https://img.shields.io/badge/slack-scylla-brightgreen.svg?logo=slack)](http://slack.scylladb.com) [![Twitter](https://img.shields.io/twitter/follow/ScyllaDB.svg?style=social&label=Follow)](https://twitter.com/intent/follow?screen_name=ScyllaDB) ## 什么是 Scylla? Scylla 是一个实时大数据数据库,与 Apache Cassandra 和 Amazon DynamoDB API 兼容。 Scylla 采用无共享(shared-nothing)架构,提高了吞吐量和存储容量,实现了数量级的性能提升并降低了硬件成本。 更多信息,请访问 [ScyllaDB 网站]。 ## 构建前置条件 Scylla 对其构建环境相当挑剔,需要非常新的 C++23 编译器版本和许多库才能构建。文档 [HACKING.md](HACKING.md) 包含了关于构建和开发 Scylla 的详细信息,但为了在(几乎)任何构建机器上快速构建 Scylla,Scylla 提供了一个 [frozen toolchain](tools/toolchain/README.md)。 这是一个预配置的 Docker 镜像,包含了所有必需编译器、库和构建工具的最新版本。使用 frozen toolchain 可以让你避免更改构建机器上的任何东西来满足 Scylla 的要求——你只需要满足 frozen toolchain 的前置条件(主要是 Docker 或 Podman 可用)。 ## 构建 Scylla 使用 frozen toolchain `dbuild` 构建 Scylla 非常简单: ``` $ git submodule update --init --force --recursive $ ./tools/toolchain/dbuild ./configure.py $ ./tools/toolchain/dbuild ninja build/release/scylla ``` 更多信息,请参阅: * [开发者文档] 以获取更多关于构建 Scylla 的信息。 * [构建文档] 了解如何构建 Scylla 二进制文件、测试和软件包。 * [Docker 镜像构建文档] 获取关于如何构建 Docker 镜像的信息。 ## 运行 Scylla 要启动 Scylla 服务器,请运行: ``` $ ./tools/toolchain/dbuild ./build/release/scylla --workdir tmp --smp 1 --developer-mode 1 ``` 这将启动一个 Scylla 节点,为其分配一个 CPU 核心,数据文件存储在 `tmp` 目录中。 需要使用 `--developer-mode` 来禁用 Scylla 在启动时执行的各种检查,这些检查旨在确保机器配置为最佳性能(在开发工作站上无关紧要)。 请注意,如果你是使用 frozen toolchain 构建的 Scylla,则需要使用 `dbuild` 来运行它。 要了解更多运行选项,请运行: ``` $ ./tools/toolchain/dbuild ./build/release/scylla --help ``` ## 测试 [![Build with the latest Seastar](https://static.pigsec.cn/wp-content/uploads/repos/2026/03/b7b54ecb8b215600.svg)](https://github.com/scylladb/scylladb/actions/workflows/seastar.yaml) [![Check Reproducible Build](https://static.pigsec.cn/wp-content/uploads/repos/2026/03/4b30e9b947215610.svg)](https://github.com/scylladb/scylladb/actions/workflows/reproducible-build.yaml) [![clang-nightly](https://static.pigsec.cn/wp-content/uploads/repos/2026/03/bd569d3f1c215616.svg)](https://github.com/scylladb/scylladb/actions/workflows/clang-nightly.yaml) 参见 [test.py 手册](docs/dev/testing.md)。 ## Scylla API 和兼容性 默认情况下,Scylla 与 Apache Cassandra 及其 API —— CQL 兼容。 此外还支持 Amazon DynamoDB™ 的 API, 但需要启用和配置才能使用。有关如何在 Scylla 中启用 DynamoDB™ API, 以及该功能的当前兼容性和 Scylla 特定扩展的更多信息,请参阅 [Alternator](docs/alternator/alternator.md) 和 [Alternator 入门](docs/alternator/getting-started.md)。 ## 文档 文档可以在 [这里](docs/dev/README.md) 找到。 Seastar 文档可以在 [这里](http://docs.seastar.io/master/index.html) 找到。 用户文档可以在 [这里](https://docs.scylladb.com/) 找到。 ## 培训 培训材料和在线课程可以在 [Scylla University](https://university.scylladb.com/) 找到。 这些课程免费、自主进度,并包含实践示例。它们涵盖了各种主题,包括 Scylla 数据建模、 管理、架构、基本 NoSQL 概念、使用驱动程序进行应用程序开发、Scylla 设置、故障转移、压缩、 多数据中心以及 Scylla 如何与第三方应用程序集成。 ## 贡献给 Scylla 如果你想报告错误或提交 Pull Request 或补丁,请阅读 [贡献指南]。 如果你是开发 Scylla 的开发者,请阅读 [开发者指南]。 ## 联系方式 * [社区论坛] 和 [Slack 频道] 供用户讨论 ScyllaDB 的配置、管理和运维。 * [开发者邮件列表] 供开发者和有兴趣跟进 ScyllaDB 开发的人员讨论技术话题。
标签:C++23, Cassandra, DynamoDB, ScyllaDB, Seastar, 兼容性, 分布式存储, 分片, 基础设施, 大数据, 实时数据库, 宽列存储, 开源, 数据库, 服务器, 目录扫描, 请求拦截, 键值存储