X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?p=controller.git;a=blobdiff_plain;f=opendaylight%2Fmd-sal%2Fsal-distributed-datastore%2Fsrc%2Fmain%2Fyang%2Fdistributed-datastore-provider.yang;h=46cd50d0c158b6a7e316364a588d28f8364fffce;hp=ecb823e624709bc84f167e522efa09bba06e53f8;hb=d840c921a370f0704ba2d68faf4cfffda08c4440;hpb=ac732369c7ddaaf60faef5eda22fa9c41aad391e diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/main/yang/distributed-datastore-provider.yang b/opendaylight/md-sal/sal-distributed-datastore/src/main/yang/distributed-datastore-provider.yang index ecb823e624..46cd50d0c1 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/main/yang/distributed-datastore-provider.yang +++ b/opendaylight/md-sal/sal-distributed-datastore/src/main/yang/distributed-datastore-provider.yang @@ -36,36 +36,168 @@ module distributed-datastore-provider { config:java-name-prefix DistributedOperationalDataStoreProvider; } + typedef non-zero-uint32-type { + type uint32 { + range "1..max"; + } + } + + typedef operation-timeout-type { + type uint16 { + range "5..max"; + } + } + + typedef heartbeat-interval-type { + type uint16 { + range "100..max"; + } + } + + typedef percentage { + type uint8 { + range "0..100"; + } + } + + 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; + description "The maximum amount of time a shard transaction can be idle without receiving any messages before it self-destructs."; + } + + leaf shard-snapshot-batch-count { + default 20000; + type non-zero-uint32-type; + description "The minimum number of entries to be present in the in-memory journal log before a snapshot is to be taken."; + } + + leaf shard-snapshot-data-threshold-percentage { + default 12; + type percentage; + description "The percentage of Runtime.totalMemory() used by the in-memory journal log before a snapshot is to be taken"; + } + + + leaf shard-hearbeat-interval-in-millis { + default 500; + type heartbeat-interval-type; + description "The interval at which a shard will send a heart beat message to its remote shard."; + } + + leaf shard-election-timeout-factor { + default 2; + type non-zero-uint32-type; + description "The multiplication factor to be used to determine shard election timeout. The shard election timeout + is determined by multiplying shard-heartbeat-interval-in-millis with the shard-election-timeout-factor"; + } + + leaf operation-timeout-in-seconds { + default 5; + type operation-timeout-type; + description "The maximum amount of time for akka operations (remote or local) to complete before failing."; + } + + leaf shard-journal-recovery-log-batch-size { + default 5000; + type non-zero-uint32-type; + description "The maximum number of journal log entries to batch on recovery for a shard before committing to the data store."; + } + + leaf shard-transaction-commit-timeout-in-seconds { + default 30; + type non-zero-uint32-type; + 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"; + } + + leaf shard-transaction-commit-queue-capacity { + default 20000; + type non-zero-uint32-type; + description "The maximum allowed capacity for each shard's transaction commit queue."; + } + + leaf shard-initialization-timeout-in-seconds { + default 300; // 5 minutes + type non-zero-uint32-type; + description "The maximum amount of time to wait for a shard to initialize from persistence + on startup before failing an operation (eg transaction create and change + listener registration)."; + } + + leaf shard-leader-election-timeout-in-seconds { + default 30; + type non-zero-uint32-type; + description "The maximum amount of time to wait for a shard to elect a leader before failing + an operation (eg transaction create)."; + } + + leaf enable-metric-capture { + default false; + type boolean; + description "Enable or disable metric capture."; + } + + leaf bounded-mailbox-capacity { + default 1000; + type non-zero-uint32-type; + description "Max queue size that an actor's mailbox can reach"; + } + + leaf persistent { + default true; + type boolean; + description "Enable or disable data persistence"; + } + + leaf shard-isolated-leader-check-interval-in-millis { + default 5000; + type heartbeat-interval-type; + description "The interval at which the leader of the shard will check if its majority + followers are active and term itself as isolated"; + } + } + // 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-schema-service { + uses config:service-ref { + refine type { + mandatory false; + config:required-identity sal:schema-service; + } } } - } - - leaf max-shard-data-change-executor-queue-size { - default 1000; - type uint16; - 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 uint16; - 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 uint16; - description "The maximum queue size for each shard's data store data change listeners."; - } + + container config-properties { + uses data-store-properties; + } } } @@ -82,23 +214,9 @@ module distributed-datastore-provider { } } - leaf max-shard-data-change-executor-queue-size { - default 1000; - type uint16; - 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 uint16; - 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 uint16; - description "The maximum queue size for each shard's data store data change listeners."; - } - } + container operational-properties { + uses data-store-properties; + } } + } }