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 A9D90108A2 for ; Wed, 3 Dec 2014 14:36:13 +0000 (UTC) Received: (qmail 69053 invoked by uid 500); 3 Dec 2014 14:36:13 -0000 Delivered-To: apmail-hbase-issues-archive@hbase.apache.org Received: (qmail 69018 invoked by uid 500); 3 Dec 2014 14:36: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 68923 invoked by uid 99); 3 Dec 2014 14:36:13 -0000 Received: from arcas.apache.org (HELO arcas.apache.org) (140.211.11.28) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 03 Dec 2014 14:36:13 +0000 Date: Wed, 3 Dec 2014 14:36:13 +0000 (UTC) From: "Anoop Sam John (JIRA)" To: issues@hbase.apache.org Message-ID: In-Reply-To: References: Subject: [jira] [Comment Edited] (HBASE-12597) Add RpcClient interface and enable changing of RpcClient implementation 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-12597?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14233037#comment-14233037 ] Anoop Sam John edited comment on HBASE-12597 at 12/3/14 2:36 PM: ----------------------------------------------------------------- ConnectionId You should add Apache license header as well as InterfaceAudience. FailedServerException You should add Apache license header FailedServers You should add Apache license header as well as InterfaceAudience. {code} String rpcClientClass = conf.get(CUSTOM_RPC_CLIENT_IMPL_CONF_KEY, RpcClientImpl.class.getName()); {code} The agreement is that RpcClient implementations to have a 3 arg constructor. Need to add the info in release notes RpcClientAdapter -> Is this an adapter class? This is a common base class for diff RpcClient impls. This name correct? was (Author: anoop.hbase): ConnectionId You should add Apache license header as well as InterfaceAudience. FailedServerException You should add Apache license header FailedServers You should add Apache license header as well as InterfaceAudience. {code} String rpcClientClass = conf.get(CUSTOM_RPC_CLIENT_IMPL_CONF_KEY, RpcClientImpl.class.getName()); {code} The agrement is that RpcClient implementations to have a 3 arg constructor. Need to add the info in release notes RpcClientAdapter -> Is this an adapter class? This is a common base for diff RpcClient impls. This name correct? > Add RpcClient interface and enable changing of RpcClient implementation > ----------------------------------------------------------------------- > > Key: HBASE-12597 > URL: https://issues.apache.org/jira/browse/HBASE-12597 > Project: HBase > Issue Type: Improvement > Components: Client > Reporter: Jurriaan Mous > Attachments: HBASE-12597-v1.patch, HBASE-12597-v2.patch, HBASE-12597.patch > > > Currently HConnectionImplementation works with the included RpcClient which is a direct implementation and not defined by an interface. > It would be great to be able to swap out the default RpcClient with another implementation which can also be controlled by the default HConnectionImplementation. > Suggested changes: > - Create a RpcClient interface which defines all the ways HConnectionImplementation interacts with an RPC client. Like getting a blocking protobuf service interface or closing the client. > - Define which RpcClient implementation to construct by setting a configuration variable which defaults to the current RpcClient. > - Possibly create an abstract RpcClient class to only load all the basic Rpc layer configurations to be used in an implementation. > Why? It enables experimentation with RpcClients which could enable new features or could be more performant than the included client. > I created a new RpcClient implementation based on Netty which can also be called asynchronously. It would be great to also be able to use this RpcClient in all the default ways and tests to see if there are any issues with it. > https://github.com/jurmous/async-hbase-client/ > https://github.com/jurmous/async-hbase-client/blob/master/src/main/java/org/apache/hadoop/hbase/ipc/AsyncRpcClient.java -- This message was sent by Atlassian JIRA (v6.3.4#6332)