Return-Path: X-Original-To: archive-asf-public-internal@cust-asf2.ponee.io Delivered-To: archive-asf-public-internal@cust-asf2.ponee.io Received: from cust-asf.ponee.io (cust-asf.ponee.io [163.172.22.183]) by cust-asf2.ponee.io (Postfix) with ESMTP id 924A3200BE7 for ; Tue, 6 Dec 2016 02:25:02 +0100 (CET) Received: by cust-asf.ponee.io (Postfix) id 90C86160B18; Tue, 6 Dec 2016 01:25:02 +0000 (UTC) Delivered-To: archive-asf-public@cust-asf.ponee.io Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by cust-asf.ponee.io (Postfix) with SMTP id DB8E4160B27 for ; Tue, 6 Dec 2016 02:25:01 +0100 (CET) Received: (qmail 4907 invoked by uid 500); 6 Dec 2016 01:25:00 -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 4356 invoked by uid 99); 6 Dec 2016 01:25:00 -0000 Received: from arcas.apache.org (HELO arcas) (140.211.11.28) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 06 Dec 2016 01:25:00 +0000 Received: from arcas.apache.org (localhost [127.0.0.1]) by arcas (Postfix) with ESMTP id ABF1A2C2A69 for ; Tue, 6 Dec 2016 01:24:59 +0000 (UTC) Date: Tue, 6 Dec 2016 01:24:59 +0000 (UTC) From: "Daniel Vimont (JIRA)" To: issues@hbase.apache.org Message-ID: In-Reply-To: References: Subject: [jira] [Comment Edited] (HBASE-17257) Add column-aliasing capability to hbase-client MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-JIRA-FingerPrint: 30527f35849b9dde25b450d4833f0394 archived-at: Tue, 06 Dec 2016 01:25:02 -0000 [ https://issues.apache.org/jira/browse/HBASE-17257?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15723952#comment-15723952 ] Daniel Vimont edited comment on HBASE-17257 at 12/6/16 1:24 AM: ---------------------------------------------------------------- I very much hope that my original research is mistaken, and that a system table/region CAN be split (because arguably one of the ugliest aspects of my current design is the need for a separate namespace for the aliasMappingTable). I will get out some details of the overall design soon, and I will review my original research which seemed to indicate that system tables/regions cannot be split. was (Author: daniel_vimont): I very much hope that my original research is mistaken, and that a system table/region CAN be split (because arguably one of the ugliest aspects of my current design is the need for a separate namespace for the aliasMappingTable). I will get out some details of the overall design soon, and I will review my original research which seemed to indicate that system tables cannot be split. > Add column-aliasing capability to hbase-client > ---------------------------------------------- > > Key: HBASE-17257 > URL: https://issues.apache.org/jira/browse/HBASE-17257 > Project: HBase > Issue Type: New Feature > Components: Client > Affects Versions: 2.0.0 > Reporter: Daniel Vimont > Assignee: Daniel Vimont > Labels: features > > Column aliasing will provide the option for a 1, 2, or 4 byte alias value to be stored in each cell of an "alias enabled" column-family, in place of the full-length column-qualifier. Aliasing is intended to operate completely invisibly to the end-user developer, with absolutely no "awareness" of aliasing required to be coded into a front-end application. No new public hbase-client interfaces are to be introduced, and only a few new public methods should need to be added to existing interfaces, primarily to allow an administrator to designate that a new column-family is to be alias-enabled by setting its aliasSize attribute to 1, 2, or 4. > To facilitate such functionality, new subclasses of HTable, BufferedMutatorImpl, and HTableMultiplexer are to be provided. The overriding methods of these new subclasses will invoke methods of the new AliasManager class to facilitate qualifier-to-alias conversions (for user-submitted Gets, Scans, and Mutations) and alias-to-qualifier conversions (for Results returned from HBase) for any Table that has one or more alias-enabled column families. All conversion logic will be encapsulated in the new AliasManager class, and all qualifier-to-alias mappings will be persisted in a new aliasMappingTable in a new, reserved namespace. > An informal polling of HBase users at HBaseCon East and at the Strata/Hadoop-World conference in Sept. 2016 showed that Column Aliasing could be a popular enhancement to standard HBase functionality, due to the fact that full column-qualifiers are stored in each cell, and reducing this qualifier storage requirement down to 1, 2, or 4 bytes per cell could prove beneficial in terms of reduced storage and bandwidth needs. Aliasing is intended chiefly for column-families which are of the "narrow and tall" variety (i.e., that are designed to use relatively few distinct column-qualifiers throughout a large number of rows, throughout the lifespan of the column-family). A column-family that is set up with an alias-size of 1 byte can contain up to 255 unique column-qualifiers; a 2 byte alias-size allows for up to 65,535 unique column-qualifiers; and a 4 byte alias-size allows for up to 4,294,967,295 unique column-qualifiers. > Fuller specifications will be entered into the comments section below. Note that it may well not be viable to add aliasing support in the new "async" classes that appear to be currently under development. -- This message was sent by Atlassian JIRA (v6.3.4#6332)