Details
-
Sub-task
-
Status: Open
-
Major
-
Resolution: Unresolved
-
None
-
None
-
None
Description
INodeMap and BlocksMap are currently represented by a hash table implemented as LightWeightGSet. For fine-grained locking it should be replaced by PartitionedGSet - a new implementation of GSet interface, which partitions INodes into ranges based on a key.
We should target static partitioning into a configurable number of ranges. This should allow avoiding the high level lock for RangeMap. It should not be a compromise on efficiency, because parallelism on a single node is bounded by the number of CPU cores.