Uploaded image for project: 'JGroups'
  1. JGroups
  2. JGRP-2411

JGraaS: JGroups as a Service

XMLWordPrintable

    • Icon: Feature Request Feature Request
    • Resolution: Unresolved
    • Icon: Major Major
    • 5.5
    • None
    • None

      Provide a separate server implementation of Channel (server service) which runs as a separate process, plus a client stub (RemoteChannel, implementing Channel) which communicates with the service.

      The communication is across pipes/sockets/shared memory (TBD) and assumes servers and clients are on the same host. Most method calls of Channel need to be supported.

      Advantages

      Fast replacement

      The server process could be replaced on the fly with a different server process, e.g. using a different configuration.
      If compiled down to a native image (using GraalVM), this would take only a few milliseconds.
      This could move the config permutations (UDP/TCP/NIO/PING/TCPPING/KUBE_PING/DNS_PING etc) from Infinispan into the separate server process.

      Rolling upgrades

      We could have a Channel implementation, which communicates with multiple remote JGroups servers, sending messages to both and receiving messages from both servers.
      One server could be running 3.6. Later, a 4.x server could be added and when all members have a dual-channel, the 3.6 channels could be shut down, effectively performing a rolling upgrade of JGroups from a version to a different version.

      Disadvantages

      This would be much slower, because of the serialization overhead. Perhaps shared memory could be used on the same host to avoid that...

            rhn-engineering-bban Bela Ban
            rhn-engineering-bban Bela Ban
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

              Created:
              Updated: