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 D27E8200CB7 for ; Fri, 30 Jun 2017 20:53:04 +0200 (CEST) Received: by cust-asf.ponee.io (Postfix) id D11FA160BEB; Fri, 30 Jun 2017 18:53: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 22152160BE8 for ; Fri, 30 Jun 2017 20:53:03 +0200 (CEST) Received: (qmail 34120 invoked by uid 500); 30 Jun 2017 18:53:03 -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 34108 invoked by uid 99); 30 Jun 2017 18:53:03 -0000 Received: from pnap-us-west-generic-nat.apache.org (HELO spamd2-us-west.apache.org) (209.188.14.142) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 30 Jun 2017 18:53:03 +0000 Received: from localhost (localhost [127.0.0.1]) by spamd2-us-west.apache.org (ASF Mail Server at spamd2-us-west.apache.org) with ESMTP id BCE6E1AFA40 for ; Fri, 30 Jun 2017 18:53:02 +0000 (UTC) X-Virus-Scanned: Debian amavisd-new at spamd2-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 (spamd2-us-west.apache.org [10.40.0.9]) (amavisd-new, port 10024) with ESMTP id LsUSRPLOpYON for ; Fri, 30 Jun 2017 18:53:02 +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 A57575F2FD for ; Fri, 30 Jun 2017 18:53: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 3BBDAE06C4 for ; Fri, 30 Jun 2017 18:53:01 +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 DF0F9245D9 for ; Fri, 30 Jun 2017 18:53:00 +0000 (UTC) Date: Fri, 30 Jun 2017 18:53:00 +0000 (UTC) From: "Sean Busbey (JIRA)" To: issues@hbase.apache.org Message-ID: In-Reply-To: References: Subject: [jira] [Commented] (HBASE-16713) Bring back connection caching as a client API MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-JIRA-FingerPrint: 30527f35849b9dde25b450d4833f0394 archived-at: Fri, 30 Jun 2017 18:53:05 -0000 [ https://issues.apache.org/jira/browse/HBASE-16713?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16070577#comment-16070577 ] Sean Busbey commented on HBASE-16713: ------------------------------------- Can we consolidate this and HBASE-17009? fine with a DISCUSS on dev@ if we need it first. Why can't we just provide an example using [commons-pool|https://commons.apache.org/proper/commons-pool/]? > Bring back connection caching as a client API > --------------------------------------------- > > Key: HBASE-16713 > URL: https://issues.apache.org/jira/browse/HBASE-16713 > Project: HBase > Issue Type: New Feature > Components: Client, spark > Reporter: Enis Soztutar > Fix For: 2.0.0 > > Attachments: hbase-16713_wip.patch > > > Connection.getConnection() is removed in master for good reasons. The connection lifecycle should always be explicit. We have replaced some of the functionality with ConnectionCache for rest and thrift servers internally, but it is not exposed to clients. > Turns out our friends doing the hbase-spark connector work needs a similar connection caching behavior that we have in rest and thrift server. At a higher level we want: > - Spark executors should be able to run short living hbase tasks with low latency > - Short living tasks should be able to share the same connection, and should not pay the price of instantiating the cluster connection (which means zk connection, meta cache, 200+ threads, etc) > - Connections to the cluster should be closed if it is not used for some time. Spark executors are used for other tasks as well. > - Spark jobs may be launched with different configuration objects, possibly connecting to different clusters between different jobs. > - Although not a direct requirement for spark, different users should not share the same connection object. > Looking at the old code that we have in branch-1 for {{ConnectionManager}}, managed connections and the code in ConnectionCache, I think we should do a first-class client level API called ConnectionCache which will be a hybrid between ConnectionCache and old ConnectionManager. The lifecycle of the ConnectionCache is still explicit, so I think API-design-wise, this will fit into the current model. -- This message was sent by Atlassian JIRA (v6.4.14#64029)