Add notification-dispatcher configuration for default akka.conf.
[controller.git] / opendaylight / md-sal / sal-clustering-config / src / main / resources / initial / akka.conf
index f196ad1644791b92e5ec32a43ebeb36cb7411734..b15b5bc30cec2dc9be6d6488da3e8a6f75a60e05 100644 (file)
@@ -8,22 +8,55 @@ odl-cluster-data {
 
   metric-capture-enabled = true
 
+  notification-dispatcher {
+    # Dispatcher is the name of the event-based dispatcher
+    type = Dispatcher
+    # What kind of ExecutionService to use
+    executor = "fork-join-executor"
+    # Configuration for the fork join pool
+    fork-join-executor {
+      # Min number of threads to cap factor-based parallelism number to
+      parallelism-min = 2
+      # Parallelism (threads) ... ceil(available processors * factor)
+      parallelism-factor = 3.0
+      # Max number of threads to cap factor-based parallelism number to
+      parallelism-max = 15
+    }
+    # Throughput defines the maximum number of messages to be
+    # processed per actor before the thread jumps to the next actor.
+    # Set to 1 for as fair as possible.
+    throughput = 1
+  }
+
   akka {
     loglevel = "INFO"
     loggers = ["akka.event.slf4j.Slf4jLogger"]
+    logger-startup-timeout = 300s
 
     actor {
-
       provider = "akka.cluster.ClusterActorRefProvider"
       serializers {
-                java = "akka.serialization.JavaSerializer"
-                proto = "akka.remote.serialization.ProtobufSerializer"
-              }
+        java = "akka.serialization.JavaSerializer"
+        proto = "akka.remote.serialization.ProtobufSerializer"
+        readylocal = "org.opendaylight.controller.cluster.datastore.messages.ReadyLocalTransactionSerializer"
+      }
+
+      serialization-bindings {
+        "com.google.protobuf.Message" = proto
+        "org.opendaylight.controller.cluster.datastore.messages.ReadyLocalTransaction" = readylocal
+      }
 
-              serialization-bindings {
-                  "com.google.protobuf.Message" = proto
+      default-dispatcher {
+        # Setting throughput to 1 makes the dispatcher fair. It processes 1 message from
+        # the mailbox before moving on to the next mailbox
+        throughput = 1
+      }
 
-              }
+      default-mailbox {
+        # When not using a BalancingDispatcher it is recommended that we use the SingleConsumerOnlyUnboundedMailbox
+        # as it is the most efficient for multiple producer/single consumer use cases
+        mailbox-type="akka.dispatch.SingleConsumerOnlyUnboundedMailbox"
+      }
     }
     remote {
       log-remote-lifecycle-events = off
@@ -38,46 +71,33 @@ odl-cluster-data {
 
     cluster {
       seed-nodes = ["akka.tcp://opendaylight-cluster-data@127.0.0.1:2550"]
+      
+      seed-node-timeout = 12s
 
-      auto-down-unreachable-after = 10s
+      auto-down-unreachable-after = 30s
 
       roles = [
         "member-1"
       ]
 
     }
-  }
-}
-
-odl-cluster-rpc {
-  bounded-mailbox {
-    mailbox-type = "org.opendaylight.controller.cluster.common.actor.MeteredBoundedMailbox"
-    mailbox-capacity = 1000
-    mailbox-push-timeout-time = 100ms
-  }
 
-  metric-capture-enabled = true
+    persistence {
+      # By default the snapshots/journal directories live in KARAF_HOME. You can choose to put it somewhere else by
+      # modifying the following two properties. The directory location specified may be a relative or absolute path. 
+      # The relative path is always relative to KARAF_HOME.
 
-  akka {
-    loglevel = "INFO"
-    loggers = ["akka.event.slf4j.Slf4jLogger"]
+      # snapshot-store.local.dir = "target/snapshots"
+      # journal.leveldb.dir = "target/journal"
 
-    actor {
-      provider = "akka.cluster.ClusterActorRefProvider"
+      journal {
+        leveldb {
+          # Set native = off to use a Java-only implementation of leveldb.
+          # Note that the Java-only version is not currently considered by Akka to be production quality.
 
-    }
-    remote {
-      log-remote-lifecycle-events = off
-      netty.tcp {
-        hostname = "127.0.0.1"
-        port = 2551
+          # native = off
+        }
       }
     }
-
-    cluster {
-      seed-nodes = ["akka.tcp://odl-cluster-rpc@127.0.0.1:2551"]
-
-      auto-down-unreachable-after = 10s
-    }
   }
 }