X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?p=controller.git;a=blobdiff_plain;f=opendaylight%2Fmd-sal%2Fsal-clustering-config%2Fsrc%2Fmain%2Fresources%2Finitial%2Fakka.conf;h=b15b5bc30cec2dc9be6d6488da3e8a6f75a60e05;hp=0535179aadf79c4196a8f606433c1cd8b4e89949;hb=2b7d2365c64087cfce66196bf0bf5857c0a4c315;hpb=ba063c294c8367da5917a6930dc79d00ee14c23e diff --git a/opendaylight/md-sal/sal-clustering-config/src/main/resources/initial/akka.conf b/opendaylight/md-sal/sal-clustering-config/src/main/resources/initial/akka.conf index 0535179aad..b15b5bc30c 100644 --- a/opendaylight/md-sal/sal-clustering-config/src/main/resources/initial/akka.conf +++ b/opendaylight/md-sal/sal-clustering-config/src/main/resources/initial/akka.conf @@ -1,22 +1,67 @@ odl-cluster-data { + bounded-mailbox { + mailbox-type = "org.opendaylight.controller.cluster.common.actor.MeteredBoundedMailbox" + mailbox-capacity = 1000 + mailbox-push-timeout-time = 100ms + } + + 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 netty.tcp { - hostname = "" + hostname = "127.0.0.1" port = 2550 maximum-frame-size = 419430400 send-buffer-size = 52428800 @@ -25,31 +70,34 @@ odl-cluster-data { } cluster { - seed-nodes = ["akka.tcp://opendaylight-cluster-data@:2550"] + 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 -odl-cluster-rpc { - akka { - actor { - provider = "akka.cluster.ClusterActorRefProvider" + roles = [ + "member-1" + ] } - remote { - log-remote-lifecycle-events = off - netty.tcp { - hostname = "" - port = 2551 - } - } - cluster { - seed-nodes = ["akka.tcp://opendaylight-cluster-rpc@:2551"] + 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. - auto-down-unreachable-after = 10s + # snapshot-store.local.dir = "target/snapshots" + # journal.leveldb.dir = "target/journal" + + 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. + + # native = off + } + } } } }