Add direct in-memory journal threshold
[controller.git] / opendaylight / md-sal / sal-distributed-datastore / src / main / yang / distributed-datastore-provider.yang
index be658835be0c0162b3d9b6feb192f311d99fa6b9..da0c74831d0da744c8708c662b174bb437a5f5bf 100644 (file)
@@ -5,13 +5,6 @@ module distributed-datastore-provider {
     namespace "urn:opendaylight:params:xml:ns:yang:controller:config:distributed-datastore-provider";
     prefix "distributed-datastore-provider";
 
-    import config { prefix config; revision-date 2013-04-05; }
-    import rpc-context { prefix rpcx; revision-date 2013-06-17; }
-    import opendaylight-config-dom-datastore {prefix config-dom-store-spi;}
-    import opendaylight-operational-dom-datastore {prefix operational-dom-store-spi;}
-    import opendaylight-md-sal-dom {prefix sal;}
-    import actor-system-provider-service {prefix actor-system;}
-
     description
         "This module contains the base YANG definitions for
         the distributed datastore provider implementation";
@@ -21,22 +14,6 @@ module distributed-datastore-provider {
             "Initial revision.";
     }
 
-    // This is the definition of the service implementation as a module identity.
-    identity distributed-config-datastore-provider {
-            base config:module-type;
-            config:provided-service config-dom-store-spi:config-dom-datastore;
-            // Specifies the prefix for generated java classes.
-            config:java-name-prefix DistributedConfigDataStoreProvider;
-    }
-
-     // This is the definition of the service implementation as a module identity.
-     identity distributed-operational-datastore-provider {
-                base config:module-type;
-                config:provided-service operational-dom-store-spi:operational-dom-datastore;
-                // Specifies the prefix for generated java classes.
-                config:java-name-prefix DistributedOperationalDataStoreProvider;
-     }
-
     typedef non-zero-uint32-type {
         type uint32 {
             range "1..max";
@@ -101,7 +78,17 @@ module distributed-datastore-provider {
         leaf shard-snapshot-data-threshold-percentage {
             default 12;
             type percentage;
-            description "The percentage of Runtime.maxMemory() used by the in-memory journal log before a snapshot is to be taken";
+            description "The percentage of Runtime.maxMemory() used by the in-memory journal log before a snapshot is to be taken.
+                         Disabled, if direct threshold is enabled.";
+        }
+
+        leaf shard-snapshot-data-threshold {
+            default 0;
+            type uint32 {
+                range "0..max";
+            }
+            description "The threshold of in-memory journal size before a snapshot is to be taken. If set to 0, direct threshold
+                         is disabled and percentage is used instead.";
         }
 
 
@@ -167,6 +154,19 @@ module distributed-datastore-provider {
                           an operation (eg transaction create).";
         }
 
+        leaf initial-settle-timeout-multiplier {
+            default 3;
+            type uint32;
+            description "Multiplier for the maximum amount of time to wait for a shard to elect a leader.
+                         Zero value means wait indefinitely (as long as it takes).";
+        }
+
+        leaf recovery-snapshot-interval-seconds {
+            default 0;
+            type uint32;
+            description "Interval after which a snapshot should be taken during the recovery process.";
+        }
+
         leaf shard-batched-modification-count {
             default 1000;
             type non-zero-uint32-type;
@@ -194,6 +194,12 @@ module distributed-datastore-provider {
             description "Enable or disable data persistence";
         }
 
+        leaf snapshotOnRootOverwrite {
+            default false;
+            type boolean;
+            description "Enable or disable capturing snapshots on DataTree root overwrites";
+        }
+
         leaf shard-isolated-leader-check-interval-in-millis {
             default 5000;
             type heartbeat-interval-type;
@@ -284,65 +290,22 @@ module distributed-datastore-provider {
             description "The timeout interval whereby the client front-end hasn't made progress with the
                          back-end on any request and terminates.";
         }
-    }
 
-    container data-store-properties-container {
-        uses data-store-properties;
-    }
+        leaf initial-payload-serialized-buffer-capacity {
+            default 512;
+            type non-zero-uint32-type;
+            description "The initial buffer capacity, in bytes, to use when serializing message payloads.";
+        }
 
-    // Augments the 'configuration' choice node under modules/module.
-    augment "/config:modules/config:module/config:configuration" {
-        case distributed-config-datastore-provider {
-            when "/config:modules/config:module/config:type = 'distributed-config-datastore-provider'";
-                container config-schema-service {
-                    uses config:service-ref {
-                        refine type {
-                            mandatory false;
-                            config:required-identity sal:schema-service;
-                        }
-                    }
-                }
-
-                container config-actor-system-provider {
-                    uses config:service-ref {
-                        refine type {
-                            mandatory false;
-                            config:required-identity actor-system:actor-system-provider-service;
-                        }
-                    }
-                }
-
-                container config-properties {
-                    uses data-store-properties;
-                }
+        leaf use-lz4-compression {
+            default false;
+            type boolean;
+            description "Use lz4 compression for snapshots, sent from leader to follower, for snapshots stored
+                        by LocalSnapshotStore, use akka.conf configuration.";
         }
     }
 
-    // Augments the 'configuration' choice node under modules/module.
-    augment "/config:modules/config:module/config:configuration" {
-        case distributed-operational-datastore-provider {
-            when "/config:modules/config:module/config:type = 'distributed-operational-datastore-provider'";
-                container operational-schema-service {
-                    uses config:service-ref {
-                        refine type {
-                            mandatory false;
-                            config:required-identity sal:schema-service;
-                        }
-                    }
-                }
-
-                container operational-actor-system-provider {
-                    uses config:service-ref {
-                        refine type {
-                            mandatory false;
-                            config:required-identity actor-system:actor-system-provider-service;
-                        }
-                    }
-                }
-
-                container operational-properties {
-                    uses data-store-properties;
-                }
-        }
+    container data-store-properties-container {
+        uses data-store-properties;
     }
 }