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

Hot Rod protocol .NEXT

XMLWordPrintable

    • Icon: Enhancement Enhancement
    • Resolution: Unresolved
    • Icon: Major Major
    • None
    • None
    • None
    • None

      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.

            Unassigned Unassigned
            rh-ee-galder Galder ZamarreƱo
            Votes:
            0 Vote for this issue
            Watchers:
            4 Start watching this issue

              Created:
              Updated: