Accordion:一种HBase内存压缩算法

HBase 2.0引入Accordion(手风琴)算法,旨在提升读写性能,接近内存速度同时保证持久存储。该算法基于LSM树,通过在内存中压缩数据,减少磁盘刷新频率,从而降低写入放大和I/O开销。

HBase中,数据先写入MemStore,刷入磁盘后形成HFile。传统设计下,MemStore容量小,频繁flush影响性能。Accordion将LSM思想应用于内存,通过CompactingMemStore在内存中管理多个segment,自动合并冗余版本,减少HFile生成,提升写入吞吐量,并降低GC压力和读取延迟。

Accordion提供两种压缩级别:

basic(优化所有更新)和eager(适用于高频率更新场景,如队列或计数器,会主动清理冗余数据,但可能增加CPU和GC开销,不建议与MSLAB堆内分配同用)。

配置方式:

在全局或列族级别设置,支持none、basic、eager三种模式,默认basic。

性能测试(YCSB):

Zipf分布下,写入吞吐提升20%,写入放大降低30%,GC降低22%,读延迟降低12%;均匀分布下,写入吞吐提升50%,写入放大降低25%,GC降低36%。

工作原理:

CompactingMemStore将数据分为active segment和不可变segment pipeline,flush时生成快照写盘,同时后台合并segment索引,实现空间高效索引和快速查找。未来版本可能支持自动选择压缩策略,适应动态访问模式。

相关推荐
摇滚侠13 分钟前
《On Java 中文版 基础卷》阅读笔记 实现隐藏 12
java·数据库·笔记
川石课堂软件测试41 分钟前
学习软件测试需掌握的一些知识
数据库·python·sql·功能测试·网络协议·mysql·http
HRaitest1 小时前
秋招技术岗招聘提效:三类 AI 招聘方案的技术底层与选型逻辑
大数据·人工智能·求职招聘·ai-native
2501_937767161 小时前
自建 SQL 数据库定时备份踩坑复盘与落地思路
数据库·sql
starzy19903 小时前
Kafka源码深度剖析:消息有异常是如何处理的
大数据·kafka
silvamux_3 小时前
10款模型写种草笔记:可发布性、返工来源与成本数据缺口复盘
java·数据库·笔记
大大大大晴天3 小时前
每天认识一个组件:ClickHouse
大数据
zwjapple4 小时前
skill总结
大数据·elasticsearch·搜索引擎
I Am a robert girl4 小时前
从 GameHorizon 拆解多时间尺度游戏评测:数据管线、离线基准与在线回放的三层设计
数据库·游戏·多时间尺度·数据管线·游戏评测·离线基准·在线回放
躺柒5 小时前
读数据安全架构设计与实践17安全架构案例(下)
数据库·安全·零信任·安全架构·防火墙·无边界