Return-Path: Delivered-To: apmail-hadoop-core-dev-archive@www.apache.org Received: (qmail 21327 invoked from network); 27 Jul 2008 01:42:54 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.2) by minotaur.apache.org with SMTP; 27 Jul 2008 01:42:54 -0000 Received: (qmail 54040 invoked by uid 500); 27 Jul 2008 01:42:52 -0000 Delivered-To: apmail-hadoop-core-dev-archive@hadoop.apache.org Received: (qmail 54019 invoked by uid 500); 27 Jul 2008 01:42:52 -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 54008 invoked by uid 99); 27 Jul 2008 01:42:52 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Sat, 26 Jul 2008 18:42:52 -0700 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; Sun, 27 Jul 2008 01:42:05 +0000 Received: from brutus (localhost [127.0.0.1]) by brutus.apache.org (Postfix) with ESMTP id ACC0F234C17B for ; Sat, 26 Jul 2008 18:42:31 -0700 (PDT) Message-ID: <255464340.1217122951693.JavaMail.jira@brutus> Date: Sat, 26 Jul 2008 18:42:31 -0700 (PDT) From: "Matei Zaharia (JIRA)" To: core-dev@hadoop.apache.org Subject: [jira] Created: (HADOOP-3840) Support pluggable speculative execution MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-Virus-Checked: Checked by ClamAV on apache.org Support pluggable speculative execution --------------------------------------- Key: HADOOP-3840 URL: https://issues.apache.org/jira/browse/HADOOP-3840 Project: Hadoop Core Issue Type: Improvement Components: mapred Reporter: Matei Zaharia Priority: Minor HADOOP-3412 introduced an way to plug in a job scheduler for MapReduce. However, the job schedulers all use JobInProgress.obtainNewMapTask or obtainNewReduceTask to select tasks to run from each job, which uses a threshold-based speculative execution algorithm that has several shortcomings (see JIRAs about the scheduler not speculating tasks that freeze after having 80% progress for example). As a first step towards supporting better speculative execution policies while not breaking backwards compatibility, it makes sense to make the speculative execution policy pluggable. Luckily this is easy - we just need an interface around obtainNewMapTask and obtainNewReduceTask. This JIRA suggests adding a TaskSelector abstract class which, given a TaskTracker and a JobInProgress, chooses a task to run on the tracker. A default implementation that uses the current methods in JobInProgress is provided. Both TaskSchedulers in trunk are changed to use TaskSelector. In addition, there are methods to count how many speculative tasks a job needs, since TaskInProgress.hasSpeculative() may not work if we change the algorithm for selecting speculative tasks. This count is needed for some schedulers, such as a fair scheduler. -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.