perf(runtime): split trigger evals from the blocking pool; bounded, deadline-aware execution

This commit is contained in:
Joseph Doherty
2026-08-14 22:36:15 -04:00
parent 312216ff2b
commit c4fc1f8ecd
42 changed files with 3673 additions and 1251 deletions
@@ -84,4 +84,64 @@ public class SiteRuntimeOptionsValidatorTests
Assert.True(result.Failed);
Assert.Contains("AlarmPublishQueueCapacity", result.FailureMessage);
}
// ── WP3.1 options ──────────────────────────────────────────────────────────────
/// <summary>
/// The ceiling is the upper bound of the instance-scaled pool; below the floor it would
/// silently shrink the configured pool instead of growing it.
/// </summary>
[Fact]
public void ScriptExecutionMaxThreadCountBelowThreadCount_IsRejected()
{
var result = Validate(new SiteRuntimeOptions
{
ScriptExecutionThreadCount = 8,
ScriptExecutionMaxThreadCount = 4
});
Assert.True(result.Failed);
Assert.Contains("ScriptExecutionMaxThreadCount", result.FailureMessage);
}
[Fact]
public void EqualScriptExecutionThreadCountAndMax_IsAccepted()
{
var result = Validate(new SiteRuntimeOptions
{
ScriptExecutionThreadCount = 8,
ScriptExecutionMaxThreadCount = 8
});
Assert.True(result.Succeeded, result.FailureMessage);
}
/// <summary>A zero gate would park every Expression trigger on the node forever.</summary>
[Fact]
public void ZeroTriggerEvalMaxConcurrency_IsRejected()
{
var result = Validate(new SiteRuntimeOptions { TriggerEvalMaxConcurrency = 0 });
Assert.True(result.Failed);
Assert.Contains("TriggerEvalMaxConcurrency", result.FailureMessage);
}
[Fact]
public void ZeroTriggerEvalTimeoutSeconds_IsRejected()
{
var result = Validate(new SiteRuntimeOptions { TriggerEvalTimeoutSeconds = 0 });
Assert.True(result.Failed);
Assert.Contains("TriggerEvalTimeoutSeconds", result.FailureMessage);
}
/// <summary>A zero cap would shed every trigger, silently disabling all scripts.</summary>
[Fact]
public void ZeroMaxConcurrentRunsPerScript_IsRejected()
{
var result = Validate(new SiteRuntimeOptions { MaxConcurrentRunsPerScript = 0 });
Assert.True(result.Failed);
Assert.Contains("MaxConcurrentRunsPerScript", result.FailureMessage);
}
}