Return-Path: Delivered-To: apmail-hadoop-mapreduce-issues-archive@minotaur.apache.org Received: (qmail 25487 invoked from network); 14 Aug 2009 07:45:35 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.3) by minotaur.apache.org with SMTP; 14 Aug 2009 07:45:35 -0000 Received: (qmail 94092 invoked by uid 500); 14 Aug 2009 07:45:42 -0000 Delivered-To: apmail-hadoop-mapreduce-issues-archive@hadoop.apache.org Received: (qmail 94037 invoked by uid 500); 14 Aug 2009 07:45:42 -0000 Mailing-List: contact mapreduce-issues-help@hadoop.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: mapreduce-issues@hadoop.apache.org Delivered-To: mailing list mapreduce-issues@hadoop.apache.org Received: (qmail 94027 invoked by uid 99); 14 Aug 2009 07:45:42 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 14 Aug 2009 07:45:42 +0000 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; Fri, 14 Aug 2009 07:45:36 +0000 Received: from brutus (localhost [127.0.0.1]) by brutus.apache.org (Postfix) with ESMTP id 7679C234C1E6 for ; Fri, 14 Aug 2009 00:45:15 -0700 (PDT) Message-ID: <906140006.1250235915476.JavaMail.jira@brutus> Date: Fri, 14 Aug 2009 00:45:15 -0700 (PDT) From: "Hemanth Yamijala (JIRA)" To: mapreduce-issues@hadoop.apache.org Subject: [jira] Commented: (MAPREDUCE-860) Modify Queue APIs to support a hierarchy of queues In-Reply-To: <30912528.1250163614848.JavaMail.jira@brutus> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-JIRA-FingerPrint: 30527f35849b9dde25b450d4833f0394 X-Virus-Checked: Checked by ClamAV on apache.org [ https://issues.apache.org/jira/browse/MAPREDUCE-860?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12743121#action_12743121 ] Hemanth Yamijala commented on MAPREDUCE-860: -------------------------------------------- One proposal is to use a 'fully qualified queue name', which is a separated list of queue names that uniquely defines a queue in the hierarchy. Let's say the separator character is '-' (subject to discussion). So, this is an example of a fully qualified queue name - "org1-priority-production". If a fully qualified name is not specified, this will map to a top level queue. This definition is backwards compatible for existing sites, because top level queues and leaf level queues are the same in this case. With this in mind, the APIs can be redefined as follows: - getJobsFromQueue returns jobs from the named queue. New sites that use hierarchical queues must pass the fully qualified queue name of the job queue. In case a container queue name is passed to the API, we could throw an IOException with an explanatory message. The other option is to return null, but then it would be difficult to know whether it is because there are no jobs in the queue, or due to an error condition. - getQueueInfo works as before. - For getQueues we have two choices. We can: -- return only information about leaf level queues, or job queues. -- return information about all queues. Either approach could be considered backwards compatible as for sites with leaf level queues, both approaches will return the same list of queues. The JobQueueInfo should have the queueName as the fully qualified name of the queue. We would also need new APIs to navigate the queue hierarchy. There are a couple of options to do this. - One is to maintain the hierarchy using JobQueueInfo objects. i.e. a JobQueueInfo object will contain the JobQueueInfo objects for its children. The advantage is that with a single call we can get the entire hierarchy and this will allow efficient navigation and fewer lookups when we want to get the entire tree. The disadvantage is the amount of data transferred if we are interested only in part of the hierarchy. This change though would mean the JobQueueInfo class itself is not backwards compatible and though behavior can be maintained, client code will need to use the new JobClient code. - The other would be to provide APIs such as the following: {code} // return information about queues that form the roots of the hierarchy JobQueueInfo[] getRootQueues(); // return information about queues that are under a given queue JobQueueInfo[] getChildQueues(String queueName); {code} This would allow traversal of the entire tree and also of portions of the hierarchy. However, if the interest is in all the queues, it is a lot of RPC calls, and lookups on the server. - We could do both - i.e. have an API such as JobQueueInfo[] getAllQueues() that returns the entire tree, and the more specific calls to navigate just parts of the hierarchy. Thoughts ? > Modify Queue APIs to support a hierarchy of queues > -------------------------------------------------- > > Key: MAPREDUCE-860 > URL: https://issues.apache.org/jira/browse/MAPREDUCE-860 > Project: Hadoop Map/Reduce > Issue Type: Sub-task > Components: jobtracker > Reporter: Hemanth Yamijala > Assignee: rahul k singh > > MAPREDUCE-853 proposes to introduce a hierarchy of queues into the Map/Reduce framework. This JIRA is for defining changes to the APIs related to queues. -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.