Cassandra4.0版本新功能揭秘

本文涉及的产品
云原生多模数据库 Lindorm,多引擎 多规格 0-4节点
Redis 开源版,标准版 2GB
推荐场景:
搭建游戏排行榜
云数据库 MongoDB,独享型 2核8GB
推荐场景:
构建全方位客户视图
简介: 8月份的社区线上开发者活动,邀请到的演讲嘉宾蔡一凡老师是Cassandra贡献者之一,其所在公司部署了全球最大的Cassandra集群节点数量。介绍了Cassandra 4.0版本中的新功能:审计日志、零拷贝串流、Netty节点间通信、虚拟表、增量式修复、临时副本等。

8月份的社区线上开发者活动,邀请到的演讲嘉宾蔡一凡老师是Cassandra贡献者之一,其所在公司部署了全球最大的Cassandra集群节点数量。
本次演讲介绍了Cassandra 4.0版本中的新功能:审计日志、零拷贝串流、Netty节点间通信、虚拟表、增量式修复、临时副本等。
1、审计日志:
将数据库所有操作记录到一个本地文件,包括authentication,所有的CQL请求,不论成功与否都会被记录下来。用途广泛,如利用记录来debug线上问题,也可以辅助测试。4.0版本中同步推出的full query logger就是用审核日志来实现的,这些由full query logger生成的记录可用来做回放测试。另外,也可以帮助企业做合规管理,可作为企业的审核依据。
2、零拷贝串流:
零拷贝串流是指在串流时无需将数据读到内存后再写入到网络,发送方和接收方可以直接通过网络发送和接收数据。从而显著提升性能(3-5倍的速度),远小于普通串流所需的时间,并大大减少内存和CPU的占用。在Cassandra中,串流会被应用于很多场景。基本所有数据在集群中被复制时都可用到。
零拷贝串流可帮助缩短节点的恢复时间,降低多个节点同时处于不可用状态的概率。可以帮助降低运维成本。如加速节点数据迁移速率。
3、Netty节点间通信
在4.0版本中,节点间通信改成了Netty。I/O是非阻塞的,不再按节点分配线程。
Netflix通过测试192个节点的Cassandra集群,对比4.0和3.0版本,发现4.0版本的延迟平均值减少40%,99分位的延迟减少了60%,吞吐量提升约2倍。
另外,节点间加密通信扩展性更高,主要是得益于Netty的tcnative。它跟JDK自带的加密性能相比,大概提升了有4倍。
4、虚拟表
虚拟表是基于Cassandra内部的一些API实现的,可以把虚拟表当作Cassandra的一个接口。目前虚拟表是只读的。每一个虚拟表都是每个节点所特有的,也就是说虚拟表是local的。有了虚拟表,我们可以不用JMX,通过CQL来进行查询虚拟表,从而获取Cassandra的系统状态和当前配置。
5、增量式修复
增量式修复在2.1版本中就已推出。但这个功能存在一些问题,不适用于生产环境。Cassandra 4.0把之前的很多问题修复了。增量式修复将数据分为“已修复”和“未修复”两个部分,每次修复时只修复“未修复”的部分,不再修复已修复过的数据。从而减少每次修复的时间,只需要几分钟即可完成。
6、临时副本
临时副本是4.0版本的试验性功能,并不推荐用在生产环境中。临时副本节点只保存没有修复的数据,在修复之后,这些数据就会被临时副本节点删除。这个功能最好是和增量式修复一起使用,这样可以很快地从临时副本节点中将未修复的数据修复,之后再删除。这样一来,可以认为临时节点并不占用存储空间。
临时副本节点带来的好处是减少存储空间,临时节点只保留临时数据,数据量比较小,修复完就删除,所以这个节点会使用更少的CPU和I/O。

相关文章
|
负载均衡 监控 NoSQL
Redis的集群方案有哪些?
Redis集群包括主从复制(基础,手动故障恢复)、哨兵模式(自动高可用)和Redis Cluster(官方分布式解决方案,自动分片和容错)。此外,还有如Codis、Redisson和Twemproxy等第三方工具用于代理和负载均衡。选择方案需考虑应用场景、数据规模和并发需求。
633 2
|
存储 消息中间件 SQL
Flink 基础学习(五)数据存储
前面两篇笔记已经写了数据来源和转换如何使用,那么这篇当然就到了数据存储,接下来将会从以下角度介绍一下(喜闻乐见的 What / Why / How)~:
1727 0
Flink 基础学习(五)数据存储
|
NoSQL Shell Linux
Linux上MongoDB无法连接解决之道
解决重启机器后mongodb不能连接的问题
19103 0
|
4月前
|
人工智能 PyTorch API
利用OpenVINO™高效推理MiniCPM4系列模型
面壁智能正式发布端侧MiniCPM 4.0 模型,实现了端侧可落地的系统级软硬件稀疏化的高效创新。
163 0
|
5月前
|
缓存 监控 JavaScript
HarmonyOSNext应用无响应全解析:从机制到实战的卡死问题排查
本文深入解析HarmonyOS Next中应用无响应的卡死问题,涵盖THREAD_BLOCK_6S、APP_INPUT_BLOCK与LIFECYCLE_TIMEOUT三种常见类型,结合日志分析与实战案例,手把手教你快速定位并解决主线程阻塞、输入事件卡顿及生命周期超时问题,适用于Stage模型开发者学习使用。
370 0
|
NoSQL 容灾 MongoDB
MongoDB主备副本集方案:两台服务器使用非对称部署的方式实现高可用与容灾备份
在资源受限的情况下,为了实现MongoDB的高可用性,本文探讨了两种在两台服务器上部署MongoDB的方案。方案一是通过主备身份轮换,即一台服务器作为主节点,另一台同时部署备节点和仲裁节点;方案二是利用`priority`设置实现自动主备切换。两者相比,方案二自动化程度更高,适合追求快速故障恢复的场景,而方案一则提供了更多的手动控制选项。文章最后对比了这两种方案与标准三节点副本集的优缺点,指出三节点方案在高可用性和数据一致性方面表现更佳。
1074 5
|
存储 数据挖掘 BI
数据仓库深度解析与实时数仓应用案例探析
随着数据量的不断增长和数据应用的广泛深入,数据治理和隐私保护将成为数据仓库建设的重要议题。企业需要建立完善的数据治理体系,确保数据的准确性、一致性和完整性;同时加强隐私保护机制建设,确保敏感数据的安全性和合规性。
1125 55
|
小程序 JavaScript Java
点餐|外卖订餐小程序|基于微信小程序的外卖订餐系统设计与实现(源码+数据库+文档)
点餐|外卖订餐小程序|基于微信小程序的外卖订餐系统设计与实现(源码+数据库+文档)
663 0
|
算法 Oracle JavaScript
JDK 15下载、安装及新特性介绍
JDK 15已经于2020年9月15日如期发布。本文介绍JDK 15新特性。
4528 0
|
数据安全/隐私保护 Docker 容器
银河麒麟v10-arm版离线安装Portainer
银河麒麟v10-arm版离线安装Portainer
1169 0