Uploaded image for project: 'Infinispan'
  1. Infinispan
  2. ISPN-5357

Hot Rod protocol .NEXT

    XMLWordPrintable

    Details

    • Type: Enhancement
    • Status: Open (View Workflow)
    • Priority: Major
    • Resolution: Unresolved
    • Affects Version/s: None
    • Fix Version/s: None
    • Component/s: None
    • Labels:
      None

      Description

      Infinispan should expose a single endpoint which should behave as follows:

      • by default offer an HTTP/1.1 RESTftul interface
      • through HTTP upgrade allow switching to better protocols
      • support an HTTP/2 RESTful interface
      • support Hot Rod 3.0, which would be a gRPC protocol with additional L2 and L3 intelligence for capable clients

      UPDATE (6/10/2015): Hot Rod 3.0 could become a HTTP REST protocol taking advantage of existing infrastructure to deal with HTTP requests efficiently, and if it was based on HTTP 2.0, we could have binary data inside of it. Performance should be on par. Text mode could be available for debug or demos. This essentially would mean REST and Hot Rod would merge into one.

      A binary protocol rethink is needed to take better advantage of CPUs and buffering. This is based on the ideas of Martin Thompson's Simple Binary Encoding blog post

      In essence, we need to move Hot Rod protocol towards having mostly fixed size fields, hence getting rid of `vInt` and `vLong` formats which although safe some bytes, they hinder long stream reading patterns.

      An optional part here would be whether to consider using SBE directly, but this JIRA should be mostly oriented at making sure we have a protocol that can be read fast and efficiently.

        Attachments

          Issue Links

            Activity

              People

              Assignee:
              Unassigned Unassigned
              Reporter:
              galder.zamarreno Galder ZamarreƱo
              Votes:
              0 Vote for this issue
              Watchers:
              4 Start watching this issue

                Dates

                Created:
                Updated: