(Apologies if it is delivered twice.)

YARN Devs,

We propose to merge YARN-1051 development branch into trunk.

Key Idea:
This work adds support for Reservations to YARN RM. The key idea is to allow 
users to request dedicated access to resources (a reservation), ahead of time.
For example I can ask for "10 containers for 1 hour sometime between 4pm and 
9pm today".  The RM keeps track of the accepted reservation by means of
a Plan (think it as an agenda on how the  cluster resources will be used), and 
performs admission control to guarantee that if a reservation is accepted enough
resources are set aside to satisfy it.  We enforce the reservation promises by 
dynamically creating/resizing/removing queues at the right time. This allows us
to leverage the existing schedulers for the actual container assignment and 
tracking. The key benefit is to expose to the scheduler flexibility of 
allocation, while
guaranteeing users predictable resource allocation.

Status

*         The work has been "broken down" into 14 subtasks (+3 patches already 
committed to trunk for move/kill of apps). All the issues have been resolved.

*         Jenkins +1 the patch (with the exception of one test failure which we 
did not introduce, which is tracked here: 
https://issues.apache.org/jira/browse/MAPREDUCE-6094)

*         Simple integration with MapReduce: 
https://issues.apache.org/jira/browse/MAPREDUCE-6103

*         The broken-down patches have been reviewed and +1ed by Vinod Kumar 
Vavilapali, Jian He, Wangda Tan, Karthik Kambatla, and Chris Douglas. Thanks to 
all of you for the thorough reviews!

*         The current version has been rather thoroughly tested by running it 
on our 250 machines research cluster for months (first prototype was 
operational about a year ago) by:

o   Running hundreds of thousands of job generate by a modified version of 
gridmix that exercise the reservations mechanism side-by-side normal queues.

o   To support our integration with the resource estimation framework 
Perforator (http://research.microsoft.com/pubs/178971/perforator.pdf). Kaushik 
and Dharmesh have been pounding the reservation system for their research for 
3-4 months now, and helped us spot few bugs and iron them out.

o   Code has been inspected/extended by 4-5 other researchers which are 
exploring integration with other systems and extensions of our algorithms for 
"reservation placement".

*         We have few ideas for follow-up extensions/improvements are tracked 
by the umbrella JIRA https://issues.apache.org/jira/browse/YARN-2572

Documents and Deliverables

*         This work was accepted for publication to SoCC 2014 (pre-camera ready 
version of the paper here):   
https://issues.apache.org/jira/secure/attachment/12671498/socc14-paper15.pdf

*         Shorter design doc: 
https://issues.apache.org/jira/secure/attachment/12628330/YARN-1051-design.pdf

*         Overall patch: 
https://issues.apache.org/jira/secure/attachment/12671361/YARN-1051.1.patch

*         Per Karthik request we are preparing a small how-to document and 
example code/configuration tracked by 
https://issues.apache.org/jira/browse/YARN-2609


Credits
Myself and Subru did lots of the coding (hence the flow of patches from us), 
but this is a group effort that could have not been possible without the ideas 
and hard work of many other
folks in our research group (Microsoft-CISL). Major kudos to:  Chris Douglas, 
Sriram Rao, Raghu Ramakrishnan, and our intern Djellel Difallah. Also big 
thanks to the many folks in community  (Arun, Vinod, Alejandro, Bikas, Karthik, 
Sandy, Hitesh, Jakob, Mohammad, Mayank, Jason, Bobby, and many more) that 
helped us shape our ideas and code with very insightful feedback and comments.

We expect the vote to run for the usual 7 days and will expire at 12pm PDT on 
Oct 3. Please feel free to reach out to us if you have any questions/doubts.

Cheers,
Carlo & Subru

Reply via email to