[ 
https://issues.apache.org/jira/browse/HDFS-2060?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13047324#comment-13047324
 ] 

Todd Lipcon commented on HDFS-2060:
-----------------------------------

Here's my proposal:
- in a HADOOP jira, modify ObjectWritable to be able to serialize protocol 
buffers (ie the {{Message}}) type. This allows coexistence of writables and 
protobufs within a single protocol so we can do a staged switchover without a 
wholesale switch in rpc engine implementation.
- for each of the RPCs in ClientProtocol:
-- define a new protobuf for the request params and the resposne params. EG 
{{SetReplicationRequestProto}} and {{SetReplicationResponseProto}}.
-- add a new RPC {{SetReplicationResponseProto 
setReplication(SetReplicationResponseProto param)}}
-- implement that RPC by simply writing the boilerplate wrap/unwrap code 
to/from the original parameters
-- deprecate the old call
-- switch callers internal to HDFS to the new proto-based call

The nice thing about this approach is that it (a) maintains API 
backwards-compatibility for one version for folks directly using protocol 
proxies to talk to the NN, and (b) allows us to do a staged switchover, one RPC 
at a time.

It doesn't address the ability to evolve the underlying IPC/RPC transport, but 
that could be tackled in parallel or sequenced after this.

> DFS client RPCs using protobufs
> -------------------------------
>
>                 Key: HDFS-2060
>                 URL: https://issues.apache.org/jira/browse/HDFS-2060
>             Project: Hadoop HDFS
>          Issue Type: New Feature
>    Affects Versions: 0.23.0
>            Reporter: Todd Lipcon
>            Assignee: Todd Lipcon
>
> The most important place for wire-compatibility in DFS is between clients and 
> the cluster, since lockstep upgrade is very difficult and a single client may 
> want to talk to multiple server versions. So, I'd like to focus this JIRA on 
> making the RPCs between the DFS client and the NN/DNs wire-compatible using 
> protocol buffer based serialization.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to