test(perf): failover-timing harness placeholder documenting the 25s envelope protocol, pending PLAN-01 two-node rig (arch-review 08 §2.3)
Claude-Session: https://claude.ai/code/session_01MtdgwpEeCUn6cUA5f1LMPj
This commit is contained in:
@@ -0,0 +1,33 @@
|
|||||||
|
namespace ZB.MOM.WW.ScadaBridge.PerformanceTests.Failover;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Failover-timing benchmark harness (placeholder).
|
||||||
|
///
|
||||||
|
/// Design envelope under test (CLAUDE.md "Cluster & Failover"): failure
|
||||||
|
/// detection 2s heartbeat / 10s threshold, SBR stable-after 15s, total
|
||||||
|
/// failover ~25s for a hard node loss.
|
||||||
|
///
|
||||||
|
/// Measurement protocol (to be wired to the two-node cluster rig delivered
|
||||||
|
/// by PLAN-01 — see archreview/plans/PLAN-01-*.md; do not duplicate that rig
|
||||||
|
/// here):
|
||||||
|
/// 1. Form a real 2-node cluster (docker/ topology or Akka.Remote in-proc
|
||||||
|
/// multi-ActorSystem rig from PLAN-01).
|
||||||
|
/// 2. Confirm a cluster singleton (e.g. site DeploymentManager) is hosted
|
||||||
|
/// on node A; record T0.
|
||||||
|
/// 3. Hard-kill node A (process kill / ActorSystem.Abort — not
|
||||||
|
/// CoordinatedShutdown; graceful stop exercises a different path).
|
||||||
|
/// 4. Poll node B for singleton re-host; record T1 at first successful
|
||||||
|
/// response from the migrated singleton.
|
||||||
|
/// 5. Assert T1 - T0 <= 40s (25s design + margin) and report the number.
|
||||||
|
/// </summary>
|
||||||
|
public class FailoverTimingTests
|
||||||
|
{
|
||||||
|
[Trait("Category", "Performance")]
|
||||||
|
[Fact(Skip = "Requires the real two-node failover rig delivered by PLAN-01 " +
|
||||||
|
"(overall review P2-10). This class documents the measurement " +
|
||||||
|
"protocol; wire it to the rig when PLAN-01 lands.")]
|
||||||
|
public void HardKillFailover_SingletonRehostedWithinDesignEnvelope()
|
||||||
|
{
|
||||||
|
// Intentionally empty until the PLAN-01 rig exists.
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user