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";
"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";
}
grouping data-store-properties {
- leaf max-shard-data-change-executor-queue-size {
- default 1000;
- type non-zero-uint32-type;
- description "The maximum queue size for each shard's data store data change notification executor.";
- }
-
- leaf max-shard-data-change-executor-pool-size {
- default 20;
- type non-zero-uint32-type;
- description "The maximum thread pool size for each shard's data store data change notification executor.";
- }
-
- leaf max-shard-data-change-listener-queue-size {
- default 1000;
- type non-zero-uint32-type;
- description "The maximum queue size for each shard's data store data change listener.";
- }
-
- leaf max-shard-data-store-executor-queue-size {
- default 5000;
- type non-zero-uint32-type;
- description "The maximum queue size for each shard's data store executor.";
- }
-
leaf shard-transaction-idle-timeout-in-minutes {
default 10;
type non-zero-uint32-type;
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.";
}
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;
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;
}
leaf shard-snapshot-chunk-size {
+ status deprecated;
default 2048000;
type non-zero-uint32-type;
description "When sending a snapshot to a follower, this is the maximum size in bytes for
a chunk of data.";
}
+ leaf maximum-message-slice-size {
+ default 2048000;
+ type non-zero-uint32-type;
+ description "When fragmenting messages thru the akka remoting framework, this is the
+ maximum size in bytes for a message slice.";
+ }
+
leaf use-tell-based-protocol {
default false;
type boolean;
commitIndex trails the leader's journal by more than this amount of entries the follower
is considered to be out-of-sync.";
}
- }
- // 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 backend-aliveness-timer-interval-in-seconds {
+ default 30;
+ type non-zero-uint32-type;
+ description "The timer interval whereby, on expiration after response inactivity from the back-end,
+ the connection to the back-end is torn down and reconnection is attempted.";
+ }
+
+ leaf frontend-request-timeout-in-seconds {
+ default 120; // 2 minutes
+ type non-zero-uint32-type;
+ description "The timeout interval whereby client frontend transaction requests are failed.";
+ }
+
+ leaf frontend-no-progress-timeout-in-seconds {
+ default 900; // 15 minutes
+ type non-zero-uint32-type;
+ description "The timeout interval whereby the client front-end hasn't made progress with the
+ back-end on any request and terminates.";
+ }
+
+ 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.";
+ }
+
+ 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;
- }
+ leaf export-on-recovery {
+ default off;
+ type enumeration {
+ enum off;
+ enum json;
+ }
+ description "Export snapshot and journal during recovery. Possible modes: off(default),
+ json(export to json files). Note that in case of large snapshot,
+ export will take a lot of time.";
}
+
+ leaf recovery-export-base-dir {
+ default persistence-export;
+ type string;
+ description "Directory name for snapshot and journal dumps.";
+ }
+ }
+
+ container data-store-properties-container {
+ uses data-store-properties;
}
}