1 // vi: set smarttab et sw=4 tabstop=4:
2 module distributed-datastore-provider {
5 namespace "urn:opendaylight:params:xml:ns:yang:controller:config:distributed-datastore-provider";
6 prefix "distributed-datastore-provider";
8 import config { prefix config; revision-date 2013-04-05; }
9 import rpc-context { prefix rpcx; revision-date 2013-06-17; }
10 import opendaylight-config-dom-datastore {prefix config-dom-store-spi;}
11 import opendaylight-operational-dom-datastore {prefix operational-dom-store-spi;}
12 import opendaylight-md-sal-dom {prefix sal;}
15 "This module contains the base YANG definitions for
16 the distributed datastore provider implementation";
18 revision "2014-06-12" {
23 // This is the definition of the service implementation as a module identity.
24 identity distributed-config-datastore-provider {
25 base config:module-type;
26 config:provided-service config-dom-store-spi:config-dom-datastore;
27 // Specifies the prefix for generated java classes.
28 config:java-name-prefix DistributedConfigDataStoreProvider;
31 // This is the definition of the service implementation as a module identity.
32 identity distributed-operational-datastore-provider {
33 base config:module-type;
34 config:provided-service operational-dom-store-spi:operational-dom-datastore;
35 // Specifies the prefix for generated java classes.
36 config:java-name-prefix DistributedOperationalDataStoreProvider;
39 typedef non-zero-uint32-type {
45 typedef operation-timeout-type {
51 typedef heartbeat-interval-type {
63 grouping data-store-properties {
64 leaf max-shard-data-change-executor-queue-size {
66 type non-zero-uint32-type;
67 description "The maximum queue size for each shard's data store data change notification executor.";
70 leaf max-shard-data-change-executor-pool-size {
72 type non-zero-uint32-type;
73 description "The maximum thread pool size for each shard's data store data change notification executor.";
76 leaf max-shard-data-change-listener-queue-size {
78 type non-zero-uint32-type;
79 description "The maximum queue size for each shard's data store data change listener.";
82 leaf max-shard-data-store-executor-queue-size {
84 type non-zero-uint32-type;
85 description "The maximum queue size for each shard's data store executor.";
88 leaf shard-transaction-idle-timeout-in-minutes {
90 type non-zero-uint32-type;
91 description "The maximum amount of time a shard transaction can be idle without receiving any messages before it self-destructs.";
94 leaf shard-snapshot-batch-count {
96 type non-zero-uint32-type;
97 description "The minimum number of entries to be present in the in-memory journal log before a snapshot is to be taken.";
100 leaf shard-snapshot-data-threshold-percentage {
103 description "The percentage of Runtime.totalMemory() used by the in-memory journal log before a snapshot is to be taken";
107 leaf shard-hearbeat-interval-in-millis {
109 type heartbeat-interval-type;
110 description "The interval at which a shard will send a heart beat message to its remote shard.";
113 leaf shard-election-timeout-factor {
115 type non-zero-uint32-type;
116 description "The multiplication factor to be used to determine shard election timeout. The shard election timeout
117 is determined by multiplying shard-heartbeat-interval-in-millis with the shard-election-timeout-factor";
120 leaf operation-timeout-in-seconds {
122 type operation-timeout-type;
123 description "The maximum amount of time for akka operations (remote or local) to complete before failing.";
126 leaf shard-journal-recovery-log-batch-size {
128 type non-zero-uint32-type;
129 description "The maximum number of journal log entries to batch on recovery for a shard before committing to the data store.";
132 leaf shard-transaction-commit-timeout-in-seconds {
134 type non-zero-uint32-type;
135 description "The maximum amount of time a shard transaction three-phase commit can be idle without receiving the next messages before it aborts the transaction";
138 leaf shard-transaction-commit-queue-capacity {
140 type non-zero-uint32-type;
141 description "The maximum allowed capacity for each shard's transaction commit queue.";
144 leaf shard-initialization-timeout-in-seconds {
145 default 300; // 5 minutes
146 type non-zero-uint32-type;
147 description "The maximum amount of time to wait for a shard to initialize from persistence
148 on startup before failing an operation (eg transaction create and change
149 listener registration).";
152 leaf shard-leader-election-timeout-in-seconds {
154 type non-zero-uint32-type;
155 description "The maximum amount of time to wait for a shard to elect a leader before failing
156 an operation (eg transaction create).";
159 leaf enable-metric-capture {
162 description "Enable or disable metric capture.";
165 leaf bounded-mailbox-capacity {
167 type non-zero-uint32-type;
168 description "Max queue size that an actor's mailbox can reach";
174 description "Enable or disable data persistence";
177 leaf shard-isolated-leader-check-interval-in-millis {
179 type heartbeat-interval-type;
180 description "The interval at which the leader of the shard will check if its majority
181 followers are active and term itself as isolated";
185 // Augments the 'configuration' choice node under modules/module.
186 augment "/config:modules/config:module/config:configuration" {
187 case distributed-config-datastore-provider {
188 when "/config:modules/config:module/config:type = 'distributed-config-datastore-provider'";
189 container config-schema-service {
190 uses config:service-ref {
193 config:required-identity sal:schema-service;
198 container config-properties {
199 uses data-store-properties;
204 // Augments the 'configuration' choice node under modules/module.
205 augment "/config:modules/config:module/config:configuration" {
206 case distributed-operational-datastore-provider {
207 when "/config:modules/config:module/config:type = 'distributed-operational-datastore-provider'";
208 container operational-schema-service {
209 uses config:service-ref {
212 config:required-identity sal:schema-service;
217 container operational-properties {
218 uses data-store-properties;