scylladb Logo

scylladb

实时大数据NoSQL数据库 兼容Cassandra和DynamoDB

Scylla数据库分布式系统NoSQL高性能Github开源项目

Scylla是一个实时大数据NoSQL数据库,API兼容Apache Cassandra和Amazon DynamoDB。采用无共享架构,大幅提高吞吐量和存储容量,实现性能数量级提升,同时降低硬件成本。项目提供冻结工具链简化构建,支持开发者模式运行,并配有详细文档、培训资料和活跃社区。

Scylla

Slack Twitter

Scylla是什么?

Scylla是一个实时大数据数据库,与Apache Cassandra和Amazon DynamoDB在API上兼容。Scylla采用无共享架构,提高了吞吐量和存储容量,实现了数量级的性能提升,并降低了硬件成本。

更多信息,请访问ScyllaDB网站

构建先决条件

Scylla对其构建环境要求严格,需要非常新的C++23编译器版本和许多库。HACKING.md文档包含了有关构建和开发Scylla的详细信息,但为了在(几乎)任何构建机器上快速构建Scylla,Scylla提供了一个冻结工具链。这是一个预配置的Docker镜像,包含了所有必需的编译器、库和构建工具的最新版本。使用冻结工具链可以避免为满足Scylla的要求而更改构建机器上的任何内容 - 你只需满足冻结工具链的先决条件(主要是可用的Docker或Podman)。

构建Scylla

使用冻结工具链dbuild构建Scylla非常简单:

$ git submodule update --init --force --recursive
$ ./tools/toolchain/dbuild ./configure.py
$ ./tools/toolchain/dbuild ninja build/release/scylla

更多信息,请参阅:

运行Scylla

要启动Scylla服务器,请运行:

$ ./tools/toolchain/dbuild ./build/release/scylla --workdir tmp --smp 1 --developer-mode 1

这将启动一个Scylla节点,分配一个CPU核心,并将数据文件存储在tmp目录中。--developer-mode参数是必需的,用于禁用Scylla在启动时执行的各种检查,以确保机器配置为最佳性能(在开发工作站上不相关)。请注意,如果你使用冻结工具链构建Scylla,则需要使用dbuild运行Scylla。

要了解更多运行选项,请运行:

$ ./tools/toolchain/dbuild ./build/release/scylla --help

测试

使用最新的Seastar构建 检查可重现构建 clang-nightly

请参阅test.py手册

Scylla API和兼容性

默认情况下,Scylla与Apache Cassandra及其API - CQL兼容。Scylla还支持Amazon DynamoDB™的API,但需要启用和配置才能使用。有关如何在Scylla中启用DynamoDB™ API的更多信息,以及此功能的当前兼容性和Scylla特定扩展,请参阅AlternatorAlternator入门指南

文档

文档可以在这里找到。 Seastar文档可以在这里找到。 用户文档可以在这里找到。

培训

培训材料和在线课程可以在Scylla大学找到。这些课程是免费的,可以自定进度学习,并包含实践示例。它们涵盖了各种主题,包括Scylla数据建模、管理、架构、基本NoSQL概念、使用驱动程序进行应用程序开发、Scylla设置、故障转移、压缩、多数据中心以及Scylla如何与第三方应用程序集成。

为Scylla做贡献

如果你想报告bug或提交pull请求或补丁,请阅读贡献指南

如果你是Scylla的开发者,请阅读开发者指南

联系方式