hadoop-mapreduce-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Gopal V (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (MAPREDUCE-4755) Rewrite MapOutputBuffer to use direct buffers & allow parallel sort+collect
Date Sat, 27 Oct 2012 08:49:11 GMT

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

Gopal V commented on MAPREDUCE-4755:
------------------------------------

TeraSort benchmarks for 10M entries showed improvement from 70s to 53s in wall-clock time
(user cpu time is higher than wall-clock because of the asynchronous sort FutureTask)

running "terasort /tmp/data/ file:///tmp/t.$RANDOM/"

{code}
	Map-Reduce Framework
		Map input records=10000000
		Map output records=10000000
		GC time elapsed (ms)=81
		Total committed heap usage (bytes)=4242079744
real	0m53.355s
user	0m56.392s
sys	0m6.548s
{code}

{code}
	Map-Reduce Framework
		Map input records=10000000
		Map output records=10000000
		GC time elapsed (ms)=374
		Total committed heap usage (bytes)=4878761984
real	1m10.191s
user	1m8.908s
sys	0m8.609s
{code}

And the results from both runs are identical byte-for-byte

{code}
$ md5sum t.19982/part-r-00000 t.13037/part-r-00000 
d3368a9e0897ea8efcd2a290d8e27906  t.19982/part-r-00000
d3368a9e0897ea8efcd2a290d8e27906  t.13037/part-r-00000
{code}

The combiner remains to be tested and the counters+progress indicators need to be fixed.
                
> Rewrite MapOutputBuffer to use direct buffers & allow parallel sort+collect
> ---------------------------------------------------------------------------
>
>                 Key: MAPREDUCE-4755
>                 URL: https://issues.apache.org/jira/browse/MAPREDUCE-4755
>             Project: Hadoop Map/Reduce
>          Issue Type: Improvement
>    Affects Versions: 3.0.0
>         Environment: Ubuntu 12.10 x86_64 (Bulldozer 8-core)
>            Reporter: Gopal V
>            Assignee: Gopal V
>              Labels: optimization, sort
>         Attachments: 0001-first-cut-of-MMapOutputBuffer.patch
>
>
> The MapOutputBuffer has been written with a very severe constraint on the amount of memory
it can consume. This results in code that has to page-in & page-out (i.e spill) data as
it passes through the map buffers.
> With the advent of the java.nio package, there is a fast and portable MMap alternative
to handling your own buffers. This exists outside the GC space of Java and yet provides decently
fast memory access to all the data.
> The suggestion is that using mmap() direct buffers can be faster when a spill is involved
and simpler than the current spill logic, when given enough address space & uses the buffer
caches to deliver best effort I/O.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Mime
View raw message