[
https://issues.apache.org/jira/browse/HDFS-6658?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Daryn Sharp updated HDFS-6658:
------------------------------
Attachment: HDFS-6658.patch
There's likely to be some todo debris, maybe snippets of other work, and some
tests might fail, but this is the fruit of a multi-month effort. I was able to
bench an earlier prototype to have comparable block report processing times
+/-5%. Since then, I've lost sleep ensuring there are adequate precondition
and co-modification checks to prevent the data structures from going off the
rails and scribbling itself to death.
I need to re-benchmark on a large perf cluster to make sure I didn't regress on
performance.
The change looks big, but it's actually a lot of tests, and I feel I need even
more. The pre-existing logic has generally just moved. There's no fundamental
changes.
The main change required to make this primitive array approach work is
requiring the block manager to manage all block related data structures. The
DNDs and DNSIs become "dumb" model objects controlled by the BM.
> Namenode memory optimization - Block replicas list
> ---------------------------------------------------
>
> Key: HDFS-6658
> URL: https://issues.apache.org/jira/browse/HDFS-6658
> Project: Hadoop HDFS
> Issue Type: Improvement
> Components: namenode
> Affects Versions: 2.4.1
> Reporter: Amir Langer
> Assignee: Daryn Sharp
> Attachments: BlockListOptimizationComparison.xlsx, BlocksMap
> redesign.pdf, HDFS-6658.patch, HDFS-6658.patch, Namenode Memory Optimizations
> - Block replicas list.docx
>
>
> Part of the memory consumed by every BlockInfo object in the Namenode is a
> linked list of block references for every DatanodeStorageInfo (called
> "triplets").
> We propose to change the way we store the list in memory.
> Using primitive integer indexes instead of object references will reduce the
> memory needed for every block replica (when compressed oops is disabled) and
> in our new design the list overhead will be per DatanodeStorageInfo and not
> per block replica.
> see attached design doc. for details and evaluation results.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)