Uploaded image for project: 'HBase'
  1. HBase
  2. HBASE-12684

Add new AsyncRpcClient

    XMLWordPrintableJSON

Details

    • Improvement
    • Status: Closed
    • Major
    • Resolution: Fixed
    • None
    • 1.1.0, 2.0.0
    • Client
    • None
    • Incompatible change, Reviewed
    • Hide
      Retrofit a new, netty-based rpc transport on the client. This client is slightly slower if little contention given the extra tier or so that netty adds and that we block on a Future waiting on the call to finish. This client opens the way for HBase having a native Async API.

      This client is on by default in master branch (2.0 hbase). It is off in branch-1.0 (hbase-1.1.x). To enable it, set "hbase.rpc.client.impl" to "org.apache.hadoop.hbase.ipc.AsyncRpcClient"
      Show
      Retrofit a new, netty-based rpc transport on the client. This client is slightly slower if little contention given the extra tier or so that netty adds and that we block on a Future waiting on the call to finish. This client opens the way for HBase having a native Async API. This client is on by default in master branch (2.0 hbase). It is off in branch-1.0 (hbase-1.1.x). To enable it, set "hbase.rpc.client.impl" to "org.apache.hadoop.hbase.ipc.AsyncRpcClient"

    Description

      With the changes in HBASE-12597 it is possible to add new RpcClients. This issue is about adding a new Async RpcClient which would enable HBase to do non blocking protobuf service communication.

      Besides delivering a new AsyncRpcClient I would also like to ask the question what it would take to replace the current RpcClient? This would enable to simplify async code in some next issues.

      Attachments

        1. Screen Shot 2015-01-11 at 11.55.32 PM.png
          316 kB
          Michael Stack
        2. requests.png
          13 kB
          Michael Stack
        3. q.png
          11 kB
          Michael Stack
        4. myrecording.jfr
          656 kB
          Michael Stack
        5. HBASE-12684-v9.patch
          107 kB
          Jurriaan Mous
        6. HBASE-12684-v8.patch
          107 kB
          Jurriaan Mous
        7. HBASE-12684-v7.patch
          107 kB
          Jurriaan Mous
        8. HBASE-12684-v6.patch
          111 kB
          Jurriaan Mous
        9. HBASE-12684-v5.patch
          111 kB
          Jurriaan Mous
        10. HBASE-12684-v4.patch
          108 kB
          Jurriaan Mous
        11. HBASE-12684-v31.patch
          106 kB
          Jurriaan Mous
        12. HBASE-12684-v31.patch
          106 kB
          Michael Stack
        13. HBASE-12684-v31.patch
          106 kB
          Michael Stack
        14. HBASE-12684-v30.patch
          106 kB
          Jurriaan Mous
        15. HBASE-12684-v30.patch
          106 kB
          Michael Stack
        16. HBASE-12684-v30.patch
          106 kB
          Jurriaan Mous
        17. HBASE-12684-v3.patch
          83 kB
          Jurriaan Mous
        18. HBASE-12684-v29.patch
          106 kB
          Jurriaan Mous
        19. HBASE-12684-v28.patch
          104 kB
          Jurriaan Mous
        20. HBASE-12684-v27.patch
          106 kB
          Jurriaan Mous
        21. HBASE-12684-v27.patch
          106 kB
          Michael Stack
        22. HBASE-12684-v26.patch
          106 kB
          Jurriaan Mous
        23. HBASE-12684-v25.patch
          107 kB
          Jurriaan Mous
        24. HBASE-12684-v24.patch
          107 kB
          Jurriaan Mous
        25. HBASE-12684-v24.patch
          107 kB
          Jurriaan Mous
        26. HBASE-12684-v24.patch
          107 kB
          Jurriaan Mous
        27. HBASE-12684-v24.patch
          107 kB
          Michael Stack
        28. HBASE-12684-v24.patch
          107 kB
          Michael Stack
        29. HBASE-12684-v23-epoll.patch
          107 kB
          Jurriaan Mous
        30. HBASE-12684-v22.patch
          105 kB
          Jurriaan Mous
        31. HBASE-12684-v21-heapBuffer.patch
          105 kB
          Jurriaan Mous
        32. HBASE-12684-v21-heapBuffer.1.patch
          105 kB
          Michael Stack
        33. HBASE-12684-v21.patch
          105 kB
          Jurriaan Mous
        34. HBASE-12684-v20-heapBuffer.patch
          103 kB
          Jurriaan Mous
        35. HBASE-12684-v20.patch
          103 kB
          Jurriaan Mous
        36. HBASE-12684-v2.patch
          80 kB
          Jurriaan Mous
        37. HBASE-12684-v19.patch
          102 kB
          Jurriaan Mous
        38. HBASE-12684-v19.patch
          102 kB
          Jurriaan Mous
        39. HBASE-12684-v19.1.patch
          103 kB
          Michael Stack
        40. HBASE-12684-v18.patch
          102 kB
          Jurriaan Mous
        41. HBASE-12684-v17.patch
          106 kB
          Jurriaan Mous
        42. HBASE-12684-v17.patch
          106 kB
          Michael Stack
        43. HBASE-12684-v16.patch
          102 kB
          Jurriaan Mous
        44. HBASE-12684-v15.patch
          102 kB
          Jurriaan Mous
        45. HBASE-12684-v14.patch
          102 kB
          Jurriaan Mous
        46. HBASE-12684-v13.patch
          110 kB
          Jurriaan Mous
        47. HBASE-12684-v12.patch
          108 kB
          Jurriaan Mous
        48. HBASE-12684-v11.patch
          107 kB
          Jurriaan Mous
        49. HBASE-12684-v10.patch
          108 kB
          Jurriaan Mous
        50. HBASE-12684-v1.patch
          77 kB
          Jurriaan Mous
        51. HBASE-12684-DEBUG3.patch
          107 kB
          Jurriaan Mous
        52. HBASE-12684-DEBUG2.patch
          106 kB
          Jurriaan Mous
        53. HBASE-12684.patch
          60 kB
          Jurriaan Mous

        Activity

          People

            jurmous Jurriaan Mous
            jurmous Jurriaan Mous
            Votes:
            0 Vote for this issue
            Watchers:
            13 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: