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

Remove shared transport


    • Icon: Task Task
    • Resolution: Done
    • Icon: Major Major
    • 4.0
    • 3.5
    • None

      I'm thinking of deprecating the shared transport [1] and remove it in 4.0. The replacement would be fork channels [2].

      Here's my reasoning:

      • Shared transports are quite a complex beast: initialization (ref counting), cluster-name and local-addr are not used in TP when shared, duplicate logic. Removing this will make the code base smaller
      • All protocols above shared transports are not shared, e.g. FD_SOCK, NAKACK, UNICAST etc all maintain their own threads, retransmission tables, sockets etc. With fork channels, everything up to the FORK protocol is shared
      • TUNNEL doesn't work with shared transports (throws an exception)
      • Hidden insertion of TP$ProtocolAdapter into the stack when shared transports are used
      • Unneeded cost of sending N-1 messages (e.g. with TCP). Currently we send a message with dest null and no IP multicast capable transport to all physical addresses in the transport, which is a waste

      Thoughts ? My +100 for removing shared transports in 4.0...

      [1] http://www.jgroups.org/manual/html/user-advanced.html#SharedTransport
      [2] http://www.jgroups.org/manual/html/user-advanced.html#ForkChannel

            rhn-engineering-bban Bela Ban
            rhn-engineering-bban Bela Ban
            0 Vote for this issue
            2 Start watching this issue