Home | About | Sematext search-lucene.com search-hadoop.com
 Search Hadoop and all its subprojects:

Switch to Plain View
MapReduce >> mail # dev >> Redundant synchronization in ReduceTask.java

Copy link to this message
Redundant synchronization in ReduceTask.java

I have recently been reading Hadoop 1.1.0 source code to better
understand the internals and learned a lot from it, so far. When I was
looking at ReduceTask.java, I saw some synchronization attempts, some
of which seem redundant to me. To be more specific, in
MapOutputCopier's copyOutput method, before calling
addToMapOutputFilesOnDisk, we synchronize on mapOutputFilesOnDisk but
the actual addToMapOutputFilesOnDisk also synchronizes on it again.
And this entire block in copyOutput is already synchronized on
ReduceTask.this which seems a bit confusing to me. I'm not sure if
this is the right place to ask this question, but I'd appreciate if
someone points out why we need this sort of triple locking here.