COMPACT分析
来源:互联网 发布:opencv sobel算法实现 编辑:程序博客网 时间:2024/05/16 19:15
相关文章链接:
http://blog.csdn.net/hljlzc2007/article/details/10980949
http://www.th7.cn/db/nosql/201612/217383.shtml
源文档 <http://cache.baiducontent.com/c?m=9d78d513d98316f005a9c3690c66903a4503d7356b81c7140f80c816c4254f060738ece161645213d2b6617a44ea0c4bea877028321420c0ca94951c8da6ce756ecb7929701e854511d304afc84324cb21875a9eee43a1e5ae&p=97769a4786cc42ac5ebbd32156428c&newp=8b2a97068c8b11a05bee9225515686231615d70e3cd4d3166b82c825d7331b001c3bbfb423231b06d2c67d6405aa4c58eefb3075320821a3dda5c91d9fb4c57479cb7d7c&user=baidu&fm=sc&query=removeUnneededFiles&qid=ba60d72c0046b0c0&p1=3>
http://blog.csdn.net/lipeng_bigdata/article/details/50807990
http://blog.csdn.net/lipeng_bigdata/article/details/50782466
http://blog.csdn.net/lipeng_bigdata/article/details/50791205
http://blog.csdn.net/lipeng_bigdata/article/details/50803085
调用点:CompactSplitThread中的run函数,run函数中主函数是doCompaction
具体实现如下:
首先构造compaction请求:
1、removeUnneededFiles
1.1、获取Store级别的读锁
1.2、逐个遍历Store中的StoreFiles,找出超出时间范围的StoreFiles,这些StoreFiles不做compaction
1.3、先将这些不需要compaction的文件加入到filesCompacting列表中
1.4、释放Store级别的读锁
1.5、将这些不需要compaction的文件写入WAL,标记为已经compaction完成的文件
2、构造compaction请求
3、获取Store级别的读锁
4、判断是否是major compaction,如果不是,则将队列中大于MAX_COMPACTION_SIZE的文件移除,如果是user触发的,一定是major;如果是系统触发的,需要进行判断是否是AllFiles,如果是则major,不是则minor
5、将所有要做compaction的文件加入到filesCompacting队列中
5.1、将所有的需要合并的storeFiles加入filesCompacting
6、释放Store级别的读锁
构造完成Compaction请求后,接下来就是真正执行Compaction操作了,具体实现如下:
1、获取Region级别的读锁
2、在HStore中执行合并操作
2.1、执行compaction操作,并返回合并后的newFiles
2.1.1、为每个选取的store创建一个scanner
2.1.2、将所有storeFile的scannsers封装成一个StoreScanner
2.1.3、根据先后顺序,将每个多个scanner合并成有序的数据,放入writer中
2.1.4、将writer落地到磁盘
2.2、为新的newFiles生成对应的StoreFiles,并创建Reader,并加入onlineStorefiles队列中
3、释放Region级别的读锁
- COMPACT分析
- compact处理流程分析
- HBase的compact分析
- hbase源码分析-compact
- HBase的compact分析
- HBase的compact流程分析
- Hbase的Region Compact算法实现分析
- hbase 源代码分析 (15)compact 过程
- HBase之Region Compact流程分析
- lodash源码分析之compact中的遍历
- HBase源码分析之HRegionServer上compact流程分析
- .NET Compact Framework下的GPS NMEA data数据分析
- hbase中compact、split相应配置参数分析
- HBase源码分析之HRegion上compact流程分析(一)
- HBase源码分析之HRegion上compact流程分析(二)
- HBase源码分析之HRegion上compact流程分析(三)
- compact.c
- compact.cpp
- hdu 2007
- 狼人杀,不止是杀人
- textArea标签没有value属性,,,以及jquery如何获取textarea文本域的值
- 科学计算的简单处理流程
- iOS 10中info.plist 文件 Privacy
- COMPACT分析
- web拦截器中读取request中流导致跳转controller失败问题解决方案
- Centos6.5(64位mini版)安装Python2.7.11
- 自学unity3d的日记
- 面向服务的体系架构(SOA)—架构篇
- Nmap参考指南(Man Page)
- java中ReentrantLock部分方法解释
- (python)GUI简单的tkinter小应用
- 说说理学学科的理解