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

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

    XMLWordPrintable

Details

    • Bug
    • Status: Resolved
    • Resolution: Done
    • None
    • None
    • clustering
    • None
    • Operating System: All
      Platform: All

    • 5740

    Description

      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.

      Attachments

        Issue Links

          No reviews matched the request. Check your Options in the drop-down menu of this sections header.

          Activity

            People

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

              Dates

                Created:
                Updated:
                Resolved: