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 8522C200D2B for ; Thu, 2 Nov 2017 21:40:04 +0100 (CET) Received: by cust-asf.ponee.io (Postfix) id 83B9D160BE5; Thu, 2 Nov 2017 20:40:04 +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 CA3E91609EB for ; Thu, 2 Nov 2017 21:40:03 +0100 (CET) Received: (qmail 31957 invoked by uid 500); 2 Nov 2017 20:40:02 -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 31946 invoked by uid 99); 2 Nov 2017 20:40:02 -0000 Received: from pnap-us-west-generic-nat.apache.org (HELO spamd1-us-west.apache.org) (209.188.14.142) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 02 Nov 2017 20:40:02 +0000 Received: from localhost (localhost [127.0.0.1]) by spamd1-us-west.apache.org (ASF Mail Server at spamd1-us-west.apache.org) with ESMTP id 06ED6DA284 for ; Thu, 2 Nov 2017 20:40:02 +0000 (UTC) X-Virus-Scanned: Debian amavisd-new at spamd1-us-west.apache.org X-Spam-Flag: NO X-Spam-Score: -100.002 X-Spam-Level: X-Spam-Status: No, score=-100.002 tagged_above=-999 required=6.31 tests=[RP_MATCHES_RCVD=-0.001, SPF_PASS=-0.001, USER_IN_WHITELIST=-100] autolearn=disabled Received: from mx1-lw-us.apache.org ([10.40.0.8]) by localhost (spamd1-us-west.apache.org [10.40.0.7]) (amavisd-new, port 10024) with ESMTP id JBZCk9MJ6ohp for ; Thu, 2 Nov 2017 20:40:01 +0000 (UTC) Received: from mailrelay1-us-west.apache.org (mailrelay1-us-west.apache.org [209.188.14.139]) by mx1-lw-us.apache.org (ASF Mail Server at mx1-lw-us.apache.org) with ESMTP id 09A145F566 for ; Thu, 2 Nov 2017 20:40:01 +0000 (UTC) Received: from jira-lw-us.apache.org (unknown [207.244.88.139]) by mailrelay1-us-west.apache.org (ASF Mail Server at mailrelay1-us-west.apache.org) with ESMTP id 98BFAE0ECE for ; Thu, 2 Nov 2017 20:40:00 +0000 (UTC) Received: from jira-lw-us.apache.org (localhost [127.0.0.1]) by jira-lw-us.apache.org (ASF Mail Server at jira-lw-us.apache.org) with ESMTP id 52AD224157 for ; Thu, 2 Nov 2017 20:40:00 +0000 (UTC) Date: Thu, 2 Nov 2017 20:40:00 +0000 (UTC) From: "Mike Drob (JIRA)" To: issues@hbase.apache.org Message-ID: In-Reply-To: References: Subject: [jira] [Commented] (HBASE-19160) Re-expose some CellUtil methods MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-JIRA-FingerPrint: 30527f35849b9dde25b450d4833f0394 archived-at: Thu, 02 Nov 2017 20:40:04 -0000 [ https://issues.apache.org/jira/browse/HBASE-19160?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16236553#comment-16236553 ] Mike Drob commented on HBASE-19160: ----------------------------------- Part of the same issue also hid the CellComparator, which breaks Apache Hive's code. They are using CellComparator so that they can sort of List of Cells before writing it out for bulk load (an invariant given by us). They implement their own writers because they've got other magic going on, so I think a deep refactoring is out of scope. I think we should provide an accessible CellComparator for folks to use, since the interface is Public, but there are no implementations available seems like a gap. MetaCellComparator staying private is good though. > Re-expose some CellUtil methods > ------------------------------- > > Key: HBASE-19160 > URL: https://issues.apache.org/jira/browse/HBASE-19160 > Project: HBase > Issue Type: Bug > Affects Versions: 2.0.0-alpha-4 > Reporter: Mike Drob > Priority: Critical > Fix For: 2.0.0-beta-1 > > > On HBASE-18995 we moved a bunch of public methods to Private places. This inadvertently breaks donwstream consumers. Let's see if we can ease up on some of the lockdown and make life easier for them. > Copying [~ram_krish]'s previous analysis: > {quote} > I read the Crunch projec't hbase-support related code. > -> It uses both CellUtil (Public exposed) and KeyValueUtil (@Private) classes for helper methods. > -> All methods in CellUtil that are getting used are even now exposed in branch-2's CellUtil and they are very common helper methods. So we are safe here. > -> Wrt KeyValueUtil the API is createFirstOnRow(). It is used in test cases and in some core code. In most of the places they are trying to create the splitKeys from the region's start keys and that is also getting persisted. I think here they can safely create a cell out of the given byte[] of the row. > But there is one place where they are trying to do some scanning on a HFileScanner directly (@Private) scanner. So this should be changed because it is an internal interface for us. And on this scanner they have copied our seekTo() code into their source files for some scanning purpose. In this code they are actually using the KvUtil.createFirstOnRow() to seek to that first cell of that row. > More over I think in branch-2 we are restricting even CPs from accessing some of our internal scanners and they can only use InternalScanner interface. So this code in crunch needs heavy refactoring to work with branch-2 in case they want to fit into the Public/Private exposed semantics that HBase presents to the downstreamers. > -> If still they want some APIs like this we can expose CellUtil#createFirstOnRow, createLastOnRow, createFirstOnCol and createLastOnCol at the maximum. I think others are not useful and are more internal stuffs. > {quote} -- This message was sent by Atlassian JIRA (v6.4.14#64029)