[
https://issues.apache.org/jira/browse/HADOOP-951?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12468776
]
Tom White commented on HADOOP-951:
----------------------------------
One of the differences in using ConcurrentHashMap is that it offers slightly
weaker semantics for some Map operations. For example, iterators are "weakly
consistent" - that is, they don't freeze the collection while it is being
iterated over. Often this doesn't matter - indeed it's one of the trade offs
that we might be looking for - but it is worth bearing in mind.
Brian Goetz has written extensively about the concurrency collections. These
are worth a read (despite being a few years old):
http://www-128.ibm.com/developerworks/java/library/j-jtp07233.html and
http://www-128.ibm.com/developerworks/java/library/j-jtp08223/
His book, Java Concurrency in Practice (http://jcip.net/) is good and very
detailed.
I guess we can find out memory usage by running some benchmarks. I haven't seen
anything on the web comparing ConcurrentHashMap to HashMap in terms of memory
usage.
> java.util.ConcurrentModificationException in FSNamesystem.chooseTargets
> -------------------------------------------------------------------------
>
> Key: HADOOP-951
> URL: https://issues.apache.org/jira/browse/HADOOP-951
> Project: Hadoop
> Issue Type: Bug
> Components: dfs
> Affects Versions: 0.10.1
> Reporter: Koji Noguchi
>
> 2007-01-26 01:14:37,509 INFO org.apache.hadoop.ipc.Server: IPC Server handler
> 7 on 8020 call error: java.io.IOException:
> java.util.ConcurrentModificationException
> java.io.IOException: java.util.ConcurrentModificationException
> at java.util.AbstractList$Itr.checkForComodification(AbstractList.java:449)
> at java.util.AbstractList$Itr.next(AbstractList.java:420)
> at org.apache.hadoop.dfs.FSNamesystem.chooseTargets(FSNamesystem.java:2282)
> at org.apache.hadoop.dfs.FSNamesystem.startFile(FSNamesystem.java:484)
> at org.apache.hadoop.dfs.NameNode.create(NameNode.java:238)
> at sun.reflect.GeneratedMethodAccessor60.invoke(Unknown Source)
> at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> at java.lang.reflect.Method.invoke(Method.java:585)
> at org.apache.hadoop.ipc.RPC$Server.call(RPC.java:337)
> at org.apache.hadoop.ipc.Server$Handler.run(Server.java:538)
> Not sure if it's related, but this exception happend when namenode was
> replicating many blocks.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.