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 B0D6ED37B for ; Wed, 22 Aug 2012 18:38:43 +0000 (UTC) Received: (qmail 68293 invoked by uid 500); 22 Aug 2012 18:38:43 -0000 Delivered-To: apmail-hbase-issues-archive@hbase.apache.org Received: (qmail 68222 invoked by uid 500); 22 Aug 2012 18:38:43 -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 67883 invoked by uid 99); 22 Aug 2012 18:38:43 -0000 Received: from arcas.apache.org (HELO arcas) (140.211.11.28) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 22 Aug 2012 18:38:43 +0000 Received: from arcas.apache.org (localhost [127.0.0.1]) by arcas (Postfix) with ESMTP id BC8E52C0911 for ; Wed, 22 Aug 2012 18:38:42 +0000 (UTC) Date: Thu, 23 Aug 2012 05:38:42 +1100 (NCT) From: "Ian Varley (JIRA)" To: issues@hbase.apache.org Message-ID: <172827494.1692.1345660722773.JavaMail.jiratomcat@arcas> In-Reply-To: <513967512.1159.1328151354729.JavaMail.tomcat@hel.zones.apache.org> Subject: [jira] [Commented] (HBASE-5320) Create client API to handle HBase maintenance gracefully 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-5320?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13439748#comment-13439748 ] Ian Varley commented on HBASE-5320: ----------------------------------- Seems like something along the lines of the circuit breaker pattern would be useful in the HBase client: http://techblog.netflix.com/2012/02/fault-tolerance-in-high-volume.html In other words, whether it's planned or unplanned, inability to reach the cluster should be something the client can detect and pass along to clients. The simplest way is by throwing immediate exceptions when the client detects the cluster is unreachable (while, in the background, the client continues to attempt to reconnect). A more sophisticated way might have some API clients can check about up-ness; but, of course, then they have to check that on every call, so it's not really all that different from just throwing a specific kind of exception and having them handle that at whatever level they feel like it. The key part is maintaining that state in some central place in the client's JVM. This is tricky to get right (you don't want to be throwing exceptions if the cluster is really up and it's a false alarm!). > Create client API to handle HBase maintenance gracefully > -------------------------------------------------------- > > Key: HBASE-5320 > URL: https://issues.apache.org/jira/browse/HBASE-5320 > Project: HBase > Issue Type: Improvement > Reporter: Mikhail Bautin > Assignee: Mikhail Bautin > Priority: Minor > > When we do HBase cluster maintenance, we typically have to manually stop or disable the client temporarily. It would be nice to have a way for the client to find out that HBase in undergoing maintenance through an appropriate API and gracefully handle it on its own. -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa For more information on JIRA, see: http://www.atlassian.com/software/jira