ScyllaDB 发布其 NoSQL 数据库的主要版本,支持并发 OLTP 和 OLAP

阅读数:1030 2018 年 12 月 24 日 16:26

ScyllaDB发布其NoSQL数据库的主要版本,支持并发OLTP和OLAP

Scylla 年度峰会上,ScyllaDB发布了其旗舰产品 ScyllaDB Open Source 的 3.0 版本。正如新闻稿所言:

这次发布标志着一个重要的里程碑。作为 Apache Cassandra 的替代,Scylla Open Source 增加了 NoSQL 社区非常期待的、已经生产就绪的功能,同时引入了提高利用率和最小化运营开销的新特性。

ScyllaDB 的新特性包括:并发 OLTP 和 OLAP ;物化视图;二级索引;兼容 Cassandra 3.x 文件格式。

为了在多核硬件上实现最佳性能,ScyllaDB 集成了 Seastar ,这是一个用于高性能服务器应用程序的高级开源框架。Seastar 的架构创新包括:

入门

下载并开始使用开源版本的 ScyllaDB,有许多选择。作为最简单的选项,ScyllaDB 推荐 Docker 选项。例如,使用 Docker 启动 ScyllaDB 的单个实例:

复制代码
$ docker run --name scylla -d scylladb/scylla

在 Docker 下载并提取必要的文件之后,ScyllaDB 就可以使用了。以下 Docker 命令启动 Cassandra 查询语言 shell CQLsh ,以执行 ScyllaDB 命令,用于通常的管理和数据库操作:

复制代码
$ docker exec -it scylla cqlsh

对于 Cassandra 的当前用户,ScyllaDB 大致介绍了从 Cassandra 迁移到 ScyllaDB 的过程。

ScyllaDB 还提供了一个企业版,该版本具有以下优点:集群管理、任务自动化、24/7 关键任务支持、长期支持、专有许可证。ScyllaDB路线图是即将发布的 ScyllaDB Open Source 和企业版特性的预览。

ScyllaDB 首席执行官 Dor Laor 向 InfoQ 介绍了这个最新版本。

InfoQ:相对于其他 NoSQL 数据库,基于 Apache Cassandra 创建 ScyllaDB 的灵感是什么?

Dor Laor*:这是个好问题。回到 2014 年我们刚起步的时候,我们看到 Cassandra 拥有庞大的用户基础,并且在一些方面做得非常好,比如横向扩展,但是它存在一些 *性能问题。我们决定效仿 Cassandra 的优点,比如:

- “无主复制(masterless replication)”
- “横向线性扩展(linear horizontal scalability)”
- “全球分布(global distribution)”
- 可调节的一致性
- 简单直观的数据模型

这些都是构建分布式数据库的可靠特性。然而,尽管如此,我们还是对 Cassandra 的局限性睁大了眼睛。我们知道这是一个很好的基线,但我们也知道还有很多改进的空间。

InfoQ:Cassandra 是用 Java 编写的。为什么选择使用 C++ 编写 ScyllaDB?

*Laor:*C++ 功能强大、速度快、效率高。它非常适合管理大量的内存,可以进行大粒度、高精度、低层次的控制。

InfoQ: 与其他 NoSQL 数据库相比,ScyllaDB 有什么独特之处?

Laor*:除了 *吞吐量非常高、延迟一贯较低之外,我们是一个自优化数据库,其设计适合于伸缩。

我们来谈谈优化。我们在 Cassandra 和许多其他数据库中看到的一个关键问题是,开发人员需要大量的专业知识和时间来对性能进行优化。所以,我们从一开始就在 Scylla 中加入了自调整和自优化功能。

Scylla 是由对操作系统有深入认识和对控制理论有全面理解的人编写的。这些知识反映在 Scylla 利用现代多核 / 多 CPU 系统的方式上,从它的无共享、“按核分片(shard-per-core)”、构建在 Seastar 之上的异步架构,到它的自适应自动调优等简化管理的特性。许多其他数据库的开发人员并不是从这个底层的角度出发的,结果显示在它们的性能和可伸缩性上,既包括横向,也包括纵向。

对于用户来说,这意味着我们可以极大地缩小他们的服务器群占用的空间,节省大量的运营成本,并使他们的系统获得更好的性能。

InfoQ:ScyllaDB 未来会推出什么特性?

Laor*:我们正在进一步深化对系统架构(如 CPU 和 I/O 调度程序)的控制,以提供在同一个数据库集群上共享 * OLTP 和 OLAP 活动的独一无二的新方法。这使得数据库管理员可以创建角色并为每个用户分配 SLA,以便更细粒度地控制哪些活动在系统利用方面优先。

实时工作负载获得最高的优先级,而其他工作负载(如分析)则获得最有效的方法,并且只有在有空闲容量时才执行。与目前的做法相比,这是一个很大的改进:为了在不影响事务数据库的情况下运行分析,用户被迫在一个完全独立的集群上克隆和维护他们的完整数据集。

我们还打算用 Scylla Cloud 颠覆数据库即服务(DBaaS)市场,并于近期启动了我们的“早期访问”计划。基于我们的 Scylla Enterprise 数据库,Scylla Cloud 实现高吞吐量需要的机器要少得多,它将是一个引人注目的产品——三分之一的延迟,五分之一的成本,最重要的是,没有供应商锁定。

我们感兴趣的另一个领域是混合存储部署。我们已经发布了 Scylla Enterprise 2018.1.7 ,它提供了一个内存内选项,可以快速读取任务关键数据表。这只是我们预见到的许多内存和分层存储混合部署选项中的第一个,特别地,我们看到这样一些发展,固态驱动器的密度和性能越来越高持久性内存的出现。

另外,特别是对于我们的企业客户,我们有许多计划中的安全特性,从静止加密到基于角色的访问控制(RBAC)和安全的 nodetool 连接,以及集成 Kerberos 和轻量级目录访问协议(LDAP)。

要了解关于这些特性和未来其他特性的更多信息,请查看我们公开发布的路线图

查看英文原文: ScyllaDB Announces Major Release of its NoSQL Database and Support for Concurrent OLTP and OLAP

收藏

评论

微博

用户头像
发表评论

注册/登录 InfoQ 发表评论