Hi, I'm writing an Endpoint Coprocessor for HBase v0.94.6 (cdh4.3.1).
I'm trying to understand how the CoprocessorProtocol and CoprocessorEndPoint implementation versioning works, both backwards and forward. For instance, I have my protocol as: public interface MyQueryProtocol extends CoprocessorProtocol{ public static final long VERSION = 1L; public MyResult query(int x) throws IOException; } Let's say I have deployed them both at the client and at the Region Server (and their respective implementation. Now lets say after 0.5 year I've discovered I want to change the method by adding another parameter y: public interface MyQueryProtocol extends CoprocessorProtocol{ public static final long VERSION = *2L*; public MyResult query(int x*, int y*) throws IOException; } Am I suppose to have both the old method and the new method in the interface? What happens if I update the client first - is it even possible, or is it always the order of: server first and then client? So in essence: How am I supposed to do both in the protocol and endpoint implementation in terms of versioning. Thanks!