[ 
https://issues.apache.org/jira/browse/HDFS-7844?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14347903#comment-14347903
 ] 

Colin Patrick McCabe commented on HDFS-7844:
--------------------------------------------

{{CommonConfigurationKeys.java}}: add {{hadoop.memory.manager}} configuration 
key, which controls whether to use on-heap or off-heap (basically)

{{MemoryManager.java}}: inferface which all memory managers implement.  Factory 
methods for creating one from a Hadoop {{Configuration}}.

{{ByteArrayMemoryManager.java}}: a "safe" on-heap memory manager.  Does 
extensive verification of memory accesses to ensure that they're valid.

{{NativeMemoryManager.java}}: off-heap memory manager which delegates to 
{{Unsafe}}, which basically calls {{malloc}}.

{{ProbingHashSet.java}}: an off-heap hash table implementation.  It uses 
probing rather than separate chaining (as suggested by the name), and doubles 
in size when it becomes more than half full, to maintain O(1) access.

{{ProbingHashSet#Adaptor}}: a class which deals with storing and loading 
entries from the hash table.  In the case of the block map, this just means 
putting a single 8-byte long (the address of the off-heap BlocksInfo data) into 
the correct place in the hash table.

{{ProbingHashSet#Key}}: these are keys that can be compared and so forth.  Used 
to search for an element, and when we have an element, these are used to 
determine what it's hash code is and what else it is identical to.

There is also an iterator provided which can iterate over the whole hash 
table... very similar to HashTable#Iterator.  One twist is that it can still be 
used if the table is modified after the iterator is created.  It will return 
"reduced consistency" results in that case, but still be useful for many cases.

> Create an off-heap hash table implementation
> --------------------------------------------
>
>                 Key: HDFS-7844
>                 URL: https://issues.apache.org/jira/browse/HDFS-7844
>             Project: Hadoop HDFS
>          Issue Type: Sub-task
>    Affects Versions: HDFS-7836
>            Reporter: Colin Patrick McCabe
>            Assignee: Colin Patrick McCabe
>         Attachments: HDFS-7844-scl.001.patch
>
>
> Create an off-heap hash table implementation.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to