超高性能的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

(0)
小技术君的头像小技术君
上一篇 2024年4月14日
下一篇 2024年4月14日

相关推荐

  • 部署服务中的风险缓解策略

    在软件开发和运维的过程中,部署服务是一个非常重要的环节。但是,由于部署和升级服务的过程很容易出错,所以必须采取一些风险缓解策略。本文将介绍常见的几种部署策略,并讨论它们的优缺点。 …

    CDN资讯 2024年4月19日
    0
  • Kubernetes中PostgreSQL的推荐方法

    1*HDp3_wvu78Vaa-4C9NFHaQ.gif你是否曾听说过避免在Kubernetes中运行数据库的建议?有人认为Kubernetes不适合有状态的应用程序,但这些说法是…

    CDN资讯 2024年4月20日
    0
  • CDN节点存储空间怎么管理?

    CDN(内容分发网络)作为提高网站性能和加速访问速度的解决方案,在实际应用中需要有效地管理其节点存储空间,以确保内容的高效分发和访问。下面将介绍一些CDN节点存储空间管理的方法和技…

    2024年4月17日
    0
  • 深入了解kafka系列-消费者

    前言 与生产者对应的是消费者,应用程序可以通过KafkaConsumer来订阅主题,并从订阅的主题中拉取消息。不过在使用KafkaConsumer消费消息之前需要先了解消费者和消费…

    2024年4月17日
    0

发表回复

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