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 DDFC7173FA for ; Thu, 16 Apr 2015 04:15:04 +0000 (UTC) Received: (qmail 12339 invoked by uid 500); 16 Apr 2015 04:14:59 -0000 Delivered-To: apmail-hbase-issues-archive@hbase.apache.org Received: (qmail 12289 invoked by uid 500); 16 Apr 2015 04:14:59 -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 12274 invoked by uid 99); 16 Apr 2015 04:14:59 -0000 Received: from arcas.apache.org (HELO arcas.apache.org) (140.211.11.28) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 16 Apr 2015 04:14:59 +0000 Date: Thu, 16 Apr 2015 04:14:59 +0000 (UTC) From: "stack (JIRA)" To: issues@hbase.apache.org Message-ID: In-Reply-To: References: Subject: [jira] [Commented] (HBASE-13467) Prototype using GRPC as IPC mechanism 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-13467?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14497534#comment-14497534 ] stack commented on HBASE-13467: ------------------------------- Looking at GRPCServer.... {code} * - Need to decide what to do about RPC scheduling and priorities in GRPC. Is HTTP2 (bandwidth) * priority sufficient or do we also need to map onto thread priorities{code} Being able to give requests different priorities is a facility we've leaned on in the past and one we want to do more with (a bunch of work was done here recently. The most basic example is that mapreduce clients should run at a lower priority than requests from the client trying to do low-latency serving... and in current code base, this basically works. Contributors have also made scheduling pluggable; 'simple' (round robin) is the default but also a 'FIFO' option. {code} * - Have largely dispensed with the connection header and will either use hardcoded defaults or * headers to replace it over time. Do need a GrpcSession though to cache authentication state.{code} http headers? Sounds like server will be listening on two ports then or looking for http preamble in first few connection bytes when we have to support old clients.... (not important just now). {code} * - Support for delayed calls removed. {code} Yes. It doesn't work anyways and needs to be removed. Fix: public static final Log LOG = LogFactory.getLog(RpcServer.class); bq. // TODO(lryan): Bring back the buffer resevoir? Yeah, or maybe now we should have netty do it for us not you've dragged us over on top of it. So implementation so far leaves aside scheduling but it bypases Responder, Listener and Reader. How many less threads is that? The simplification is appreciated. My guess is that it will translate into perf gain -- you think so [~lryan] (I can give do some perf runs once something basic is working). Looks great. > Prototype using GRPC as IPC mechanism > ------------------------------------- > > Key: HBASE-13467 > URL: https://issues.apache.org/jira/browse/HBASE-13467 > Project: HBase > Issue Type: Improvement > Components: API > Affects Versions: 2.0.0 > Reporter: Louis Ryan > Priority: Minor > > GRPC provide an RPC layer for protocol buffers on top of Netty 4/5. This could be used to replace the current internal implementation. > GRPC supports some advanced features like streaming, async, flow-control, cancellation & timeout which might be useful > Will prototype on GitHub here if folks are interested > https://github.com/louiscryan/hbase -- This message was sent by Atlassian JIRA (v6.3.4#6332)