Cassandra4.0版本新功能揭秘

简介: 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。

相关文章
|
Linux 对象存储 Windows
MinIO 客户端安装与使用教程
MinIO 客户端安装与使用教程
1693 0
|
8月前
|
缓存 自然语言处理 Android开发
Magnet Axiom 9.5 新增功能概览 - 数字取证与分析
Magnet Axiom 9.5 新增功能概览 - 数字取证与分析
279 5
Magnet Axiom 9.5 新增功能概览 - 数字取证与分析
|
9月前
|
人工智能 PyTorch API
利用OpenVINO™高效推理MiniCPM4系列模型
面壁智能正式发布端侧MiniCPM 4.0 模型,实现了端侧可落地的系统级软硬件稀疏化的高效创新。
312 0
|
10月前
|
缓存 监控 JavaScript
HarmonyOSNext应用无响应全解析:从机制到实战的卡死问题排查
本文深入解析HarmonyOS Next中应用无响应的卡死问题,涵盖THREAD_BLOCK_6S、APP_INPUT_BLOCK与LIFECYCLE_TIMEOUT三种常见类型,结合日志分析与实战案例,手把手教你快速定位并解决主线程阻塞、输入事件卡顿及生命周期超时问题,适用于Stage模型开发者学习使用。
|
数据采集 JavaScript 搜索推荐
ssr(Nuxt+Next.js)
服务器端渲染(SSR)技术可在服务器上生成页面HTML,提升首屏加载速度和SEO效果。Nuxt.js基于Vue.js,提供自动化路由管理、页面级数据获取和模块化扩展;Next.js基于React.js,支持SSR、静态生成和文件系统路由。两者均具备快速加载、SEO友好和处理复杂页面的优点,但也存在服务器压力大、开发限制和调试困难的缺点。开发者可根据项目需求和技术栈选择合适的框架。
304 2
|
安全 算法 C++
专题九Simulink仿真基础-2
专题九Simulink仿真基础
460 1
|
监控 数据可视化 数据挖掘
直播电商复盘全解析:如何通过工具提升团队效率
直播电商作为新兴商业模式,正改变传统零售格局。其成功不仅依赖主播表现和产品吸引力,更需团队高效协作与分工优化。复盘是提升执行力的关键环节,通过总结经验、发现问题、优化流程,结合在线工具如板栗看板,可提升复盘效率。明确团队角色、建立沟通机制、制定优化方案,确保数据驱动决策,从而在竞争中保持领先。
|
开发者 Python
【Python】已解决:FutureWarning: The default value of regex will change from True to False in a future ver
【Python】已解决:FutureWarning: The default value of regex will change from True to False in a future ver
659 1
|
小程序 Java 关系型数据库
基于Java微信小程序场地预约系统设计和实现(源码+LW+调试文档+讲解等)
基于Java微信小程序场地预约系统设计和实现(源码+LW+调试文档+讲解等)