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 750E5EC14 for ; Sun, 17 Mar 2013 18:49:18 +0000 (UTC) Received: (qmail 81844 invoked by uid 500); 17 Mar 2013 18:49:14 -0000 Delivered-To: apmail-hbase-issues-archive@hbase.apache.org Received: (qmail 81757 invoked by uid 500); 17 Mar 2013 18:49:14 -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 81698 invoked by uid 99); 17 Mar 2013 18:49:14 -0000 Received: from arcas.apache.org (HELO arcas.apache.org) (140.211.11.28) by apache.org (qpsmtpd/0.29) with ESMTP; Sun, 17 Mar 2013 18:49:14 +0000 Date: Sun, 17 Mar 2013 18:49:14 +0000 (UTC) From: "Konstantin Shvachko (JIRA)" To: issues@hbase.apache.org Message-ID: In-Reply-To: References: Subject: [jira] [Commented] (HBASE-8109) HBase can manage blocks instead of (or inside) files in HDFS 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-8109?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13604712#comment-13604712 ] Konstantin Shvachko commented on HBASE-8109: -------------------------------------------- Exposing block API from HDFS is an interesting idea. If done carefully. You probably still want HDFS to do block management and maintain the block namespace, otherwise you end up rewriting NameNode (and talking heresy). As Ted mentioned in [Giraffa (link to the project)|http://code.google.com/a/apache-extras.org/p/giraffa/wiki/Introduction] we indeed encountered similar problem. Giraffa stores files' metadata in a single HBase table, while the blocks reside in HDFS DataNodes. We use NameNode as a block manager in current implementation. Since blocks are not exposed from HDFS we used a workaround, namely we create a file, then allocate single block in it, then rename that file to the block id. The file then is used as the Giraffa block. Adding this operation to HDFS to do it atomically would help Giraffa a lot. Sergey, I was wondering if you had similar scenarios for using block APIs in HBase? What are they? You mention counting block references. I assume this means that the same block can belong to multiple files. While it seems natural and simple in single-NameNode design, in the world of distributed namespace this turns into a distributed operation and a potential obstacle for scalability. > HBase can manage blocks instead of (or inside) files in HDFS > ------------------------------------------------------------ > > Key: HBASE-8109 > URL: https://issues.apache.org/jira/browse/HBASE-8109 > Project: HBase > Issue Type: Brainstorming > Reporter: Sergey Shelukhin > > Prompted by previous non-Hadoop experience and some dev list discussions, and after talking to some HDFS people about blocks. > HBase could improve a lot by managing HDFS blocks instead of files, and reusing the blocks among other things. Some areas that could improve are splits, compactions, management of large blobs, locality enforcement. > I was told that block APIs in Hadoop 2 are well-isolated, but not exposed yet. They can easily be exposed, and as one of the first potential users we could get to help shape them. Two areas that from my limited understanding is currently fuzzy are namespaces for blocks, and ref-counting. > We should come up with list of initial scenarios to figure out what we need from block API (locality, detecting/enforcing block boundary/variable size blocks, reusing one block, ...). -- 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