听听专家客观的聊聊3个NoSQL数据库:Aerospike、DataStax 和 ScyllaDB,它们都为云的到来而更新!

“整个数据库可以放在一个机架中”

DataStax 是开源 DBMS Apache Cassandra 的主要供应商,正在推出其产品的数据库即服务 (DBaaS) 版本,而模仿 Cassandra 的 ScyllaDB 也推出了自己的升级版,以与 DynamoDB 竞争,后者是同一数据库的 AWS 本地版本。

这些更新是 NoSQL 数据库领域的一系列活动的一部分,PayPal 和欧洲中央银行使用的键值数据库 Aerospike 也推出了第五个版本,其功能包括低延迟和分布在全球各地的交易应用程序的一致性。

尽管 Cassandra 及其衍生物与 Aerospike 相比具有不同的优势和用例,但这些版本显示了 NoSQL 市场在性能、规模和云就绪方面的加速发展情况。

据说 Aerospike 数据库 5 中的多站点集群消除了数据一致性和高性能之间的权衡瓶颈,这通常是传统关系数据库的问题。Aerospike 认为,无论数据库是跨多个数据中心、云位置还是在不同区域的本地和云之间运行,这都是正确的。

Aerospike 的首席产品官兼创始人 Srini Srinivasan 告诉记者:“整个数据库可以放在一个机架中,因此您可以在公共云中驱动集群的一个机架,在您自己的数据中心区域中作为一个单独的集群驱动另一个机架,在它们之间,每次写入都会有一个协调的分布式交易。”

同时,因为集群的整个副本都保存在单个机架上,所以可以在应用程序中本地读取数据库。他声称:“您没有读取延迟。”“而且,该系统处于活动状态,因此在一处发生的更新会立即反映在其他站点上。”

他表示,尽管在全球范围内运行该系统的延迟仍然不小,但与竞争对手的 NoSQL 系统相比,已大大减少了。“这取决于站点之间的距离。您知道,如果是同一座城市,则可能在几毫秒之间就可到达任何地方,或者如果横跨整个大陆,可能是 150 毫秒。而且,要执行其中的某些过程,这是一个很小的代价,目前需要花费数小时或数天才能保持一致。”

Aerospike 在金融服务领域很受欢迎,客户包括巴克莱银行,但其正在涉足工业和物流领域的物联网应用程序。

高德纳杰出副总裁兼分析师 Donald Feinberg 表示,这是全球组织希望看到的功能。“使数据中心始终如一地运行,始终会造成延迟问题。如果要在多区域应用程序中进行一致的交易,则传统方法是两阶段提交,这需要时间并且可能降低交易速度。”

他表示,尽管 Aerospike 的方法会有一些滞后——“您不能改变光速”——但这是在大大减少实现一致性的时间,以提高整体服务水平。

尽管它已经建立了与 Apache Spark 分析引擎的连接器,但 Aerospike 在很大程度上仍是一个交易数据库。

与 Aerospike 不同,Apache Cassandra 并不是主要为交易而设计的,而是作为一个分布式存储系统,用于管理结构化数据,可以跨许多商用服务器扩展到非常大的规模。为该项目做出贡献的主要供应商是 DataStax,该公司今天宣布 DataStax Astra (面向 Apache Cassandra 应用程序的 DBaaS)的全面上市。目的是将云应用程序部署时间从数周缩短至几分钟,从而消除了 Cassandra 部署的最大障碍。DataStax 表示,开发人员还可以构建应用程序而无需 Cassandra 的运营开销。

Astra 可在谷歌云平台 (GCP) 和 AWS 上使用,并有望支持 Azure。

DataStax 首席产品官 Ed Anuff 表示:“像 Cassandra 这样的数据库面临的挑战是,与关系数据库相比,在云中进行操作要复杂得多。早在人们使用 MySQL 的时候,您就可以只运行它的单个实例,无论它是在笔记本电脑上还是在 ISP 账户上。在运行分布式数据库时,它的操作要复杂得多。”

DataStax 的客户包括美国银行、eBay 和在线学习公司 Coursera。他表示,尽管一些客户希望自己运行 Cassandra,但其他客户则希望使用 DBaaS 选项。

高德纳的 Feinberg 同意客户希望通过 Cassandra 减轻部署和管理方面的麻烦。“他们告诉我们首要的问题是管理。如果您有多个节点,它将变得复杂而繁琐。”

他表示,开发 Amazon Keyspaces 也是出于同样的原因,是 Cassandra copy-cat 的无服务器演示。

亚马逊交换有多容易...

另一个 Cassandra 的克隆 ScyllaDB 上周发布了其第四版。ScyllaDB 表示,它承诺提供与 Cassandra 和 DynamoDB (亚马逊的另一个类似 Cassandra 的产品)兼容的API,以便更容易地将应用程序切换到新数据库,避免供应商锁定。

它可以在本地、首选的云平台上或在 Scylla 完全管理的 DBaaS (Scylla Cloud) 上运行。

但是 ScyllaDB 首席执行官 Dor Laor 表示,秘诀在于代码。从头开始,数据库是用 C++ 而不是 Java 重写的,而 Java 支持 Cassandra。

“第一个优势是性能,更好的性能意味着成本降低,因为您始终可以运行分布式数据库:当您从较小的集群中获得更高的性能时,成本更低,管理也更简单。因此,在吞吐量和延迟方面,我们的性能都比 Cassandra 好六到十倍。我们没有 Java,因此也没有 JVM,这是中间的一大层。我们还实现了许多算法,使我们能够执行得更好。”

“例如,我们控制自己的内存管理,而在 Java 中,它们依赖 Linux 页面缓存,这是 Linux 中通用的缓存:我们的缓存已进行了调整,我们只有一个主缓存,而不是很多。”

尽管康卡斯特、星巴克和三星已采用 ScyllaDB,但高德纳的 Feinberg 仍对该公司的性能要求持怀疑态度。

他表示,在 ScyllaDB 和 Cassandra 的每个版本中,每个都声称比另一个有更好的性能。同时,AWS DynamoDB 支持亚马逊 Prime。他表示,尽管“写它的人就坐在隔壁”,但它的确显示了数据库的性能可能性。

他不相信 ScyllaDB 的性能优势会推动客户前进。他表示,“如果 Cassandra 适合您,为什么不使用它?”。

随着 NoSQL 市场的增长,名称变得越来越荒唐,选项变得更加令人困惑,特别是对于本质上相同数据库的大量副本。但是,IT 团队应该根据成本和用例谨慎选择,而不是纯粹的性能或营销愿景。