hbase-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Andrew Purtell (JIRA)" <j...@apache.org>
Subject [jira] Updated: (HBASE-2321) Support RPC interface changes at runtime
Date Fri, 01 Oct 2010 19:27:34 GMT

     [ https://issues.apache.org/jira/browse/HBASE-2321?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]

Andrew Purtell updated HBASE-2321:
----------------------------------

    Fix Version/s:     (was: 0.92.0)
                   0.90.0

> Support RPC interface changes at runtime
> ----------------------------------------
>
>                 Key: HBASE-2321
>                 URL: https://issues.apache.org/jira/browse/HBASE-2321
>             Project: HBase
>          Issue Type: Improvement
>            Reporter: Andrew Purtell
>            Assignee: Gary Helmling
>             Fix For: 0.90.0
>
>
> Now we are able to append methods to interfaces without breaking RPC compatibility with
earlier releases. However there is no way that I am aware of to dynamically add entire new
RPC interfaces. Methods/parameters are fixed to the class used to instantiate the server at
that time. Coprocessors need this. They will extend functionality on regions in arbitrary
ways. How to support that on the client side? A couple of options:
> 1. New RPC from scratch.
> 2. Modify HBaseServer such that multiple interface objects can be used for reflection
and objects can be added or removed at runtime. 
> 3. Have the coprocessor host instantiate new HBaseServer instances on ephemeral ports
and publish the endpoints to clients via Zookeeper. Couple this with a small modification
to HBaseServer to support elastic thread pools to minimize the number of threads that might
be kept around in the JVM. 
> 4. Add a generic method to HRegionInterface, an ioctl-like construction, which accepts
a ImmutableBytesWritable key and an array of Writable as parameters. 
> My opinion is we should opt for #4 as it is the simplest and most expedient approach.
I could also do #3 if consensus prefers. Really we should do #1 but it's not clear who has
the time for that at the moment. 

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


Mime
View raw message