Switch to using tell-based protocol 97/96497/6
authorIvan Hrasko <ivan.hrasko@pantheon.tech>
Wed, 9 Jun 2021 08:08:46 +0000 (10:08 +0200)
committerRobert Varga <nite@hq.sk>
Thu, 13 Jan 2022 13:55:04 +0000 (13:55 +0000)
Using Artery with ask-based protocol in our current settings leads
to easily running out of native memory. Switch to tell-based protocol,
which can slice its messages to fit in smaller buffers.

JIRA: CONTROLLER-1983
Change-Id: I0a296dbb3ba6e4e659c94761d78cfb985633061c
Signed-off-by: Ivan Hrasko <ivan.hrasko@pantheon.tech>
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
opendaylight/md-sal/sal-clustering-config/src/main/resources/initial/datastore.cfg
opendaylight/md-sal/sal-clustering-config/src/main/resources/initial/factory-akka.conf

index f6566523b6ce9d03f7016f49065e42b15f6bdab8..678903c74c4e37a4e0ea5ade80c305017a7f6512 100644 (file)
@@ -86,12 +86,13 @@ operational.persistent=false
 #custom-raft-policy-implementation=
 
 # When fragmenting messages thru the akka remoting framework, this is the maximum size in bytes
-# for a message slice.
-#maximum-message-slice-size=20480000
+# for a message slice. This needs to be below Akka's maximum-frame-size and defaults to 480KiB.
+maximum-message-slice-size=491520
 
 # Enable tell-based protocol between frontend (applications) and backend (shards). Using this protocol
-# should avoid AskTimeoutExceptions seen under heavy load. Defaults to false (use ask-based protocol).
-#use-tell-based-protocol=true
+# should avoid AskTimeoutExceptions seen under heavy load. Defaults to false (use tell-based protocol).
+# Set to false to enable ask-based protocol.
+use-tell-based-protocol=true
 
 # Tune the maximum number of entries a follower is allowed to lag behind the leader before it is
 # considered out-of-sync. This flag may require tuning in face of a large number of small transactions.
index 196517f697845e2c7a5d62a162ba0b3f2b27a3d9..03e741a73a1690c8aa0819b4b49774c5b52a0937 100644 (file)
@@ -106,8 +106,8 @@ odl-cluster-data {
         transport = tcp
 
         advanced {
-          maximum-frame-size = 400 MiB
-          #maximum-large-frame-size = 2 MiB
+          maximum-frame-size = 512 KiB
+          maximum-large-frame-size = 2 MiB
         }
       }
     }