你好,游客 登录
背景:
阅读新闻

HBase 1.3 发布,性能大幅提升

[日期:2017-02-10] 来源:InfoQ   作者:Alexandre Rodrigues 魏星翻译 [字体: ]

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

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

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 Phoenix 、 OpenTSDB 以及其他依赖HBase引擎做数据持久化和快速查询功能的软件项目的性能。





收藏 推荐 打印 | 录入: | 阅读: