在 Redis Enterprise 5.0 中,我们引入了对开源 (OSS) 集群 API 的支持,该 API 允许 Redis Enterprise 集群通过添加分片和节点无限且线性地扩展。 这篇博文 描述了我们的线性扩展基准测试中的第一个测试,以及 Redis Enterprise 如何使用 OSS 集群 API,并展示了无限的线性性能可扩展性。
在过去几个月里,我们进行了测试,其中包括额外的基准测试——如以下所示,在 k 节点 Redis Enterprise 集群上的 n 分片数据库。
表 1:Redis Enterprise 在提供毫秒级性能的同时实现线性扩展
图 1:集群吞吐量(@ 1 毫秒延迟)
这表明随着吞吐量的增加,节点会线性成比例地增加,Redis Enterprise 能够在所有数据大小和工作负载中始终提供毫秒级延迟。有关此分析的详细信息以及基准配置的完整说明,请参见 这篇白皮书。
根据 维基百科,可扩展数据库是指可以通过添加新的处理器和存储来升级以处理更多事务的数据库,并且可以轻松且透明地进行升级,而无需关闭数据库。数据库可以横向扩展(通过将节点添加到集群,重新平衡,然后对数据库进行重新分片)或纵向扩展(通过添加分片到数据库而无需将节点添加到集群)。Redis Enterprise 通过其不受磁盘限制的特性而能够优化横向扩展和纵向扩展。
“线性扩展”(在横向扩展时)意味着通过添加与增加的吞吐量相关的资源(在 Redis 术语中,“资源”指的是节点和分片)来顺序扩展数据库。真正的线性可扩展性意味着资源数量与数据库吞吐量以相同的比例增加,并且以确定性的方式增加。例如,将集群资源增加 50% 将转化为 50% 的吞吐量增加。
了解多节点系统的可扩展性对于资源规划至关重要;了解添加节点和分片将如何影响性能非常重要。如果数据库可以线性扩展,则可以最大限度地减少操作开销,并允许您发展业务,而无需担心数据库的大小限制或性能瓶颈。但是,通常与横向扩展相关联的开销,这意味着当您将容量增加 N 时,数据库吞吐量通常增加的倍数小于(或远小于)N。
数据库提供
答案很简单,不!
其他数据库供应商已经发布了许多关于他们扩展能力的基准测试和博客文章,但实际上,结果表明 Redis Enterprise 优于其 NoSQL 对手。
下图显示了其他 NoSQL 供应商执行的基准测试的结果。它比较了 Apache Cassandra、Hbase、MongoDB 和 Couchbase 等 NoSQL 数据库。
表 2:供应商的节点和吞吐量
从图表中可以明显看出,所有这些供应商都提供了亚线性扩展。 例如,如果我们分析 Cassandra 的吞吐量与节点的关系,Cassandra 可以用 1 个节点处理约 18,700 个操作/秒(四舍五入)。然后,在 32 个节点上,它应该能够处理约 600,000 个操作/秒。但是,如上所示,它只能处理大约 330,000 个操作/秒——仅为真正线性扩展数据库应该能够处理的 55%。
相同的方法和结论适用于此表中的所有其他供应商。
这些数据库将每秒处理数万个请求作为最佳情况,这令人震惊。当今的电子商务、社交网络、在线游戏、消息传递和协作、物联网等现代应用程序需要能够处理数百万个操作/秒。这些数据库显然不是为这些流量而构建的,同时还能提供更低的 TCO。
凭借其 最新的基准测试,Redis Enterprise 已证明其能够处理每秒数百万个操作,即使使用最基本的配置也是如此。如以下图表所示,Redis Enterprise 只是简单地优于其他数据库,并提供超线性扩展,而不会影响性能!
表 3:Redis Enterprise – 每个节点的最佳吞吐量与实际吞吐量
这个新的基准测试证明了 Redis Enterprise 能够实现真正的线性可扩展性,同时提供可预测且快速的性能,并以最有效的方式使用您的资源,帮助您经济高效地构建可扩展的现代应用程序。