`
flyingdutchman
  • 浏览: 352955 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

《Hbase权威指南》深入学习hbase架构(1):LSM-Tree

阅读更多
    hbase内部是使用Log-Structured Merge-Tree说索引的,即LSM-tree,当然是为hbase做过优化的。
    LSM-tree是一个优秀的算法,思想来源于日志文件系统,本身是为提高B-树在更新插入数据时的性能而提出来的,主要优点就是通过将很多小文件的存取转换为连续的大批量传输,使得对于文件系统的大多数存取都是顺序性的,从而提高磁盘带宽利用率;故障恢复速度快。它对数据写入主要分以下三个阶段:
    1、数据的写入是以log追加的方式进行按顺序被保存到logfile文件,具有索引;
    2、一旦数据被保存到了logfile文件,会被立即保存到一块儿叫的内存缓冲区的memsotre——缓存的数据也是就说排序的,memsotre中保存最近更新的数据以响应客户端的快速查询;
    3、当内存中的memsotre大到一个阀值的时候,缓存数据会被以key -> record对的形式刷新到磁盘,生成一个新的存储文件持久化数据。
    这个新生成的存储文件和B-数很像,但是是为顺序磁盘查询优化过的,特别是为single-page数据页和multi-block数据块做了优化,以方便范围查找。由于memstore中的数据每刷新一次生成一个store文件,store文件会随着时间的推移越来越多,系统对这些文件采用一种叫rolliong merge即滚动合并的模式,由后台线程将这些文件合并成一个大的store文件——文件中的数据总是按key排序存储的,这样只需经过很少的磁盘查找就可以查到结果。
    在查找数据时,首先会在memstore中的数据中查找,如果查找到则直接返回结构,否则接下来回查找保存在磁盘上的store文件中的数据,返回将结果返回——查的到或查不到。
    删除是一个特殊的更新操作,执行一个delete操作时,这个要删除的数据会被标记为delete marker被保存起来;当查询时会过滤掉标记为“删除”的key的数据。只有在后台线程异步的重写的数据页数据时,标记为“删除”的数据才会被删除。
    下图为LSM-Tree内部多数据页合并过程:
   

                               内部多数据页合并图
  • 大小: 46.1 KB
分享到:
评论

相关推荐

    hbase-prefix-tree-1.1.3-API文档-中文版.zip

    赠送jar包:hbase-prefix-tree-1.1.3.jar; 赠送原API文档:hbase-prefix-tree-1.1.3-javadoc.jar; 赠送源代码:hbase-prefix-tree-1.1.3-sources.jar; 赠送Maven依赖信息文件:hbase-prefix-tree-1.1.3.pom; ...

    hbase-prefix-tree-1.4.3-API文档-中文版.zip

    赠送jar包:hbase-prefix-tree-1.4.3.jar; 赠送原API文档:hbase-prefix-tree-1.4.3-javadoc.jar; 赠送源代码:hbase-prefix-tree-1.4.3-sources.jar; 赠送Maven依赖信息文件:hbase-prefix-tree-1.4.3.pom; ...

    hbase-prefix-tree-1.2.12-API文档-中文版.zip

    赠送jar包:hbase-prefix-tree-1.2.12.jar; 赠送原API文档:hbase-prefix-tree-1.2.12-javadoc.jar; 赠送源代码:hbase-prefix-tree-1.2.12-sources.jar; 赠送Maven依赖信息文件:hbase-prefix-tree-1.2.12.pom;...

    hbase-prefix-tree-1.2.12-API文档-中英对照版.zip

    赠送jar包:hbase-prefix-tree-1.2.12.jar; 赠送原API文档:hbase-prefix-tree-1.2.12-javadoc.jar; 赠送源代码:hbase-prefix-tree-1.2.12-sources.jar; 赠送Maven依赖信息文件:hbase-prefix-tree-1.2.12.pom;...

    hbase-prefix-tree-1.1.3-API文档-中英对照版.zip

    赠送jar包:hbase-prefix-tree-1.1.3.jar; 赠送原API文档:hbase-prefix-tree-1.1.3-javadoc.jar; 赠送源代码:hbase-prefix-tree-1.1.3-sources.jar; 赠送Maven依赖信息文件:hbase-prefix-tree-1.1.3.pom; ...

    hbase-common-1.4.3-API文档-中文版.zip

    赠送jar包:hbase-common-1.4.3.jar; 赠送原API文档:hbase-common-1.4.3-javadoc.jar; 赠送源代码:hbase-common-1.4.3-sources.jar; 赠送Maven依赖信息文件:hbase-common-1.4.3.pom; 包含翻译后的API文档:...

    hbase权威指南中文完整版pdf

    hbase权威指南中文完整版pdf 12章+6附录

    Hbase权威指南-完整高清版

    hbase权威指南,hadoop,spark,hbase设计,hbase权威指南-完整版

    hbase-hadoop-compat-1.1.3-API文档-中文版.zip

    赠送jar包:hbase-hadoop-compat-1.1.3.jar; 赠送原API文档:hbase-hadoop-compat-1.1.3-javadoc.jar; 赠送源代码:hbase-hadoop-compat-1.1.3-sources.jar; 赠送Maven依赖信息文件:hbase-hadoop-compat-1.1.3....

    hbase-metrics-api-1.4.3-API文档-中文版.zip

    赠送jar包:hbase-metrics-api-1.4.3.jar; 赠送原API文档:hbase-metrics-api-1.4.3-javadoc.jar; 赠送源代码:hbase-metrics-api-1.4.3-sources.jar; 赠送Maven依赖信息文件:hbase-metrics-api-1.4.3.pom; ...

    hbase-annotations-1.1.2-API文档-中文版.zip

    赠送jar包:hbase-annotations-1.1.2.jar; 赠送原API文档:hbase-annotations-1.1.2-javadoc.jar; 赠送源代码:hbase-annotations-1.1.2-sources.jar; 赠送Maven依赖信息文件:hbase-annotations-1.1.2.pom; ...

    hbase权威指南源码

    hbase权威指南源码

    hbase-client-1.4.3-API文档-中文版.zip

    赠送jar包:hbase-client-1.4.3.jar; 赠送原API文档:hbase-client-1.4.3-javadoc.jar; 赠送源代码:hbase-client-1.4.3-sources.jar; 赠送Maven依赖信息文件:hbase-client-1.4.3.pom; 包含翻译后的API文档:...

    hbase-hadoop-compat-1.1.3-API文档-中英对照版.zip

    赠送jar包:hbase-hadoop-compat-1.1.3.jar; 赠送原API文档:hbase-hadoop-compat-1.1.3-javadoc.jar; 赠送源代码:hbase-hadoop-compat-1.1.3-sources.jar; 赠送Maven依赖信息文件:hbase-hadoop-compat-1.1.3....

    hbase-server-1.4.3-API文档-中文版.zip

    赠送jar包:hbase-server-1.4.3.jar; 赠送原API文档:hbase-server-1.4.3-javadoc.jar; 赠送源代码:hbase-server-1.4.3-sources.jar; 赠送Maven依赖信息文件:hbase-server-1.4.3.pom; 包含翻译后的API文档:...

    大数据安全-kerberos技术-hbase安装包,hbase版本:hbase-2.2.6-bin.tar.gz

    大数据安全-kerberos技术-hbase安装包,hbase版本:hbase-2.2.6-bin.tar.gz

    hbase-server-1.1.3-API文档-中文版.zip

    赠送jar包:hbase-server-1.1.3.jar; 赠送原API文档:hbase-server-1.1.3-javadoc.jar; 赠送源代码:hbase-server-1.1.3-sources.jar; 赠送Maven依赖信息文件:hbase-server-1.1.3.pom; 包含翻译后的API文档:...

    hbase-procedure-1.4.3-API文档-中文版.zip

    赠送jar包:hbase-procedure-1.4.3.jar; 赠送原API文档:hbase-procedure-1.4.3-javadoc.jar; 赠送源代码:hbase-procedure-1.4.3-sources.jar; 赠送Maven依赖信息文件:hbase-procedure-1.4.3.pom; 包含翻译后...

    hbase-metrics-1.4.3-API文档-中文版.zip

    赠送jar包:hbase-metrics-1.4.3.jar; 赠送原API文档:hbase-metrics-1.4.3-javadoc.jar; 赠送源代码:hbase-metrics-1.4.3-sources.jar; 赠送Maven依赖信息文件:hbase-metrics-1.4.3.pom; 包含翻译后的API文档...

    phoenix-core-4.7.0-HBase-1.1-API文档-中文版.zip

    赠送jar包:phoenix-core-4.7.0-HBase-1.1.jar; 赠送原API文档:phoenix-core-4.7.0-HBase-1.1-javadoc.jar; 赠送源代码:phoenix-core-4.7.0-HBase-1.1-sources.jar; 赠送Maven依赖信息文件:phoenix-core-4.7.0...

Global site tag (gtag.js) - Google Analytics