Details
-
Improvement
-
Status: Closed
-
Major
-
Resolution: Fixed
-
0.18.0
-
None
-
None
-
Reviewed
Description
Merger.Segment has only the next() method defined which internally calls next(key,value) on the underlying IFile stream. This would read both the key and the value bytes. It would be good to have Merger.Segment.nextRawKey(), that would read only the key and delay reading the value until needed (in Merger.MergeQueue.next()) via a new method Merger.Segment.nextRawValue().
This would mean that we load only one value bytes at a time, and hence would incur potentially much less (depending on how big the values are) on the memory footprint.
Attachments
Attachments
Issue Links
- is related to
-
MAPREDUCE-5821 IFile merge allocates new byte array for every value
- Closed