Add documentation about per-shard settings
[controller.git] / opendaylight / md-sal / sal-clustering-config / src / main / resources / initial / datastore.cfg
1 # This file specifies property settings for the clustered data store to control its behavior. A
2 # property may be applied to every data store type ("config" and "operational") or can be customized
3 # differently for each data store type by prefixing the data store type + '.'. For example, specifying
4 # the "shard-election-timeout-factor" property would be applied to both data stores whereas specifying
5 # "operational.shard-election-timeout-factor" would only apply to the "operational" data store. Similarly,
6 # specifying "config.shard-election-timeout-factor" would only apply to the "config" data store.
7 # Overall flexibility goes even further, as these overrides can also be combined with per-shard specification,
8 # so that you can also use:
9 #   <shard-name>.<setting>
10 #   <datastore-name>.<shard-name>.<setting>
11 # for example:
12 #   topology.shard-election-timeout-factor=2             # override both config/operational for topology shard
13 #   config.topology.shard-election-timeout-factor=5      # override config for topology shard
14 #   operational.topology.shard-election-timeout-factor=7 # override operational for topology shard
15 #
16
17 # The multiplication factor to be used to determine shard election timeout. The shard election timeout
18 # is determined by multiplying shardHeartbeatIntervalInMillis with the shardElectionTimeoutFactor.
19 shard-election-timeout-factor=20
20
21 # The interval at which a shard will send a heart beat message to its remote shard.
22 #shard-heartbeat-interval-in-millis=500
23
24 # The amount by which to divide election timeout in case of a candidate. This serves as a counter-balance
25 # to shard-election-timeout-factor. The default value is 1, i.e. election timeout is the same in all
26 # situations.
27 #shard-candidate-election-timeout-divisor=1
28
29 # The maximum amount of time to wait for a shard to elect a leader before failing an operation (eg transaction create).
30 #shard-leader-election-timeout-in-seconds=30
31
32 # Enable or disable data persistence.
33 #persistent=true
34
35 # Disable persistence for the operational data store by default.
36 operational.persistent=false
37
38 # The maximum amount of time a shard transaction can be idle without receiving any messages before it self-destructs.
39 #shard-transaction-idle-timeout-in-minutes=10
40
41 # The maximum amount of time a shard transaction three-phase commit can be idle without receiving the
42 # next messages before it aborts the transaction.
43 #shard-transaction-commit-timeout-in-seconds=30
44
45 # The maximum allowed capacity for each shard's transaction commit queue.
46 #shard-transaction-commit-queue-capacity=20000
47
48 # The maximum amount of time to wait for a shard to initialize from persistence on startup before
49 # failing an operation (eg transaction create and change listener registration).
50 #shard-initialization-timeout-in-seconds=300
51
52 # The minimum number of entries to be present in the in-memory journal log before a snapshot is to be taken.
53 #shard-snapshot-batch-count=20000
54
55 # The percentage of Runtime.totalMemory() used by the in-memory journal log before a snapshot is to be taken.
56 #shard-snapshot-data-threshold-percentage=12
57
58 # The interval at which the leader of the shard will check if its majority followers are active and
59 # term itself as isolated.
60 #shard-isolated-leader-check-interval-in-millis=5000
61
62 # The number of transaction modification operations (put, merge, delete) to batch before sending to the
63 # shard transaction actor. Batching improves performance as less modifications messages are sent to the
64 # actor and thus lessens the chance that the transaction actor's mailbox queue could get full.
65 #shard-batched-modification-count=1000
66
67 # The maximum amount of time for akka operations (remote or local) to complete before failing.
68 #operation-timeout-in-seconds=5
69
70 # The initial number of transactions per second that are allowed before the data store should begin
71 # applying back pressure. This number is only used as an initial guidance, subsequently the datastore
72 # measures the latency for a commit and auto-adjusts the rate limit.
73 #transaction-creation-initial-rate-limit=100
74
75 # The maximum thread pool size for each shard's data store data change notification executor.
76 #max-shard-data-change-executor-pool-size=20
77
78 # The maximum queue size for each shard's data store data change notification executor.
79 #max-shard-data-change-executor-queue-size=1000
80
81 # The maximum queue size for each shard's data store data change listener.
82 #max-shard-data-change-listener-queue-size=1000
83
84 # The maximum queue size for each shard's data store executor.
85 #max-shard-data-store-executor-queue-size=5000
86
87 # A fully qualified java class name. The class should implement
88 # org.opendaylight.controller.cluster.raft.policy.RaftPolicy. This java class should be
89 # accessible to the distributed data store OSGi module so that it can be dynamically loaded via
90 # reflection. For now let's assume that these classes to customize raft behaviors should be
91 # present in the distributed data store module itself. If this property is set to a class which
92 # cannot be found then the default raft policy will be applied
93 #custom-raft-policy-implementation=
94
95 # When fragmenting messages thru the akka remoting framework, this is the maximum size in bytes
96 # for a message slice.
97 #maximum-message-slice-size=20480000
98
99 # Enable tell-based protocol between frontend (applications) and backend (shards). Using this protocol
100 # should avoid AskTimeoutExceptions seen under heavy load. Defaults to false (use ask-based protocol).
101 #use-tell-based-protocol=true
102
103 # Tune the maximum number of entries a follower is allowed to lag behind the leader before it is
104 # considered out-of-sync. This flag may require tuning in face of a large number of small transactions.
105 #sync-index-threshold=10
106
107 # Record new transaction allocation stack trace, useful for debugging.  This makes the log include
108 # the stack trace of the creator of the Tx when there is an exception when the transaction is submitted 
109 # (e.g. for a failed validation).  Defaults to false due to performance impact.
110 #transaction-debug-context-enabled=true
111
112 # Multiplicator of shard-leader-election-timeout-in-seconds for the purposes of initial datastore
113 # convergence. Each frontend datastore instance will wait specified amount of time before becoming
114 # exposed as a service. A value of 0 indicates waiting forever. Defaults to 3.
115 initial-settle-timeout-multiplier=3