BT

如何利用碎片时间提升技术认知与能力? 点击获取答案

HBase 1.3 发布,性能大幅提升

| 作者 Alexandre Rodrigues 关注 0 他的粉丝 ,译者 魏星 关注 0 他的粉丝 发布于 2017年2月10日. 估计阅读时间: 3 分钟 | AICon 关注机器学习、计算机视觉、NLP、自动驾驶等20+AI热点技术和最新落地成功案例。

Apache HBase 1.3.0版在2017年1月中旬正式发布了,新版本支持分层数据的压缩和多个方面的性能提升,像预写日志(WAL)、一个新的RPC机制,等等。HBase 1.3.0一共修复了1,700多个问题。

在一些像OpenTSDB的项目中,HBase通常被直接用作时序应用或者通过项目本身用作时序应用。在时序应用中,数据常常按照抵达时间的先后顺序队列写入存储单元,查询数据经常发生在一个有限的时间回溯窗口内,这导致最新写入数据的查询操作比旧数据更频繁。

HBase 1.3.0版本支持分层压缩的特性正好适用于一些特定的应用场景——在极少数情况下,数据被删除或更新的时候——通常要更频繁地扫描最新的数据,而旧数据则较少被扫描。

使用这种新的压缩策略可以轻松记录文件的生存时间(time-to-live,TTL);当将现有存储文件压缩到单个较大的存储文件中时,过期的记录将被删除。

根据谷歌BigTable的建模法则,HBase基于NoSQL将数据划分成不同的区域,每个区域都分别被定义为关键空间的起始和结束行。HBase设置了区域服务器来管理多个区域,当一个区域变得过大时,它会被拆分成两个并且随机迁移给其他的区域服务器管理,以便在所有分布式节点之间实现负载均衡。

默认情况下每个区域服务器上都有一个预写日志(WAL),该区域上的所有操作都要写入这个唯一的预写日志(WAL)。而改进的多预写日志(WAL)支持更高性能的写入操作,这使得复制速度更快而同步写入的延迟更低。默认情况下,多预写日志(WAL)的这一特性提供了三个区域分组策略来分配预写日(WAL)志:每个区域的预写日志(WAL)都有一个“身份”标识,轮询调度算法保证每个区域映射的预写日志(WAL)都有其“边界”,区域中不同“命名空间”的表被映射到不同的预写日志(WAL)文件中。性能测试报告显示,预写日志(WAL)在纯SATA磁盘里运行的平均延时减少了20%;在SATA-SSD磁盘里运行的延时减少了40%。

新的RPC调度器基于CoDel算法,用于阻止可用IO无法满足过高请求频率引起的长连接队列。CoDel算法以可控的延迟来管理活动队列,它根据定义好的阈值来裁决队列中的最小延迟。一旦最小延迟超过阈值,该连接便会被丢弃以便处理其他更有利的最小延迟。

其他的改进还包括一个避免大量IO峰值的磁盘刷新吞吐量控制器。这些改进还有助于提高Apache PhoenixOpenTSDB以及其他依赖HBase引擎做数据持久化和快速查询功能的软件项目的性能。

查看英文原文:Apache HBase 1.3 Ships with Multiple Performance Improvements


感谢刘志勇对本文的审校。

给InfoQ中文站投稿或者参与内容翻译工作,请邮件至editors@cn.infoq.com。也欢迎大家通过新浪微博(@InfoQ@丁晓昀),微信(微信号:InfoQChina)关注我们。

评价本文

专业度
风格

您好,朋友!

您需要 注册一个InfoQ账号 或者 才能进行评论。在您完成注册后还需要进行一些设置。

获得来自InfoQ的更多体验。

告诉我们您的想法

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

VERY GOOD ! by 孙 奇辉

HBASE是基石

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

1 讨论

登陆InfoQ,与你最关心的话题互动。


找回密码....

Follow

关注你最喜爱的话题和作者

快速浏览网站内你所感兴趣话题的精选内容。

Like

内容自由定制

选择想要阅读的主题和喜爱的作者定制自己的新闻源。

Notifications

获取更新

设置通知机制以获取内容更新对您而言是否重要

BT