Return-Path: Delivered-To: apmail-hadoop-core-dev-archive@www.apache.org Received: (qmail 73727 invoked from network); 9 Feb 2009 00:03:39 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.2) by minotaur.apache.org with SMTP; 9 Feb 2009 00:03:39 -0000 Received: (qmail 84695 invoked by uid 500); 9 Feb 2009 00:03:28 -0000 Delivered-To: apmail-hadoop-core-dev-archive@hadoop.apache.org Received: (qmail 84621 invoked by uid 500); 9 Feb 2009 00:03:27 -0000 Mailing-List: contact core-dev-help@hadoop.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: core-dev@hadoop.apache.org Delivered-To: mailing list core-dev@hadoop.apache.org Received: (qmail 84391 invoked by uid 99); 9 Feb 2009 00:03:27 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Sun, 08 Feb 2009 16:03:26 -0800 X-ASF-Spam-Status: No, hits=-2000.0 required=10.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.140] (HELO brutus.apache.org) (140.211.11.140) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 09 Feb 2009 00:03:23 +0000 Received: from brutus (localhost [127.0.0.1]) by brutus.apache.org (Postfix) with ESMTP id A850E234C4CB for ; Sun, 8 Feb 2009 16:03:02 -0800 (PST) Message-ID: <663982898.1234137782688.JavaMail.jira@brutus> Date: Sun, 8 Feb 2009 16:03:02 -0800 (PST) From: "Matei Zaharia (JIRA)" To: core-dev@hadoop.apache.org Subject: [jira] Updated: (HADOOP-4667) Global scheduling in the Fair Scheduler In-Reply-To: <1473359523.1226794245648.JavaMail.jira@brutus> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-Virus-Checked: Checked by ClamAV on apache.org [ https://issues.apache.org/jira/browse/HADOOP-4667?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Matei Zaharia updated HADOOP-4667: ---------------------------------- Attachment: hadoop-4667-v1b.patch Here is an update to this patch to take into account the changes I made to the preemption patch (HADOOP-4665). > Global scheduling in the Fair Scheduler > --------------------------------------- > > Key: HADOOP-4667 > URL: https://issues.apache.org/jira/browse/HADOOP-4667 > Project: Hadoop Core > Issue Type: New Feature > Components: contrib/fair-share > Reporter: Matei Zaharia > Attachments: fs-global-v0.patch, hadoop-4667-v1.patch, hadoop-4667-v1b.patch, HADOOP-4667_api.patch > > > The current schedulers in Hadoop all examine a single job on every heartbeat when choosing which tasks to assign, choosing the job based on FIFO or fair sharing. There are inherent limitations to this approach. For example, if the job at the front of the queue is small (e.g. 10 maps, in a cluster of 100 nodes), then on average it will launch only one local map on the first 10 heartbeats while it is at the head of the queue. This leads to very poor locality for small jobs. Instead, we need a more "global" view of scheduling that can look at multiple jobs. To resolve the locality problem, we will use the following algorithm: > - If the job at the head of the queue has no node-local task to launch, skip it and look through other jobs. > - If a job has waited at least T1 seconds while being skipped, also allow it to launch rack-local tasks. > - If a job has waited at least T2 > T1 seconds, also allow it to launch off-rack tasks. > This algorithm improves locality while bounding the delay that any job experiences in launching a task. > It turns out that whether waiting is useful depends on how many tasks are left in the job - the probability of getting a heartbeat from a node with a local task - and on whether the job is CPU or IO bound. Thus there may be logic for removing the wait on the last few tasks in the job. > As a related issue, once we allow global scheduling, we can launch multiple tasks per heartbeat, as in HADOOP-3136. The initial implementation of HADOOP-3136 adversely affected performance because it only launched multiple tasks from the same job, but with the wait rule above, we will only do this for jobs that are allowed to launch non-local tasks. -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.