Hash structure & block cache optimization
- Hash can use rb-tree as its bucket. Retrieval inside each bucket can be faster than linked list.
- In block cache, each file structure has own rb-tree which indexes dirty blocks belong to the file. We do not need to scan dirty-block-list when flushing the cache. Furthermore, flushing dirty blocks is done in sorted order or BID by traversing rb-tree, thus IO bandwidth can be improved by sequential writes.