[ http://issues.apache.org/jira/browse/HADOOP-803?page=comments#action_12460087 ] Hairong Kuang commented on HADOOP-803: --------------------------------------
Currently blockMap maps a block to a TreeSet of DatanodeDescriptors. I would suggest that we use ArrayList in order to reduce the use of memory. Most of the time the set size is 3 because the default replication factor of a file is 3. So in term of speed, there is no benifit using TreeSet. However in term of memory TreeSet is way more expensive than ArrayList. An entry in TreeSet is at least 6 times as expensive as an entry in ArrayList and approximately we have 3*total#_of_blocks of such entries in FSNamesystem. > Reducing memory consumption on Namenode : Part 1 > ------------------------------------------------ > > Key: HADOOP-803 > URL: http://issues.apache.org/jira/browse/HADOOP-803 > Project: Hadoop > Issue Type: Bug > Components: dfs > Reporter: Raghu Angadi > Assigned To: Sameer Paranjpye > Attachments: block-refs-2.patch, block-refs-3.patch, > block-refs-5.patch > > > There appears to be some places in Namenode that allow reducing memory > consumption without intrusive code or feature changes. This bug is an initial > attempt making those changes. Please include your thoughts as well. > One change I am planning to make : > Currently one copy of each block exists for each of the replicas and one copy > for blockMap. I think they are all supposed to be same. -- This message is automatically generated by JIRA. - If you think it was sent incorrectly contact one of the administrators: http://issues.apache.org/jira/secure/Administrators.jspa - For more information on JIRA, see: http://www.atlassian.com/software/jira
