HBase
  1. HBase
  2. HBASE-6521

Address the handling of multiple versions of a protocol

    Details

    • Type: Improvement Improvement
    • Status: Resolved
    • Priority: Blocker Blocker
    • Resolution: Invalid
    • Affects Version/s: None
    • Fix Version/s: None
    • Component/s: IPC/RPC
    • Labels:
      None

      Description

      This jira is to track a solution/patch to the mailing list thread titled "Handling protocol versions" - http://search-hadoop.com/m/6k7GUM028E/v=threaded.

        Issue Links

          Activity

          Hide
          stack added a comment -

          Resolving as 'Invalid'. We will handle versioning by not doing versioning (See HBASE-7479 where we strip what versioning we currently had).

          Show
          stack added a comment - Resolving as 'Invalid'. We will handle versioning by not doing versioning (See HBASE-7479 where we strip what versioning we currently had).
          Hide
          stack added a comment -

          This issue has some relation to this one

          Show
          stack added a comment - This issue has some relation to this one
          Hide
          stack added a comment -

          I put this 'experiment' up on rb: https://reviews.apache.org/r/8790/

          Show
          stack added a comment - I put this 'experiment' up on rb: https://reviews.apache.org/r/8790/
          Hide
          stack added a comment -

          Here are some notes I've been keeping while working on this issue: https://docs.google.com/document/pub?id=1WCKwgaLDqBw2vpux0jPsAu2WPTRISob7HGCO8YhfDTA

          Show
          stack added a comment - Here are some notes I've been keeping while working on this issue: https://docs.google.com/document/pub?id=1WCKwgaLDqBw2vpux0jPsAu2WPTRISob7HGCO8YhfDTA
          Hide
          stack added a comment -

          This patch has hackup to make MasterProtocol, the isMasterRunning method,
          work by hooking up the generated protobuf Service to our rpc.
          It also messes with TestProtoBufRpcServer test class hooking up
          a "protocol" to use protobuf Services instead. It does not remove
          VersionedProtocol though it is being bypassed in this patch. We do
          not remove it because it would bulk up the patch.

          • MasterAdminProtocol
          • MasterMonitorProtocol
            Remove code copied from generated protobuf BlockingInterface
          • MasterProtocol removed; just use the generated pb Interface instead.
          • HConnectionManager This class has some hackery making the call
            isMasterRunning. Instead of asking HBaseClientRPC for a proxy,
            we instead ask for a pb RpcChannel so we can make a Stub for the
            client to use. The RpcController goes unused/unexploited.
          • HBaseClient Allow for now a 'null' proxy. This is how we indicate
            a protobuf Service. Would need to be fixed so we pass actual
            Service name.
          • ProtobufRpcClientEnging We make a BlockingRpcChannel. Knows
            how to do the call against the server. Added a getChannel
            call which is like doing a getProxy. Refactored call to
            use the stub if present. Why we have interfaces and protocol?
            Seems broke. Needs cleanup.
          • TestProtoBufRpc Pulled this test around to mess with
            protobuf Service.
          Show
          stack added a comment - This patch has hackup to make MasterProtocol, the isMasterRunning method, work by hooking up the generated protobuf Service to our rpc. It also messes with TestProtoBufRpcServer test class hooking up a "protocol" to use protobuf Services instead. It does not remove VersionedProtocol though it is being bypassed in this patch. We do not remove it because it would bulk up the patch. MasterAdminProtocol MasterMonitorProtocol Remove code copied from generated protobuf BlockingInterface MasterProtocol removed; just use the generated pb Interface instead. HConnectionManager This class has some hackery making the call isMasterRunning. Instead of asking HBaseClientRPC for a proxy, we instead ask for a pb RpcChannel so we can make a Stub for the client to use. The RpcController goes unused/unexploited. HBaseClient Allow for now a 'null' proxy. This is how we indicate a protobuf Service. Would need to be fixed so we pass actual Service name. ProtobufRpcClientEnging We make a BlockingRpcChannel. Knows how to do the call against the server. Added a getChannel call which is like doing a getProxy. Refactored call to use the stub if present. Why we have interfaces and protocol? Seems broke. Needs cleanup. TestProtoBufRpc Pulled this test around to mess with protobuf Service.
          Hide
          Devaraj Das added a comment -

          Unassigning from myself. From the dev mailing list, it seems like stack is already involved in refining the proposal.

          Show
          Devaraj Das added a comment - Unassigning from myself. From the dev mailing list, it seems like stack is already involved in refining the proposal.
          Hide
          Devaraj Das added a comment -

          Assigning it to myself. Will get to it.

          Show
          Devaraj Das added a comment - Assigning it to myself. Will get to it.
          Hide
          stack added a comment -

          Upping priority on this since what is there doesn't make much sense in new pb context (and versioning is done w/ Writables which we are trying to purge).

          Show
          stack added a comment - Upping priority on this since what is there doesn't make much sense in new pb context (and versioning is done w/ Writables which we are trying to purge).
          Hide
          stack added a comment -

          Bringing into 0.96 as blocker

          Show
          stack added a comment - Bringing into 0.96 as blocker

            People

            • Assignee:
              Unassigned
              Reporter:
              Devaraj Das
            • Votes:
              0 Vote for this issue
              Watchers:
              5 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved:

                Development