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

Nathan Roberts commented on MAPREDUCE-6678:
-------------------------------------------

bq. I recognize that it's difficult to produce a unit test for the patch. Would 
it be possible for you to post a very brief justification of that?
The approach I took was to test it manually because it's invasive to determine 
whether or not the OS is actually doing the readahead from java. Rather than 
create a fragile test, I opted to use strace to verify the fadvise(WILL_NEED) 
occurs when the configured readahead size is >0, and does not occur when 0; 
regardless of whether mapreduce.shuffle.manage.os.cache is enabled.


> Allow ShuffleHandler readahead without drop-behind
> --------------------------------------------------
>
>                 Key: MAPREDUCE-6678
>                 URL: https://issues.apache.org/jira/browse/MAPREDUCE-6678
>             Project: Hadoop Map/Reduce
>          Issue Type: Improvement
>          Components: nodemanager
>    Affects Versions: 3.0.0, 2.7.2
>            Reporter: Nathan Roberts
>            Assignee: Nathan Roberts
>         Attachments: YARN-4964.001.patch
>
>
> Currently mapreduce.shuffle.manage.os.cache enables/disables both readahead 
> (POSIX_FADV_WILLNEED) and drop-behind (POSIX_FADV_DONTNEED) logic within the 
> ShuffleHandler.
> It would be beneficial if these were separately configurable. 
> - Running without readahead can lead to significant seek storms caused by 
> large numbers of sendfiles() competing with one another.
> - However, running with drop-behind can also lead to seek storms because 
> there are cases where the server can successfully write the shuffle bytes to 
> the network, BUT the client doesn't want the bytes right now (MergeManager 
> wants to WAIT is an example) so it ignores them and asks for them again a bit 
> later. This causes repeated reads of the same data from disk.
> I'll attach a simple patch that enables/disables readahead based on 
> mapreduce.shuffle.readahead.bytes==0, leaving 
> mapreduce.shuffle.manage.os.cache controlling only the drop-behind.



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

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to