okumin created TEZ-4246:
---------------------------

             Summary: Avoid uneven local disk usage for spills
                 Key: TEZ-4246
                 URL: https://issues.apache.org/jira/browse/TEZ-4246
             Project: Apache Tez
          Issue Type: Improvement
    Affects Versions: 0.9.2, 0.10.0
            Reporter: okumin


This ticket would help a task attempt avoid overusing a specific disk.

 

I have observed PipelinedSorter repeat spilling a large amount of data to one 
of two disks.

In case that NodeManager has just two disks, they are basically selected in a 
round-robin fashion completely.

[https://github.com/apache/hadoop/blob/rel/release-3.1.3/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/fs/LocalDirAllocator.java#L422-L439]

Each iteration of a spill tries to create its data file and the index file, 
meaning that Tez is likely to put all data files on the same disk in such cases.

 

This unfair usage is inconvenient especially when we use features with a soft 
limit like this.
 * https://issues.apache.org/jira/browse/TEZ-4112

 

Index files are relatively small, and I'd say we can put a data file and its 
index file in the same directory so that the round-robin doesn't skip any disks 
for such small usage.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to