More CPU efficient data structure for under-replicated/over-replicated/invalidate blocks ----------------------------------------------------------------------------------------
Key: HDFS-2476 URL: https://issues.apache.org/jira/browse/HDFS-2476 Project: Hadoop HDFS Issue Type: Sub-task Components: name-node Reporter: Tomasz Nykiel Assignee: Tomasz Nykiel This patch introduces two hash data structures for storing under-replicated, over-replicated and invalidated blocks. 1. LightWeightHashSet 2. LightWeightLinkedSet Currently in all these cases we are using java.util.TreeSet which adds unnecessary overhead. The main bottlenecks addressed by this patch are: -cluster instability times, when these queues (especially under-replicated) tend to grow quite drastically, -initial cluster startup, when the queues are initialized, after leaving safemode, -block reports, -explicit acks for block addition and deletion 1. The introduced structures are CPU-optimized. 2. They shrink and expand according to current capacity. 3. Add/contains/delete ops are performed in O(1) time (unlike current log n for TreeSet). 4. The sets are equipped with fast access methods for polling a number of elements (get+remove), which are used for handling the queues. -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa For more information on JIRA, see: http://www.atlassian.com/software/jira