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 3C93520049B for ; Mon, 14 Aug 2017 20:10:57 +0200 (CEST) Received: by cust-asf.ponee.io (Postfix) id 3B1F3165A34; Mon, 14 Aug 2017 18:10:57 +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 5A648165A31 for ; Mon, 14 Aug 2017 20:10:56 +0200 (CEST) Received: (qmail 49340 invoked by uid 500); 14 Aug 2017 18:10:53 -0000 Mailing-List: contact dev-help@hbase.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@hbase.apache.org Delivered-To: mailing list dev@hbase.apache.org Received: (qmail 48850 invoked by uid 99); 14 Aug 2017 18:10:52 -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; Mon, 14 Aug 2017 18:10:52 +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 70263C00A2 for ; Mon, 14 Aug 2017 18:10:52 +0000 (UTC) X-Virus-Scanned: Debian amavisd-new at spamd1-us-west.apache.org X-Spam-Flag: NO X-Spam-Score: 2.48 X-Spam-Level: ** X-Spam-Status: No, score=2.48 tagged_above=-999 required=6.31 tests=[DKIM_SIGNED=0.1, DKIM_VALID=-0.1, HEADER_FROM_DIFFERENT_DOMAINS=0.001, HTML_MESSAGE=2, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H3=-0.01, RCVD_IN_MSPIKE_WL=-0.01, RCVD_IN_SORBS_SPAM=0.5, SPF_PASS=-0.001] autolearn=disabled Authentication-Results: spamd1-us-west.apache.org (amavisd-new); dkim=pass (2048-bit key) header.d=gmail.com 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 vylEGgPaJWC3 for ; Mon, 14 Aug 2017 18:10:50 +0000 (UTC) Received: from mail-wm0-f41.google.com (mail-wm0-f41.google.com [74.125.82.41]) by mx1-lw-us.apache.org (ASF Mail Server at mx1-lw-us.apache.org) with ESMTPS id 4C90D5FC72 for ; Mon, 14 Aug 2017 18:10:50 +0000 (UTC) Received: by mail-wm0-f41.google.com with SMTP id f15so50053073wmg.1 for ; Mon, 14 Aug 2017 11:10:50 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:sender:in-reply-to:references:from:date:message-id :subject:to; bh=ShFRybIWGuzHrV/u5S7b/Hk7cBcrujadwJfgxdpCfZQ=; b=ULMV4b1Zudmx8INKQ8enfgeV6DXV2AT2agHxm52BJh9E+h/MrJVEREloY5z0FXAfkS quWJ6IuWa7o1xY7GJ6J1kpqSFj7pgmxdb0HCNka54CEDTKV4e1Lqr7v5I4P7/2aJFkr2 RrvCNwMNzd+XZtlgKv5Zs+bd9++tux+b7k10rcCVECHuWffkcunh47bowYhP9ty895+T bIF2yop1i5W1GJQEznaBkjned3DZ2i5swiVsYKXrtd+e3SUV045pumRHGRdstjTnDYrZ N7rapF+xHoAaqDJ0AqF6oHYodtn9KsXrTpD2e9zaDwTNqv1cZKPd8Td8ytUwCRRB/MDk 8V0A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:sender:in-reply-to:references:from :date:message-id:subject:to; bh=ShFRybIWGuzHrV/u5S7b/Hk7cBcrujadwJfgxdpCfZQ=; b=qyMk8hdcA4us8E9rTi4nETs3bWqv0+CkiauDIkoUdQfx7aZdFi5SDwPfcIt9DgoIfh tAhJ2j0tYqV1T1JuGHDFq62wf9F03JSuA9bWLFtdmHA4cnXfIOqXukCDKdiZ3BQhH51V Itusxxb0LHlfgsbEVwprPaDpTNUNn20dmslGOKkYb7RvP/pf8R+P6W1skhI6eFq/MSPH +8RdXE8D/yppTZ0BCFQ2Gy2DG5E1fxdq++Pn1bbG/GPVdLOSXj0vKCUC99gQSab+wxAe dfV+3OGuqM9XTpks702TOhMZkL6DJb6UFQq9ukrPlBMcGrRHGzI+NKMTqLaemTCvsb7W 0TAQ== X-Gm-Message-State: AHYfb5gjTFZcU1A91wCup8tfqyvAi3oMY/fAfqurGpc9pOQs4f+NMTQU 792d4Z5d+6PHBifeMqfmVhvbp/dDZrCU X-Received: by 10.28.6.212 with SMTP id 203mr4405434wmg.126.1502734247724; Mon, 14 Aug 2017 11:10:47 -0700 (PDT) MIME-Version: 1.0 Sender: saint.ack@gmail.com Received: by 10.223.136.176 with HTTP; Mon, 14 Aug 2017 11:10:46 -0700 (PDT) In-Reply-To: References: From: Stack Date: Mon, 14 Aug 2017 11:10:46 -0700 X-Google-Sender-Auth: KdEZUdnmhoZgvdSxfx-chaqMStM Message-ID: Subject: Re: [DISCUSS] hbase-2.0.0 compatibility expectations To: HBase Dev List Content-Type: multipart/alternative; boundary="001a1143eab0070e4b0556ba956e" archived-at: Mon, 14 Aug 2017 18:10:57 -0000 --001a1143eab0070e4b0556ba956e Content-Type: text/plain; charset="UTF-8" On Fri, Aug 11, 2017 at 5:07 PM, Apekshit Sharma wrote: > Ref: deleting/deprecating some methods in HBaseAdmin > https://github.com/apache/hbase/commit/de696cf6b653749c6bf105ef3d62d7 > a6c6923c57 > From first message: > *" An hbase1 client can run against an hbase2 cluster but it will only be > able to do DML (Get/Put/Scan, etc.). We do not allow being able to do admin > ops using an hbase1 Admin client against an hbase2 cluster."* > > Question 1: > These guarantees are with what version of jars? > Does the client has to keep using corresponding 1.x jars with which it was > compiled, OR can the 2.x jars just replace earlier ones and client is still > expected to work correctly? (i would say no!) > > Dropping hbase2 jars into an hbase1 deploy? No. No guarantee of binary compat. I was thinking of wire compatibility here Appy. > Question second: > How do we handle clients doing deprecated admin ops? > a) make admin functions no-op by using empty method. > b) throw exception. May/maynot crash the client - ideally shouldn't since > methods are define with 'throws IOException'. > I think throwing exception the way to go. Its clean signal of change. > c) delete the method - will crash the client > But the question only makes sense if expect clients to work with 2.x jars. > If not, we can just delete them, simple! > > I'm not sure I follow. If a hbase1 client calls a deprecated/unimplemented method, I was thinking it'd get an exception. > Question 3: AMv2 related > There are ops in old HBaseAdmin that'll be destructive for 2.0 > (closeRegion() fn). > If clients continue to use 1.x jars and make these calls, that's not > acceptable. We need to handle such deprecation on server sider itself. > If only there was way of versioning the rpc service! > Another way, but bad one is, deprecate existing ones and move logic to a > new one. I think there are just 1-2 that need this treatment. > Either way, need to come up with a solution! > > Throw an exception pointing at the alternative API? Thanks Appy, S > > On Fri, Aug 4, 2017 at 10:08 AM, Andrew Purtell > wrote: > > > This is a really good question. I think many operators will give a lot of > > leeway to data format changes as long as data can be copied from A to B > > (perhaps with batch rewrite to upgrade (ideally, not required)) and > > replication can be enabled to sync up to the current moment for cut over. > > > > > > > On Aug 4, 2017, at 10:00 AM, Esteban Gutierrez > > wrote: > > > > > > Should we add additional details around replication as well? for > > instance, > > > shall we consider a hbase-1.x cluster as a client for a hbase-2.x > > cluster? > > > > > > Thanks for starting this discussion Stack, > > > > > > esteban. > > > > > > -- > > > Cloudera, Inc. > > > > > > > > >> On Fri, Aug 4, 2017 at 1:05 AM, stack wrote: > > >> > > >> Thanks Zach for clarification. Let me work up a list and then come > back > > to > > >> this thread. Jira needs an edit pass to. > > >> > > >> S > > >> > > >> On Aug 3, 2017 23:54, "Zach York" > wrote: > > >> > > >> This kinda helps, but these seem more like expectations. I was going > > more > > >> for things like HFile format changed, meta table structure changed, > > >> coprocessor implementations changed (these are just examples, I don't > > know > > >> if any of these actually changed). > > >> > > >> More technical differences between branch-1 and branch-2 which then > can > > >> help us get the right expectations for compatibility. > > >> > > >>> On Wed, Aug 2, 2017 at 6:34 PM, Stack wrote: > > >>> > > >>> On Wed, Aug 2, 2017 at 5:25 PM, Zach York < > > zyork.contribution@gmail.com> > > >>> wrote: > > >>> > > >>>> Do we know what the major pain points for migration are? Can we > > discuss > > >>>> that/get a list going? > > >>>> > > >>>> > > >>> Here's a few in outline: > > >>> > > >>> + There is issue of formats, of hbase-2.x being able to read > hbase-1.x > > >> data > > >>> whether from HDFS or ZooKeeper or off the wire. > > >>> + An hbase-1.x client should be able to Get/Put and Scan an hbase-2.x > > >>> cluster; no holes in the API or unintelligible serializations. > > >>> + There is then the little dance that has us rolling restart from an > > >>> hbase-1.x cluster to hbase-2.x; i.e. upgrade master first and then it > > >> will > > >>> assign regions to the new hbase-2.x regionservers as they come on > line. > > >>> TBD. > > >>> > > >>> Is this what you mean sir? > > >>> > > >>> S > > >>> > > >>> > > >>>> I think without that knowledge it is hard (for me at least :) ) to > > >>>> determine where we should set our sights in terms of migration. > > >>>> > > >>>> Thanks, > > >>>> Zach > > >>>> > > >>>>> On Wed, Aug 2, 2017 at 4:38 PM, Stack wrote: > > >>>>> > > >>>>> What are our expectations regards compatibility between hbase1 and > > >>>> hbase2? > > >>>>> > > >>>>> Lets have a chat about it. Here are some goal posts. > > >>>>> > > >>>>> + You have to upgrade to hbase-1.x before you can migrate to > hbase-2. > > >>> No > > >>>>> migration from < hbase-1 (Is this too onerous? Should we support > 0.98 > > >>> => > > >>>>> 2.0?). > > >>>>> + You do NOT have to upgrade to the latest release of hbase1 to > > >> migrate > > >>>> to > > >>>>> hbase2; being up on hbase-1.0.0+ will be sufficient. > > >>>>> + You'll have to update your hbase1 coprocessors to deploy them on > > >>>> hbase2. > > >>>>> A bunch of CP API has/will change by the time hbase2 comes out; > e.g. > > >>>>> watching for region split on RegionServer no longer makes sense > given > > >>>>> Master runs all splits now. > > >>>>> + An hbase1 client can run against an hbase2 cluster but it will > only > > >>> be > > >>>>> able to do DML (Get/Put/Scan, etc.). We do not allow being able to > do > > >>>> admin > > >>>>> ops using an hbase1 Admin client against an hbase2 cluster. We have > > >>> some > > >>>>> egregious API violations in branch-1; e.g. we have protobuf in our > > >> API > > >>>> (See > > >>>>> HBASE-15607). The notion is that we can't afford a deprecation > cycle > > >>>>> purging this stuff from our Admin API. > > >>>>> > > >>>>> What you all think? > > >>>>> > > >>>>> St.Ack > > >>>>> > > >>>> > > >>> > > >> > > > > > > -- > > -- Appy > --001a1143eab0070e4b0556ba956e--