Add Carbon SR2 cluster test document.
[integration/test.git] / docs / cluster / carbon / tests.rst
diff --git a/docs/cluster/carbon/tests.rst b/docs/cluster/carbon/tests.rst
new file mode 100644 (file)
index 0000000..6f2a82d
--- /dev/null
@@ -0,0 +1,321 @@
+
+List of test cases
+^^^^^^^^^^^^^^^^^^
+
+Each test case has a shorter code, tables with results use that code.
+In result tables, the code is a link to this document,
+due to coala ReST requirements, the codes are (self-pointing) links also in this document.
+
+Other links point to scenario definitions ao caveat items.
+
++ `DOMDataBroker`_: Producers make 1000 transactions per second, except BGP which works full speed.
+
+ + `Leader stability`_: BGP inject benchmark (thus module shards only), `300k prefixes`_, 1 Python peer. Progress tracked by counting prefixes in example-ipv4-topology.
+
+  + Ask-based protocol:
+
+   .. _bgp-1n-300k-a:
+
+   + Single member: bgp-1n-300k-a_
+
+  + `Tell-based protocol`_:
+
+   .. _bgp-1n-300k-t:
+
+   + Single member: bgp-1n-300k-t_
+
+   + Three members:
+
+    .. _bgp-3n-300k-ll-t:
+
+    + Leaders local: bgp-3n-300k-ll-t_
+
+    .. _bgp-3n-300k-lr-t:
+
+    + `Leaders remote`_: bgp-3n-300k-lr-t_
+
+    .. _bgp-3n-300k-t-long:
+
+    + `Longevity`_: bgp-3n-300k-t-long_
+
+ + `Clean leader shutdown`_, `Tell-based protocol`_:
+
+  + Module-based shards:
+
+   .. _ddb-cls-ms-ll-t:
+
+   + Shard leader local to producer: ddb-cls-ms-ll-t_
+
+   .. _ddb-cls-ms-lr-t:
+
+   + Shard leader remote to producer: ddb-cls-ms-lr-t_
+
+  + `Prefix-based shards`_:
+
+   .. _ddb-cls-ps-ll-t:
+
+   + Shard leader local to producer: ddb-cls-ps-ll-t_
+
+   .. _ddb-cls-ps-lr-t:
+
+   + Shard leader remote to producer: ddb-cls-ps-lr-t_
+
+ + `Explicit leader movement`_, `Tell-based protocol`_:
+
+  + Module-based shards:
+
+   .. _ddb-elm-ms-lr-t:
+
+   + Local leader to remote: ddb-elm-ms-lr-t_
+
+   .. _ddb-elm-ms-rr-t:
+
+   + Remote leader to other remote: ddb-elm-ms-rr-t_
+
+   .. _ddb-elm-ms-rl-t:
+
+   + Remote leader to local: ddb-elm-ms-rl-t_
+
+   .. _ddb-elm-mc-t-long:
+
+   + Longevity (randomized direction): ddb-elm-mc-t-long_
+
+  + `Prefix-based shards`_:
+
+   .. _ddb-elm-ps-lr-t:
+
+   + Local leader to remote: ddb-elm-ps-lr-t_
+
+   .. _ddb-elm-ps-rr-t:
+
+   + Remote leader to other remote: ddb-elm-ps-rr-t_
+
+   .. _ddb-elm-ps-rl-t:
+
+   + Remote leader to local: ddb-elm-ps-rl-t_
+
+ + `Leader isolation`_ (`network partition only`_), `Tell-based protocol`_:
+
+  + Module-based shards:
+
+   .. _ddb-li-ms-st-t:
+
+   + Heal within transaction timeout: ddb-li-ms-st-t_
+
+   .. _ddb-li-ms-dt-t:
+
+   + Heal after transaction timeout: ddb-li-ms-dt-t_
+
+  + `Prefix-based shards`_:
+
+   .. _ddb-li-ps-st-t:
+
+   + Heal within transaction timeout: ddb-li-ps-st-t_
+
+   .. _ddb-li-ps-dt-t:
+
+   + Heal after transaction timeout: ddb-li-ps-dt-t_
+
+ + `Client isolation`_, `Tell-based protocol`_:
+
+  + Module-based shards:
+
+   + Leader local:
+
+    .. _ddb-ci-ms-ll-st-t:
+
+    + `Simple transactions`_: ddb-ci-ms-ll-st-t_
+
+    .. _ddb-ci-ms-ll-ct-t:
+
+    + Transaction chain: ddb-ci-ms-ll-ct-t_
+
+   + Leader remote:
+
+    .. _ddb-ci-ms-lr-st-t:
+
+    + Simple transactions: ddb-ci-ms-lr-st-t_
+
+    .. _ddb-ci-ms-lr-ct-t:
+
+    + Transaction chain: ddb-ci-ms-lr-ct-t_
+
+  + `Prefix-based shards`_:
+
+   + Leader local:
+
+    .. _ddb-ci-ps-ll-it-t:
+
+    + Isolated transactions: ddb-ci-ps-ll-it-t_
+
+    .. _ddb-ci-ps-ll-nt-t:
+
+    + Non-isolated transactions: ddb-ci-ps-ll-nt-t_
+
+   + Leader remote:
+
+    .. _ddb-ci-ps-lr-it-t:
+
+    + Isolated transactions: ddb-ci-ps-lr-it-t_
+
+    .. _ddb-ci-ps-lr-nt-t:
+
+    + Non-isolated transactions: ddb-ci-ps-lr-nt-t_
+
+ + `Listener stablity`_, `Tell-based protocol`_:
+
+  + Module-based shards:
+
+   .. _ddb-ls-ms-lr-t:
+
+   + Local to remote: ddb-ls-ms-lr-t_
+
+   .. _ddb-ls-ms-rr-t:
+
+   + Remote to remote: ddb-ls-ms-rr-t_
+
+   .. _ddb-ls-ms-rl-t:
+
+   + Remote to local: ddb-ls-ms-rl-t_
+
+  + `Prefix-based shards`_:
+
+   .. _ddb-ls-ps-lr-t:
+
+   + Local to remote: ddb-ls-ps-lr-t_
+
+   .. _ddb-ls-ps-rr-t:
+
+   + Remote to remote: ddb-ls-ps-rr-t_
+
+   .. _ddb-ls-ps-rl-t:
+
+   + Remote to local: ddb-ls-ps-rl-t_
+
++ `DOMRpcBroker`_, ask-based protocol:
+
+ + `RPC Provider Precedence`_:
+
+  .. _drb-rpp-ms-a:
+
+  + Functional: drb-rpp-ms-a_
+
+  .. _drb-rpp-ms-a-long:
+
+  + Longevity: drb-rpp-ms-a-long_
+
+ + `RPC Provider Partition and Heal`_:
+
+  .. _drb-rph-ms-a:
+
+  + Functional: drb-rph-ms-a_
+
+  .. _drb-rph-ms-a-long:
+
+  + Longevity: drb-rph-ms-a-long_
+
+ .. _drb-app-ms-a:
+
+ + `Action Provider Precedence`_: drb-app-ms-a_
+
+ .. _drb-aph-ms-a:
+
+ + `Action Provider Partition and Heal`_: drb-aph-ms-a_
+
++ `DOMNotificationBroker`_: Only for 1 member, ask-based protocol.
+
+ + `No-loss rate`_: Publisher-subscriber pairs, 5k nps per pair.
+
+  .. _dnb-1n-60k-a:
+
+  + Functional (5 minute tests for 1, 4 and 12 pairs): dnb-1n-60k-a_
+
+  .. _dnb-1n-60k-a-long:
+
+  + Longevity (12 pairs): dnb-1n-60k-a-long_
+
++ `Cluster Singleton`_:
+
+ + Ask-based protocol:
+
+  .. _ss-ms-ms-a:
+
+  + `Master Stability`_: ss-ms-ms-a_
+
+  + `Partition and Heal`_:
+
+   .. _ss-ph-ms-a:
+
+   + Functional: ss-ph-ms-a_
+
+   .. _ss-ph-ms-a-long:
+
+   + Longevity: ss-ph-ms-a-long_
+
+  + `Chasing the Leader`_:
+
+   .. _ss-cl-ms-a:
+
+   + Functional: ss-cl-ms-a_
+
+   .. _ss-cl-ms-a-long:
+
+   + Longevity: ss-cl-ms-a-long_
+
+ + `Tell-based protocol`_:
+
+  .. _ss-ms-ms-t:
+
+  + `Master Stability`_: ss-ms-ms-t_
+
+  .. _ss-ph-ms-t:
+
+  + `Partition and Heal`_: ss-ph-ms-t_
+
+  .. _ss-cl-ms-t:
+
+  + `Chasing the Leader`_: ss-cl-ms-t_
+
++ `Netconf system tests`_ (ask-based protocol, module-based shards):
+
+ .. _netconf-ba-ms-a:
+
+ + `Basic access`_: netconf-ba-ms-a_
+
+ .. _netconf-ok-ms-a:
+
+ + `Owner killed`_: netconf-ok-ms-a_
+
+ .. _netconf-rr-ms-a:
+
+ + `Rolling restarts`_: netconf-rr-ms-a_
+
+.. _`300k prefixes`: caveats.html#reduced-bgp-scaling
+.. _`Action Provider Partition and Heal`: scenarios.html#action-provider-partition-and-heal
+.. _`Action Provider Precedence`: scenarios.html#action-provider-precedence
+.. _`Basic access`: scenarios.html#basic-configuration-and-mount-point-access
+.. _`Chasing the Leader`: scenarios.html#chasing-the-leader
+.. _`Clean leader shutdown`: scenarios.html#clean-leader-shutdown
+.. _`Client isolation`: scenarios.html#client-isolation
+.. _`Cluster Singleton`: scenarios.html#cluster-singleton
+.. _`DOMDataBroker`: scenarios.html#domdatabroker
+.. _`DOMNotificationBroker`: scenarios.html#domnotificationbroker
+.. _`DOMRpcBroker`: scenarios.html#domrpcbroker
+.. _`Explicit leader movement`: scenarios.html#explicit-leader-movement
+.. _`Leader isolation`: scenarios.html#leader-isolation
+.. _`Leader stability`: scenarios.html#leader-stability
+.. _`Leaders remote`: caveats.html#initial-leader-placement
+.. _`Listener stablity`: scenarios.html#listener-isolation
+.. _`Longevity`: scenarios.html#controller-cluster-services-longevity-tests
+.. _`Master Stability`: scenarios.html#master-stability
+.. _`Netconf system tests`: scenarios.html#netconf-system-tests
+.. _`network partition only`: caveats.html#isolation-mechanics
+.. _`No-loss rate`: scenarios.html#no-loss-rate
+.. _`Owner killed`: scenarios.html#device-owner-killed
+.. _`Partition and Heal`: scenarios.html#partition-and-heal
+.. _`Prefix-based shards`: caveats.html#prefix-based-shards
+.. _`Rolling restarts`: scenarios.html#rolling-restarts
+.. _`RPC Provider Partition and Heal`: scenarios.html#rpc-provider-partition-and-heal
+.. _`RPC Provider Precedence`: scenarios.html#rpc-provider-precedence
+.. _`Simple transactions`: caveats.html#producer-options
+.. _`Tell-based protocol`: caveats.html#tell-based-protocol