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 C24DB2009FB for ; Fri, 6 May 2016 09:27:14 +0200 (CEST) Received: by cust-asf.ponee.io (Postfix) id C0E48160A0C; Fri, 6 May 2016 07:27:14 +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 124741609F6 for ; Fri, 6 May 2016 09:27:13 +0200 (CEST) Received: (qmail 292 invoked by uid 500); 6 May 2016 07:27: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 270 invoked by uid 99); 6 May 2016 07:27:13 -0000 Received: from arcas.apache.org (HELO arcas) (140.211.11.28) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 06 May 2016 07:27:13 +0000 Received: from arcas.apache.org (localhost [127.0.0.1]) by arcas (Postfix) with ESMTP id D5FAE2C1F62 for ; Fri, 6 May 2016 07:27:12 +0000 (UTC) Date: Fri, 6 May 2016 07:27:12 +0000 (UTC) From: "Jurriaan Mous (JIRA)" To: issues@hbase.apache.org Message-ID: In-Reply-To: References: Subject: [jira] [Commented] (HBASE-15745) Refactor RPC classes to better accept async changes. MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-JIRA-FingerPrint: 30527f35849b9dde25b450d4833f0394 archived-at: Fri, 06 May 2016 07:27:14 -0000 [ https://issues.apache.org/jira/browse/HBASE-15745?page=3Dcom.atlassia= n.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=3D152= 73749#comment-15273749 ]=20 Jurriaan Mous commented on HBASE-15745: --------------------------------------- bq. My first reaction was, oh no, not more additions to the class hierarchy= , but my second thought was that there is no way around it for now; later o= nce async is the default, we can start peeling away the abandoned tiers. Yes indeed, for now it is needed to cope with the differences of the async = implementation where it would send back a Future.=20 bq. Second, on ProtoRetryingCallable, there is no protobuf in the Interface= =E2=80=93 Proto usually implies PB around these parts but you seem to be r= eferencing prototype here? =E2=80=93 nor is there a call method (no call wh= en we async? Or its signature is different?). Is this Interface a Decorator= or a Base Interface? If latter, RetryingCallableBase? If former RetryingCa= llableDecorator... ugly names but more clear what they are about. Just sugg= estions. Renamed to RetryingCallableBase bq. RetryingCallable did not give you sufficient leeway for introducing = an async version? It is possible to do both implementations in RetryingCallable and to put a = Future as Type. Although the sync call version says it is able to return= a Exception while in Async it is handled by the Future. So a separate vers= ion has a cleaner interface. What would you prefer? Use old and change less= or introduce a new one which is specific for Async without throwing except= ion? > Refactor RPC classes to better accept async changes. > ---------------------------------------------------- > > Key: HBASE-15745 > URL: https://issues.apache.org/jira/browse/HBASE-15745 > Project: HBase > Issue Type: Improvement > Reporter: Jurriaan Mous > Assignee: Jurriaan Mous > Attachments: HBASE-15745-v1.patch, HBASE-15745-v2.patch, HBASE-15= 745.patch > > > The class layout needs to be changed to better accept Async versions of t= he same classes. This is a partly commit of the patch in HBASE-13784 > Classes turned interface: > * AsyncRpcChannel with AsyncRpcChannelImpl as implementation > * CoprocessorRpcChannel with SyncCoprocessorRpcChannel for implementation > New lower-level abstractions: > * ProtoRetryingCallable below RetryingCallable > * AbstractRegionServerCallable below RegionServerCallable -- This message was sent by Atlassian JIRA (v6.3.4#6332)