Switch default persistence to segmented-journal
[controller.git] / opendaylight / md-sal / sal-clustering-config / src / main / resources / initial / factory-akka.conf
index 99bba6bba11b8e9653f6448fb6dc1b976ff99217..464645b6ae3aef4f041e97fe83edcd0028739943 100644 (file)
@@ -63,11 +63,13 @@ odl-cluster-data {
         java = "akka.serialization.JavaSerializer"
         proto = "akka.remote.serialization.ProtobufSerializer"
         readylocal = "org.opendaylight.controller.cluster.datastore.messages.ReadyLocalTransactionSerializer"
+        simpleReplicatedLogEntry = "org.opendaylight.controller.cluster.raft.persisted.SimpleReplicatedLogEntrySerializer"
       }
 
       serialization-bindings {
         "com.google.protobuf.Message" = proto
         "org.opendaylight.controller.cluster.datastore.messages.ReadyLocalTransaction" = readylocal
+        "org.opendaylight.controller.cluster.raft.persisted.SimpleReplicatedLogEntry" = simpleReplicatedLogEntry
       }
 
       default-dispatcher {
@@ -84,6 +86,9 @@ odl-cluster-data {
     }
     remote {
       log-remote-lifecycle-events = off
+      # Disable passive connections, as we are seeing issues
+      # with read-only associations
+      use-passive-connections = off
 
       netty.tcp {
         maximum-frame-size = 419430400
@@ -93,8 +98,8 @@ odl-cluster-data {
 
       artery {
         advanced {
-          maximum-frame-size = 1 GiB
-          maximum-large-frame-size = 1 GiB
+          #maximum-frame-size = 256 KiB
+          #maximum-large-frame-size = 2 MiB
         }
       }
     }
@@ -118,7 +123,33 @@ odl-cluster-data {
     }
 
     persistence {
-      journal.plugin = akka.persistence.journal.leveldb
+      journal {
+        # This would activate the deprecated levedb persistence plugin. This plugin was used
+        # by default by all OpenDaylight versions, but is considered not ready for production
+        # use by Akka. Magnesium defaults to segmented-file journal (below) and this option will
+        # be removed in a future release.
+        #
+        # plugin = akka.persistence.journal.leveldb
+
+        # The following activates the default segmented file journal. Each persistent actor
+        # is stored in a separate directory, with multiple segment files. Segments are removed
+        # when they are not longer required.
+        #
+        plugin = akka.persistence.journal.segmented-file
+
+        segmented-file {
+          class = "org.opendaylight.controller.akka.segjournal.SegmentedFileJournal"
+          # Root directory for segmented journal storage
+          root-directory = "segmented-journal"
+          # Maximum size of a single entry in the segmented journal
+          max-entry-size = 16M
+          # Maximum size of a segment
+          max-segment-size = 128M
+          # Map each segment into memory. Note that while this can improve performance,
+          # it will also place additional burden on system resources.
+          memory-mapped = false
+        }
+      }
 
       snapshot-store.local.class = "org.opendaylight.controller.cluster.persistence.LocalSnapshotStore"
       snapshot-store.plugin = akka.persistence.snapshot-store.local