Return-Path: X-Original-To: apmail-hbase-issues-archive@www.apache.org Delivered-To: apmail-hbase-issues-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 2DE76E7FB for ; Fri, 1 Mar 2013 23:51:14 +0000 (UTC) Received: (qmail 80670 invoked by uid 500); 1 Mar 2013 23:51:13 -0000 Delivered-To: apmail-hbase-issues-archive@hbase.apache.org Received: (qmail 80618 invoked by uid 500); 1 Mar 2013 23:51:13 -0000 Mailing-List: contact issues-help@hbase.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Delivered-To: mailing list issues@hbase.apache.org Received: (qmail 80605 invoked by uid 99); 1 Mar 2013 23:51:13 -0000 Received: from arcas.apache.org (HELO arcas.apache.org) (140.211.11.28) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 01 Mar 2013 23:51:13 +0000 Date: Fri, 1 Mar 2013 23:51:13 +0000 (UTC) From: "Jonathan Hsieh (JIRA)" To: issues@hbase.apache.org Message-ID: In-Reply-To: References: Subject: [jira] [Commented] (HBASE-4755) HBase based block placement in DFS MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-JIRA-FingerPrint: 30527f35849b9dde25b450d4833f0394 [ https://issues.apache.org/jira/browse/HBASE-4755?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13591110#comment-13591110 ] Jonathan Hsieh commented on HBASE-4755: --------------------------------------- Good stuff. Thanks for bearing with me -- I like to understand things at this level to set my expectations before I dive into code reviews. bq. The tool would interact with the metatable cols and the AssignmentDomain (although in the first implementation, the assignmentdomain is the whole cluster). Yes this is the only place other than the table creation that would change the preferred DNs. Agree with manual overrides (that's what you meant by surgery?). sorry about the bad english. surgery == hbck-related things like fixups in case the tools or nodes make mistakes to unstuck a cluster. I think it would be good to spell out the different planned pieces for the tools, placment policy framework/hooks, etc as subtasks. > HBase based block placement in DFS > ---------------------------------- > > Key: HBASE-4755 > URL: https://issues.apache.org/jira/browse/HBASE-4755 > Project: HBase > Issue Type: New Feature > Affects Versions: 0.94.0 > Reporter: Karthik Ranganathan > Assignee: Christopher Gist > Priority: Critical > Attachments: 4755-wip-1.patch, hbase-4755-notes.txt > > > The feature as is only useful for HBase clusters that care about data locality on regionservers, but this feature can also enable a lot of nice features down the road. > The basic idea is as follows: instead of letting HDFS determine where to replicate data (r=3) by place blocks on various regions, it is better to let HBase do so by providing hints to HDFS through the DFS client. That way instead of replicating data at a blocks level, we can replicate data at a per-region level (each region owned by a promary, a secondary and a tertiary regionserver). This is better for 2 things: > - Can make region failover faster on clusters which benefit from data affinity > - On large clusters with random block placement policy, this helps reduce the probability of data loss > The algo is as follows: > - Each region in META will have 3 columns which are the preferred regionservers for that region (primary, secondary and tertiary) > - Preferred assignment can be controlled by a config knob > - Upon cluster start, HMaster will enter a mapping from each region to 3 regionservers (random hash, could use current locality, etc) > - The load balancer would assign out regions preferring region assignments to primary over secondary over tertiary over any other node > - Periodically (say weekly, configurable) the HMaster would run a locality checked and make sure the map it has for region to regionservers is optimal. > Down the road, this can be enhanced to control region placement in the following cases: > - Mixed hardware SKU where some regionservers can hold fewer regions > - Load balancing across tables where we dont want multiple regions of a table to get assigned to the same regionservers > - Multi-tenancy, where we can restrict the assignment of the regions of some table to a subset of regionservers, so an abusive app cannot take down the whole HBase cluster. -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira