Region服务器的工作原理?
Region服务器是有HBase中核心的模块,Region服务器内部管理了一系列Region对象和一个HLog文件。其中,HLog是磁盘上面的记录文件,它记录着所有的更新操作。
每个Region对象又是由多个store组成的,每个store对应了一个列族的存储。
1. 用户读写数据的过程
当用户写入数据时,会被分配到相应的Region服务器去执行操作。用户数据首先被写入到memstore和hlog中。当操作写入hlog之后,commit()调用才会将其返回给客户端。
2. 缓存的刷新
Memstore缓存的容量有限,系统会周期性地调用Region.flushcache()把Memstore缓存里面的内容写到磁盘的storefile文件中,清空缓存,并在hlog文件中写入一个标记,用来表示缓存中的内容已经被写入storefile文件中。
3、storefile的合并
每次Memstore缓存的刷新操作,都会在磁盘上生成一个新的storefile文件,这样,系统中的每个store就会存在多个storefile文件。当需要访问某个store中的某个值时,就必须查找所有这些storefile,是很费时间的,因此,为了减少查找时间,系统一般会调用store.compact()把多个storefile合并成一个大文件。
Copyright © 广州京杭网络科技有限公司 2005-2024 版权所有 粤ICP备16019765号
广州京杭网络科技有限公司 版权所有