Return-Path: X-Original-To: apmail-hbase-dev-archive@www.apache.org Delivered-To: apmail-hbase-dev-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 1F5B9D8DE for ; Thu, 20 Sep 2012 19:08:05 +0000 (UTC) Received: (qmail 42499 invoked by uid 500); 20 Sep 2012 19:08:04 -0000 Delivered-To: apmail-hbase-dev-archive@hbase.apache.org Received: (qmail 42353 invoked by uid 500); 20 Sep 2012 19:08:04 -0000 Mailing-List: contact dev-help@hbase.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@hbase.apache.org Delivered-To: mailing list dev@hbase.apache.org Received: (qmail 42344 invoked by uid 99); 20 Sep 2012 19:08:04 -0000 Received: from minotaur.apache.org (HELO minotaur.apache.org) (140.211.11.9) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 20 Sep 2012 19:08:04 +0000 Received: from localhost (HELO mail-iy0-f169.google.com) (127.0.0.1) (smtp-auth username apurtell, mechanism plain) by minotaur.apache.org (qpsmtpd/0.29) with ESMTP; Thu, 20 Sep 2012 19:08:03 +0000 Received: by iaby26 with SMTP id y26so2308269iab.14 for ; Thu, 20 Sep 2012 12:08:03 -0700 (PDT) MIME-Version: 1.0 Received: by 10.50.236.6 with SMTP id uq6mr2619872igc.50.1348168083051; Thu, 20 Sep 2012 12:08:03 -0700 (PDT) Received: by 10.64.46.67 with HTTP; Thu, 20 Sep 2012 12:08:02 -0700 (PDT) In-Reply-To: References: Date: Thu, 20 Sep 2012 12:08:02 -0700 Message-ID: Subject: Re: Coprocessor Endpoint RPC and 0.96 backwards compatibility From: Andrew Purtell To: dev@hbase.apache.org Content-Type: text/plain; charset=ISO-8859-1 On Thu, Sep 20, 2012 at 12:02 PM, Gary Helmling wrote: > Now that HBASE-5448 is in trunk, we have support for defining > coprocessor endpoints as protocol buffer based Services, using PB > serialization for the endpoint RPC calls. This is accomplished via a > new set of HTable methods (HTable.coprocessorService*). As part of > the initial implementation, AccessControllerProtocol was converted to > a PB-based Service, and individual JIRA issues have been opened to > convert the remaining CoprocessorProtocol-based implementations that > we ship. [...] > Given that 0.96 has been dubbed "the singularity", with some > acknowledgement that we will be breaking backward compatibility, > should we make an exception to the normal deprecation process and > completely remove the CoprocessorProtocol-based support in 0.96? This > would allow us to drop Writable support from coprocessor endpoint > RPCs. Or should we leave CoprocessorProtocol support deprecated, to > be removed in 0.98? > > On the one hand, coprocessors and CoprocessorProtocol RPC have been > described as an experimental feature with an evolving interface. On > the other hand, the switch over from CoprocessorProtocol to PB Service > implementations for anyone developing their own endpoints will be > semi-painful, with a new requirement to define a .proto file, compile > with protoc, and very different client usage exposing the PB > interfaces. > It seems inevitable that any users of CoprocessorProtocol now will suffer this pain eventually. Given that coprocessors are in an experimental state and we are still iterating toward a stable design -- I think a reasonable expectation is for that CP API design stability somewhere in the neighborhood of 0.98 or 1.0 -- doing it earlier rather than later is the better course of action. There can only be more users of CoprocessorProtocol as time goes on, until it is removed, either at the 0.96 "singularity" or after a deprecation-and-removal cycle into 0.98. -- Best regards, - Andy Problems worthy of attack prove their worth by hitting back. - Piet Hein (via Tom White)