超高性能的NoSQL和MQ

是否可能实现至少10倍的性能提升,相比原始的Kafka和Cassandra?如何实现?有哪些权衡考虑?

有一类存储软件,如Redpanda和ScyllaDB,它们声称至少可以提高一个数量级的性能。

在下面的图表中,Redpanda可以与Kafka进行比较,而ScyllaDB类似于NoSQL的Cassandra。

?无JVM,无GC Kafka和Cassandra是用JVM兼容的语言编写的,通常会受到高尾延迟的影响,其中平均延迟表现良好,但由于垃圾回收(GC)的影响,99%的延迟并不好。 Redpanda和ScyllaDB从头开始使用C++进行重写,并利用了一些新的框架(例如,SeaStar)。它们很难编码,但可以实现更高的性能(详细的性能指标请见下面的图表)。?分享-无架构 每个请求都被固定到一个CPU核心。核心之间没有内存争用。这也对NUMA(非一致性内存访问)架构友好,因此线程可以访问更接近CPU核心的内存。?零复制网络 使用SeaStar框架,这两个产品可以直接在用户模式下访问网络设备,内核不会介入。零复制,零锁定和零上下文切换。

自Apache Kafka和Apache Cassandra革命了软件行业处理大量数据的方式以来已经过去了十年。

自那时以来,服务器CPU核心数量增长了10倍。内存从64GB增长到半TB。NVMe SSD驱动器比十年前的旋转磁盘快100倍。25Gbps的网络带宽已经很普遍。

一种新的软件类别已经进入市场,以利用这种趋势。我们撰写了这篇文章,以提高对这种趋势的认识。

趋势

许多公司正在采用这些新型软件来取代 Kafka 和 Cassandra,并从更高的性能、更低的延迟和更好的可扩展性中受益。

?Uber:将 Kafka 消息总线替换为 Redpanda。?NTT Communications:将 Cassandra 数据库替换为 ScyllaDB。?Zilliqa:使用 Redpanda 作为其公共区块链的事务引擎。?AdGear:使用 ScyllaDB 作为其实时竞价广告系统的后端。?Beeswax:使用 Redpanda 作为其实时广告交换的数据总线。?Boxever:使用 ScyllaDB 作为其实时数据平台的后端数据库。

总结

主要介绍了一类新型存储软件,如Redpanda和ScyllaDB,它们声称可以至少比Kafka和Cassandra快10倍。这些软件的性能提升的实现方式是:使用C++进行重写,避免了JVM和GC所带来的尾延迟问题;采用共享无状态体系结构,使每个请求都针对一个CPU核心进行处理,避免了核心之间的内存争用;采用零拷贝网络技术,通过SeaStar框架直接在用户模式下访问网络设备,避免了内核介入,从而实现了零拷贝、零锁定和零上下文切换。这些新型软件利用了现代硬件的优势,以适应当今数据处理的需求。

原创文章,作者:小技术君,如若转载,请注明出处:https://www.sudun.com/ask/33840.html

Like (0)
小技术君的头像小技术君
Previous 2024年4月14日
Next 2024年4月14日

相关推荐

  • 每个开发者都应该知道的7个原则

    1*9InfF_CQmGrAAPEv9sxT9g.png软件开发是一门复杂的领域。是什么让高质量的软件与容易出错、充满错误的软件有所不同?答案通常在开发人员在编写代码时采用的核心原…

    CDN资讯 2024年4月12日
    0
  • ?概览数据库索引

    数据库表是一组行/记录。然而,这些行并不是以表的形式物理存储的,它们存储在块上的数据页中。要在这些数据页中找到特定记录需要扫描多个文件。为了改进这一点,我们创建索引。索引是小型的引…

    CDN资讯 2024年4月3日
    0
  • cdn公司排名,cdn厂家排名

    当今数字化时代,网站性能的优化已成为企业竞争的关键之一。CDN(内容分发网络)公司在这一领域扮演着至关重要的角色。本文旨在探讨CDN公司的排名情况,并介绍其中的佼佼者。在如今信息爆…

    2024年5月11日
    0
  • 7种系统设计中的数据库范式

     在设计系统时,选择合适的数据库并明确原因是最重要的决策之一。市场上有许多不同的数据库可供选择,这使得做出正确选择变得困难且令人困惑。每个数据库都有其自己的故事和自己独特…

    CDN资讯 2024年4月9日
    0

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注