Scylla
什么是Scylla?
Scylla是实时大数据数据库,与Apache Cassandra和Amazon DynamoDB的API兼容。Scylla采用无共享的方法,增加吞吐量和存储容量,以实现数量级的性能改进并降低硬件成本。
欲了解更多信息,请参见ScyllaDB网站。
构建先决条件
Scylla对其构建环境相当挑剔,需要非常新版本的C++20编译器和许多库来构建。文档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二进制文件、测试和软件包。
- Docker镜像构建文档,了解如何构建Docker镜像的信息。
运行Scylla
要启动Scylla服务器,请运行。
$ ./tools/toolchain/dbuild ./build/release/scylla --workdir tmp --smp 1 --developer-mode 1
这将启动一个Scylla节点,分配给它一个CPU核心,数据文件存储在tmp 目录中。需要--developer-mode ,以禁用Scylla在启动时进行的各种检查,以确保机器被配置为最大的性能(与开发工作站无关)。请注意,如果你用冻结的工具链构建Scylla,你需要用dbuild 来运行它。
关于更多的运行选项,请运行:
$ ./tools/toolchain/dbuild ./build/release/scylla --help
测试
参见test.py手册。
Scylla的API和兼容性
默认情况下,Scylla与Apache Cassandra及其API--CQL和Thrift兼容。还有对Amazon DynamoDB™的API的支持,需要启用和配置才能使用。关于如何在Scylla中启用DynamoDB™ API的更多信息,以及该功能和Scylla特定扩展的当前兼容性,请参阅Alternator和Getting started with Alternator。
文档
文档可以在这里找到。Seastar文档可以在这里找到。用户文档可以在这里找到。
培训
培训材料和在线课程可以在Scylla大学找到。这些课程是免费的,自定进度的,包括实践案例。它们涵盖各种主题,包括Scylla数据建模、管理、架构、基本的NoSQL概念、使用驱动程序进行应用开发、Scylla设置、故障转移、压缩、多数据中心以及Scylla如何与第三方应用程序集成。
对Scylla的贡献
如果您想报告一个错误或提交一个拉动请求或一个补丁,请阅读贡献指南。
如果您是一个在Scylla上工作的开发者,请阅读开发者指南。