[jira] [Updated] (HBASE-2321) Support RPC interface changes at runtime

2011-08-17 Thread Benoit Sigoure (JIRA)

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

Benoit Sigoure updated HBASE-2321:
--

Hadoop Flags: [Incompatible change, Reviewed]  (was: [Reviewed])

This breaks RPC compatibility.

 Support RPC interface changes at runtime
 

 Key: HBASE-2321
 URL: https://issues.apache.org/jira/browse/HBASE-2321
 Project: HBase
  Issue Type: Improvement
  Components: coprocessors
Reporter: Andrew Purtell
Assignee: Gary Helmling
 Fix For: 0.92.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.
For more information on JIRA, see: http://www.atlassian.com/software/jira




[jira] Updated: (HBASE-2321) Support RPC interface changes at runtime

2010-10-16 Thread stack (JIRA)

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

stack updated HBASE-2321:
-

Fix Version/s: (was: 0.90.0)
   0.92.0

Moving into 0.92 as per discussion up on dev list (Correct me if I'm making 
wrong move here lads).

 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.92.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.