主:14617
-
加载fsimage是单线程的过程
-
分区中创建子分区,每个子分区一个线程
-
测试:316M inodes 35G磁盘数据
Threads 1 2 3 4
--------------------------------
inodes 448 290 226 189
inode_dir 326 211 170 161
Total 927 651 535 488 (MD5 calculation about 100 seconds)
- 花费最大的时间是read和parseprotobuf 信息
- 2.7.1版本中,165M inodes, 23GB磁盘数据,默认4线程,之前701s(md5 82s),之后409s(md5 82s)
- 当压缩开启的时候,禁用多线程,因为(1)场景少;(2)待细看
- 15830将这个做成可配置的,不用重启NN让配置项生效
- 13694将md5校验和fsImage加载做成并行的
- 15493将block map和name cache的更新做成和fsImage加载并行
- 14821将这个配置项改为默认false,因为降级的时候会出现问题
- 14771是对2.X版本的兼容 因此这个特性在2.10.0版本已经支持。14821的已经合入。还需要考虑13694和15493和15830
有这个特性的分支支持旧版fsImage和新版fsImage
没这个特性的分支支持旧版fsImage,不支持新版fsImage
https://tech.meituan.com/2016/08/26/namenode.html
https://tech.meituan.com/2017/03/17/namenode-restart-optimization.html