Uploaded image for project: 'controller'
  1. controller
  2. CONTROLLER-1512

sal-akka-raft: Use akka.dispatch.ControlMessage for messages

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Done
    • None
    • None
    • clustering
    • None
    • Operating System: All
      Platform: All

    • 5740

      RaftActor implements time-sensitive messaging exchange, but it is also subclassed to provide subclass operations.

      When the subclass is targeted with a lot of messages, this can lead to timeouts in the RAFT underlay – hence potentially disrupting stability.

      Akka provides a way to divide classes into two:

      • make important messages implement akka.dispatch.ControlMessage
      • use one of ControlAwareMailboxes

      ControlAwareMailboxes use two internal queues, giving priority to delivering messages which are instanceof ControlMessage and delivering other messages only when no ControlMessage is present.

      This way we can ensure that the RAFT algorithm operates isolated from any floods incurred by the implementation above, leading to better stability.

      Performance impact and interactions with persistence need to be evaluated before this becomes our default.

            tpantelis Tom Pantelis
            rovarga Robert Varga
            Votes:
            0 Vote for this issue
            Watchers:
            4 Start watching this issue

              Created:
              Updated:
              Resolved: