超高性能的NoSQL和MQ

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

c56ea3cf8e44f55db75aec0c70ef3e65.jpeg

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

31442e0bc21c68dd3bcacfcb22708755.jpeg

在下面的图表中,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框架直接在用户模式下访问网络设备,避免了内核介入,从而实现了零拷贝、零锁定和零上下文切换。这些新型软件利用了现代硬件的优势,以适应当今数据处理的需求。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小技术君

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值