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架构简介 HBase是一种分布式的、面向列的开源数据库,是Apache顶级项目之一。它基于Google的Bigtable论文设计,旨在为海量数据提供实时读写访问能力。HBase利用Hadoop HDFS作为底层数据存储,并依赖于...
最后,文档中提到了一些技术术语和组件,例如HDFS、LSM-Tree、Phoenix、Kylin等,这些是HBase生态系统中重要的组件和概念,它们与HBase紧密配合,扩展了HBase的功能和应用范围。例如,HDFS作为Hadoop的分布式文件...
- LSM是Log-Structured Merge Tree的缩写,是一种用于存储和检索大量数据的数据结构。 20. **LSM描述**: - LSM结构通过顺序存储优化写操作,数据先写入内存,然后定期Flush到磁盘。 21. **LSM操作性能**: - ...
3. **LSM-Tree**:采用Log-Structured Merge Tree (LSM-Tree)模型来优化写操作性能,适合于写密集型应用。 4. **基于K-V的行组织**:数据按照键值对的方式存储,支持高并发读写。 5. **存储计算分离**:HBase基于...
- **高性能读写**:利用LSM-Tree设计确保即使在数据量巨大的情况下也能保持较快的写入速度; - **灵活的数据模型**:支持灵活的列族和列定义,允许动态增加列; - **强一致性**:保证数据的一致性,满足业务系统对...
- **LSM-Tree**: 使用LSM-Tree(Log-Structured Merge Tree)数据结构,优化写入性能并降低磁盘IO。 - **自动分区**: 自动分区策略允许数据根据键值自动分布,实现数据的均衡分布。 - **多版本**: 支持多版本特性,...
《12 LSM 树在 Apache HBase 等存储系统中的应用1》 Apache HBase 是一个基于 Google 的 Bigtable 模型构建的分布式、面向列的非关系型数据库(NoSQL),它广泛应用于大数据存储场景。LSM 树(Log-Structured Merge...
12. **LSM(Log-Structured Merge Tree)**: - LSM是一种数据结构,广泛应用于NoSQL数据库中,如HBase。其特点是在内存中维护数据结构,并定期将数据合并到磁盘上。 13. **HFile数据格式中的Data字段作用**: - ...
#### LSM-Tree(Log Structured Merge Tree) - **数据写入机制**:所有写操作首先记录在一个内存中的日志结构中,随后周期性地刷新到磁盘上。 - **随机写变顺序写**:这种方式避免了传统B+树在随机写入时遇到的...
1. **LSM树(Log-Structured Merge Tree)** - **定义**:LSM树是一种特殊的树形数据结构,被设计用于提高磁盘数据写入效率。它的设计理念是在内存中维护最新的数据变更,然后批量地将这些变更写入磁盘,以此减少随机...
LSM Tree,全称为Log-Structured Merge Tree,是一种优化过的数据结构,主要应用于高性能的数据库系统,例如Google的levelDB、Facebook的RocksDB以及Apache的HBase等。相较于传统的B+树,LSM Tree的设计目标是提高...
LSM Tree(Log-Structured Merge Tree)是HBase为解决B+Tree写入慢的问题而采用的一种数据结构。在LSM Tree中,写入首先被记录在WAL(Write-Ahead Log)中,保证数据安全,同时数据被存入内存中的数据结构(如跳表)...
HBase的特性与生态:自动分区、LSM Tree、存储计算分离、HBase生态;全新的HBase2.0版本新功能:小对象存储MOB、读写链路Off-heap 、Region Replica 、In Memory Compaction 、Assignment MangerV2 、其他;HBase未来...
HBase的LSMTree(Log-Structured Merge-Tree)是一种存储结构,它把数据的插入操作转化为追加写操作,这种方式可以提高写入速度,并且保证写入的稳定性。与传统数据库的B+树相比,LSM-Tree在处理追加写、合并读操作...
它采用Log-Structured Merge Tree(LSM树)作为索引结构,允许快速的插入和删除操作,并且数据以列族的形式存储,提高了数据检索效率。 3. **内存优化**: HBase将热点数据缓存在内存中,提高读取速度。当内存不...
文章标题《基于日志结构合并树的轻量级分布式索引实现方法》中指出了一种在分布式数据库中实现高效查询的技术方案,其核心在于日志结构合并树(Log Structured Merge-Tree,简称LSM-Tree)的应用。LSM-Tree是一种...
21. LSM含义:LSM(Log-Structured Merge Tree)是一种日志结构合并树,常用于键值存储系统,如HBase,优化写入性能。 22. LSM描述:LSM树通过顺序写入磁盘,然后定期合并数据来优化写入性能,读取操作可能需要合并...
《HBase概述——HBase的存储模型》这篇文章深入解析了HBase的核心存储机制,即LSM树(Log-Structured Merge Tree)。LSM树是一种优化的存储结构,它旨在解决大数据场景下的高性能写入和读取需求。在HBase中,LSM树的...
首先,HBase 的自动分区和LSM_Tree 存储计算分离特点使得它能够高效地存储和处理大数据。其次,HBase 的存储计算分离设计使得它能够更好地扩展和优化存储资源。最后,HBase 的高可靠性和高可用性使得它能够满足...