The motivation is the data block index is too large to hold into memory. In our cases, each region server hold almost 6G block index in the memory. So we propose to build a tree structure data block index and only hold the root level in the memory. All the intermediate level will be cached in an LRU cache. In the leaf level, we will write the block index inline inside of the data section. In this way, there is no need to hold all the block index in the memory.