ScyllaDB 旨在成为一个弹性的 NoSQL 数据库,目前正在进行 beta 测试。它从头开始设计,旨在利用多核系统并提供非常高的性能。
Don Marti,ScyllaDB 的技术营销经理,是 Linux 咨询公司 Electric Lichen 的联合创始人。他是 Mozilla 的战略顾问,并曾担任 硅谷 Linux 用户组 的总裁和副总裁,以及 USENIX、CodeCon 和 LinuxWorld 会议与博览会 的程序委员会成员。
在加利福尼亚州帕萨迪纳举行的 SCaLE 14x 会议之前,Don 与我们进行了交谈,他将在会上就 ScyllaDB、JavaScript 和 将软件演示转变为软件项目 发表演讲。
您是如何开始使用 ScyllaDB 的?
自 20 世纪 90 年代中期以来,我一直参与 Linux 和开源,而 Scylla 是开源向上堆栈发展并为一些要求最苛刻的公司提供更多价值的自然进程。运行弹性数据库所涉及的问题是当今 IT 领域最困难和最有价值的问题之一。
ScyllaDB 目前的状态如何?
Scylla 目前处于 beta 测试阶段,并有望在 1 月底发布 GA 版本。Beta 版本(包括 Amazon AMI)现已提供下载。
请描述 ScyllaDB 的“无共享”架构概念,以及为什么为了实现您描述的性能,这种架构是必要的。
Scylla 每个核心运行一个执行线程,核心之间仅通过消息传递进行通信——系统上每对核心使用一对专用队列。这意味着 Scylla 可以避免代价高昂的锁定。例如,Scylla 中的所有内存分配都在需要内存的核心本地处理,因此任何需要内存的核心都不必等待锁。
为什么需要它?一个词:多核。今天的处理器设计人员正在为我们提供越来越多的核心,这意味着我们必须在内核和用户空间级别重新思考软件设计。内核开发人员多年来一直在消除核心之间的争用,但大多数 NoSQL 数据库仍然适应 20 世纪 90 年代的硬件假设——到处都是线程和锁。(许多 Scylla 开发人员来自内核背景并非巧合。)最终结果是具有 Apache Cassandra 的功能和弹性属性的 NoSQL 数据库,但每个节点的吞吐量高出一个数量级。
总共可以将多少个节点组合成一个 ScyllaDB 引擎?实际可行的节点数量是多少?
节点之间的架构和通信基于 Apache Cassandra,它可以处理多个数据中心中的数万个节点。由于 Scylla 提供相同的设计,但延迟更低——以及更简单、更可靠的本机软件堆栈——因此应该可以运行更大的 Scylla 集群。但是,典型的 Scylla 集群可以是 Cassandra 集群的十分之一大小,并提供相同的吞吐量。在大多数情况下,我们看到您可以用更少的节点做更多的事情,例如用 100 节点 Scylla 集群替换 1,000 节点 Cassandra 集群。
此架构的主要性能瓶颈是什么?您预计如何克服它?
Scylla 使用与 Cassandra 相同的磁盘存储格式,以方便迁移。由于磁盘格式旨在实现 100% 兼容性,而不是最大性能,因此它可能是设计中最慢的部分。
但是,在这一点上,Scylla 已经非常快,以至于原始性能问题不如其他增强功能重要。原始性能甚至高于项目开始时的预期,因此我们有一些时间来关注客户的功能请求。
ScyllaDB 的下一步是什么?
目前,我们专注于一直在评估 Scylla 的早期试点客户,主要是作为 Cassandra 的升级路径,但也作为其他数据库的替代方案。
您希望通过在 SCaLE 14x 上的演讲实现什么目标?
重点是您可以通过一系列简短的命令,立即在云或您自己的服务器上运行一个快速、弹性的数据库。您可以专注于您的项目,而不是考虑调整垃圾回收和其他复杂的 DevOps 任务。
我们的读者可以在哪里了解更多关于 ScyllaDB 的信息?
访问我们的 入门 页面之一,以在您选择的环境中运行 Scylla:Amazon AWS、Docker 或您自己的带有 RPM 或 deb 包的服务器。
评论已关闭。