feat: verify bounded simultaneous schedule execution
This commit is contained in:
10
docs/reports/data/phase-6-schedule-load/database.json
Normal file
10
docs/reports/data/phase-6-schedule-load/database.json
Normal file
@@ -0,0 +1,10 @@
|
||||
{
|
||||
"mysql": "8.4.10",
|
||||
"tasks": 158,
|
||||
"schedules": 38,
|
||||
"occurrences": 158,
|
||||
"succeeded_tasks": 154,
|
||||
"foreign_key_count": 0,
|
||||
"unpaused_schedules": 0,
|
||||
"duplicate_tasks_in_occurrences": 0
|
||||
}
|
||||
110
docs/reports/data/phase-6-schedule-load/deadline-24.json
Normal file
110
docs/reports/data/phase-6-schedule-load/deadline-24.json
Normal file
@@ -0,0 +1,110 @@
|
||||
{
|
||||
"run_id": "abd51b013ef637e214f3b868d73d1e3c",
|
||||
"go_version": "go1.25.14",
|
||||
"goos": "linux",
|
||||
"goarch": "arm64",
|
||||
"started_at": "2026-09-20T05:52:03.516120763Z",
|
||||
"finished_at": "2026-09-20T05:52:08.536435043Z",
|
||||
"requests_per_schedule": 12,
|
||||
"schedules": 2,
|
||||
"expected_occurrences": 24,
|
||||
"workers": 2,
|
||||
"capacity_per_worker": 2,
|
||||
"interval_ms": 1000,
|
||||
"start_delay_ms": 1000,
|
||||
"run_timeout_ms": 5000,
|
||||
"poll_interval_ms": 100,
|
||||
"http_timeout_ms": 5000,
|
||||
"queue": {
|
||||
"max_unfinished_tasks": 100000,
|
||||
"unfinished_tasks": "0",
|
||||
"id": "17f6a89f5d68895600d3bb2185fbadb4",
|
||||
"namespace_id": "65aefc4c4d7c0441cda02794632c7408",
|
||||
"name": "schedule",
|
||||
"paused": false,
|
||||
"max_concurrency": 4,
|
||||
"rate_per_second": 10,
|
||||
"revision": "1"
|
||||
},
|
||||
"schedule_start": "2026-09-20T05:52:04.517253Z",
|
||||
"schedule_end": "2026-09-20T05:52:16.517253Z",
|
||||
"plans": [
|
||||
{
|
||||
"calendar_version": "go1.27.1-b2d18a7c8fa8",
|
||||
"effective_at": "2026-09-20T05:52:03.517994Z",
|
||||
"index": 0,
|
||||
"id": "c7d2bc3caea7b7e5ea7403783e98306a",
|
||||
"create_key": "schedule-abd51b013ef637e214f3b868d73d1e3c-00-create",
|
||||
"resume_key": "schedule-abd51b013ef637e214f3b868d73d1e3c-00-resume",
|
||||
"resume_revision": "1",
|
||||
"resumed": true,
|
||||
"exhausted": false,
|
||||
"pause_key": "schedule-abd51b013ef637e214f3b868d73d1e3c-00-pause-0",
|
||||
"pause_revision": "4",
|
||||
"pause_confirmed": true,
|
||||
"occurrences": 3,
|
||||
"fired": 3,
|
||||
"verified_success": 1
|
||||
},
|
||||
{
|
||||
"calendar_version": "go1.27.1-b2d18a7c8fa8",
|
||||
"effective_at": "2026-09-20T05:52:03.521008Z",
|
||||
"index": 1,
|
||||
"id": "f86e04e63a42f805d5c146b2594d4d0f",
|
||||
"create_key": "schedule-abd51b013ef637e214f3b868d73d1e3c-01-create",
|
||||
"resume_key": "schedule-abd51b013ef637e214f3b868d73d1e3c-01-resume",
|
||||
"resume_revision": "1",
|
||||
"resumed": true,
|
||||
"exhausted": false,
|
||||
"pause_key": "schedule-abd51b013ef637e214f3b868d73d1e3c-01-pause-0",
|
||||
"pause_revision": "4",
|
||||
"pause_confirmed": true,
|
||||
"occurrences": 3,
|
||||
"fired": 3,
|
||||
"verified_success": 1
|
||||
}
|
||||
],
|
||||
"occurrences": 6,
|
||||
"fired": 6,
|
||||
"verified_success": 2,
|
||||
"unobserved": 18,
|
||||
"unverified": 4,
|
||||
"handler_calls": 2,
|
||||
"duplicate_invocations": 0,
|
||||
"unconfirmed_invocations": 0,
|
||||
"worker_started": 2,
|
||||
"worker_reconnects": 0,
|
||||
"worker_renewals_confirmed": 0,
|
||||
"trigger_lag": {
|
||||
"count": 2,
|
||||
"p50_ms": 504.563,
|
||||
"p95_ms": 515.272,
|
||||
"p99_ms": 515.272,
|
||||
"max_ms": 515.272
|
||||
},
|
||||
"queue_wait": {
|
||||
"count": 2,
|
||||
"p50_ms": 1530.163,
|
||||
"p95_ms": 1535.71,
|
||||
"p99_ms": 1535.71,
|
||||
"max_ms": 1535.71
|
||||
},
|
||||
"authorized_execution": {
|
||||
"count": 2,
|
||||
"p50_ms": 9.803,
|
||||
"p95_ms": 20.264,
|
||||
"p99_ms": 20.264,
|
||||
"max_ms": 20.264
|
||||
},
|
||||
"completion": {
|
||||
"count": 2,
|
||||
"p50_ms": 2055.238,
|
||||
"p95_ms": 2060.537,
|
||||
"p99_ms": 2060.537,
|
||||
"max_ms": 2060.537
|
||||
},
|
||||
"errors": {
|
||||
"RUN_TIMEOUT": 1
|
||||
},
|
||||
"complete": false
|
||||
}
|
||||
113
docs/reports/data/phase-6-schedule-load/environment.json
Normal file
113
docs/reports/data/phase-6-schedule-load/environment.json
Normal file
@@ -0,0 +1,113 @@
|
||||
{
|
||||
"date_local": "2026-09-20",
|
||||
"timezone": "Asia/Shanghai",
|
||||
"source_base_commit": "71c33ea",
|
||||
"declared_go": "1.27.1",
|
||||
"test_go": "go1.25.14",
|
||||
"temporary_modfile": true,
|
||||
"mysql": "8.4.10",
|
||||
"architecture": "arm64",
|
||||
"docker_vm_cpus": 12,
|
||||
"docker_vm_memory_bytes": 12529274880,
|
||||
"orbit_processes": 1,
|
||||
"mysql_nodes": 1,
|
||||
"worker_processes": 1,
|
||||
"worker_connections": 2,
|
||||
"queue_max_concurrency": 4,
|
||||
"queue_rate_per_second": 10,
|
||||
"metrics_enabled": false,
|
||||
"network": "Go runner shares disposable MySQL container network namespace; loopback HTTP/WS/MySQL; no host port",
|
||||
"dedicated_cpu_memory_limits": false,
|
||||
"fresh_disposable_database": true,
|
||||
"cleanup": "Test-created containers stopped and removed; no existing databases used",
|
||||
"sdk_checks": [
|
||||
"go test -race ./...",
|
||||
"go vet ./...",
|
||||
"go build ./...",
|
||||
"go list -deps ./...; no database/server dependencies"
|
||||
],
|
||||
"modfile_note": "All Go commands use GOWORK=off and temporary sdk.mod/root.mod changing only declared Go version for available toolchain; repository go.mod unchanged",
|
||||
"sample_commands": [
|
||||
[
|
||||
"-schedules",
|
||||
"4",
|
||||
"-requests",
|
||||
"6",
|
||||
"-workers",
|
||||
"2",
|
||||
"-capacity",
|
||||
"4",
|
||||
"-start-delay",
|
||||
"5s",
|
||||
"-run-timeout",
|
||||
"90s",
|
||||
"-poll-interval",
|
||||
"100ms"
|
||||
],
|
||||
[
|
||||
"-schedules",
|
||||
"32",
|
||||
"-requests",
|
||||
"4",
|
||||
"-workers",
|
||||
"2",
|
||||
"-capacity",
|
||||
"4",
|
||||
"-start-delay",
|
||||
"5s",
|
||||
"-run-timeout",
|
||||
"90s",
|
||||
"-poll-interval",
|
||||
"100ms"
|
||||
],
|
||||
[
|
||||
"-schedules",
|
||||
"2",
|
||||
"-requests",
|
||||
"12",
|
||||
"-workers",
|
||||
"2",
|
||||
"-capacity",
|
||||
"2",
|
||||
"-start-delay",
|
||||
"1s",
|
||||
"-run-timeout",
|
||||
"5s",
|
||||
"-poll-interval",
|
||||
"100ms"
|
||||
]
|
||||
],
|
||||
"exit_codes": [
|
||||
0,
|
||||
0,
|
||||
1
|
||||
],
|
||||
"schema_verification": {
|
||||
"schema_version": 28,
|
||||
"migration_count": 28,
|
||||
"foreign_key_count": 0,
|
||||
"required_index_count": 6,
|
||||
"complete": true
|
||||
},
|
||||
"source_sha256": {
|
||||
"sdk/go/cmd/orbit-schedule-load/handler.go": "560426c5eaaad08cce386b304d0b4673757c1d82978d39557b6a72c8b00f12f8",
|
||||
"sdk/go/cmd/orbit-schedule-load/main.go": "2378bc59bde8e219618848206f5e4aa3e5158fdb0f419b1b8c286754e5e74136",
|
||||
"sdk/go/cmd/orbit-schedule-load/measure.go": "93bf30957af66631acc202fb65bab81dab2ea6c40259ad1d619eb47d23935832",
|
||||
"sdk/go/cmd/orbit-schedule-load/measure_test.go": "bd5cf497c427678edf29d6b48af9e95c410d656470f2c7340de19dc5705e9772",
|
||||
"sdk/go/cmd/orbit-schedule-load/observe.go": "50d43aa8b4b4690ceac976f3d65135a79fcf17530f5263ff5af5453074ad9e90",
|
||||
"sdk/go/cmd/orbit-schedule-load/report.go": "5a949c2904c21116d19f219d18a2e81a1153f578d4b2d7907b43bbd522f09b32"
|
||||
},
|
||||
"binary_sha256": {
|
||||
"orbit": "6290b47a74459cdc9f45c4288df7e0cf16ed67c1bfff7acb4e6e9fd4b636c9d7",
|
||||
"orbit-admin": "9325990fdedbc5faeb351b1333fd33b27ea35d2d0ee6b59b425deb30e973b396",
|
||||
"orbit-migrate": "56be44ae4e5d387aa13a6d0cd2e22a533a2ca6d4845b45548e7feac8f0c56635",
|
||||
"orbit-schedule-load": "67cf4d0ee141e2669744dcce33b032ab8ffd8c463d41662c647840e8ae1510db"
|
||||
},
|
||||
"artifacts_sha256": {
|
||||
"database.json": "462a9ea2921c1960bf0a4d97d846129af7eb7ba37784acad55b2bfb07cd1c35d",
|
||||
"deadline-24.json": "035696ab376dae1b5f8bcfa94033a94690d99d38c2bbc4d191299c7d1786457e",
|
||||
"sample-128.json": "bdfe818a94cfcb6184ca3fc0e057802f7f3cb8c223af43bca4a44488ba444fe5",
|
||||
"sample-24.json": "af78f339c497f5ddca02560005ece49354a98a1343bd08b3dac25c3fcbbbf3ae",
|
||||
"schema.json": "9ee118dd4306cddde44582b8d3983f2cd25331148d993672fd70cca86dc06d0a"
|
||||
}
|
||||
}
|
||||
618
docs/reports/data/phase-6-schedule-load/sample-128.json
Normal file
618
docs/reports/data/phase-6-schedule-load/sample-128.json
Normal file
@@ -0,0 +1,618 @@
|
||||
{
|
||||
"run_id": "7056d28993e47c01647892a53952c7b1",
|
||||
"go_version": "go1.25.14",
|
||||
"goos": "linux",
|
||||
"goarch": "arm64",
|
||||
"started_at": "2026-09-20T05:51:38.180345251Z",
|
||||
"finished_at": "2026-09-20T05:52:03.51048843Z",
|
||||
"requests_per_schedule": 4,
|
||||
"schedules": 32,
|
||||
"expected_occurrences": 128,
|
||||
"workers": 2,
|
||||
"capacity_per_worker": 4,
|
||||
"interval_ms": 1000,
|
||||
"start_delay_ms": 5000,
|
||||
"run_timeout_ms": 90000,
|
||||
"poll_interval_ms": 100,
|
||||
"http_timeout_ms": 5000,
|
||||
"queue": {
|
||||
"max_unfinished_tasks": 100000,
|
||||
"unfinished_tasks": "0",
|
||||
"id": "17f6a89f5d68895600d3bb2185fbadb4",
|
||||
"namespace_id": "65aefc4c4d7c0441cda02794632c7408",
|
||||
"name": "schedule",
|
||||
"paused": false,
|
||||
"max_concurrency": 4,
|
||||
"rate_per_second": 10,
|
||||
"revision": "1"
|
||||
},
|
||||
"schedule_start": "2026-09-20T05:51:43.181786Z",
|
||||
"schedule_end": "2026-09-20T05:51:47.181786Z",
|
||||
"plans": [
|
||||
{
|
||||
"calendar_version": "go1.27.1-b2d18a7c8fa8",
|
||||
"effective_at": "2026-09-20T05:51:38.182744Z",
|
||||
"index": 0,
|
||||
"id": "fcdd4ba396d4eaa0ee0fa972c699b051",
|
||||
"create_key": "schedule-7056d28993e47c01647892a53952c7b1-00-create",
|
||||
"resume_key": "schedule-7056d28993e47c01647892a53952c7b1-00-resume",
|
||||
"resume_revision": "1",
|
||||
"resumed": true,
|
||||
"exhausted": true,
|
||||
"pause_key": "schedule-7056d28993e47c01647892a53952c7b1-00-pause-0",
|
||||
"pause_revision": "5",
|
||||
"pause_confirmed": true,
|
||||
"occurrences": 4,
|
||||
"fired": 4,
|
||||
"verified_success": 4
|
||||
},
|
||||
{
|
||||
"calendar_version": "go1.27.1-b2d18a7c8fa8",
|
||||
"effective_at": "2026-09-20T05:51:38.185432Z",
|
||||
"index": 1,
|
||||
"id": "983feafac5dbdb69bb39c7e8b89517b7",
|
||||
"create_key": "schedule-7056d28993e47c01647892a53952c7b1-01-create",
|
||||
"resume_key": "schedule-7056d28993e47c01647892a53952c7b1-01-resume",
|
||||
"resume_revision": "1",
|
||||
"resumed": true,
|
||||
"exhausted": true,
|
||||
"pause_key": "schedule-7056d28993e47c01647892a53952c7b1-01-pause-0",
|
||||
"pause_revision": "5",
|
||||
"pause_confirmed": true,
|
||||
"occurrences": 4,
|
||||
"fired": 4,
|
||||
"verified_success": 4
|
||||
},
|
||||
{
|
||||
"calendar_version": "go1.27.1-b2d18a7c8fa8",
|
||||
"effective_at": "2026-09-20T05:51:38.187835Z",
|
||||
"index": 2,
|
||||
"id": "51f0d54d467cef5325122ecda038ce78",
|
||||
"create_key": "schedule-7056d28993e47c01647892a53952c7b1-02-create",
|
||||
"resume_key": "schedule-7056d28993e47c01647892a53952c7b1-02-resume",
|
||||
"resume_revision": "1",
|
||||
"resumed": true,
|
||||
"exhausted": true,
|
||||
"pause_key": "schedule-7056d28993e47c01647892a53952c7b1-02-pause-0",
|
||||
"pause_revision": "5",
|
||||
"pause_confirmed": true,
|
||||
"occurrences": 4,
|
||||
"fired": 4,
|
||||
"verified_success": 4
|
||||
},
|
||||
{
|
||||
"calendar_version": "go1.27.1-b2d18a7c8fa8",
|
||||
"effective_at": "2026-09-20T05:51:38.190392Z",
|
||||
"index": 3,
|
||||
"id": "f01d813f12e16b4b47929fe927f1bc4a",
|
||||
"create_key": "schedule-7056d28993e47c01647892a53952c7b1-03-create",
|
||||
"resume_key": "schedule-7056d28993e47c01647892a53952c7b1-03-resume",
|
||||
"resume_revision": "1",
|
||||
"resumed": true,
|
||||
"exhausted": true,
|
||||
"pause_key": "schedule-7056d28993e47c01647892a53952c7b1-03-pause-0",
|
||||
"pause_revision": "5",
|
||||
"pause_confirmed": true,
|
||||
"occurrences": 4,
|
||||
"fired": 4,
|
||||
"verified_success": 4
|
||||
},
|
||||
{
|
||||
"calendar_version": "go1.27.1-b2d18a7c8fa8",
|
||||
"effective_at": "2026-09-20T05:51:38.193883Z",
|
||||
"index": 4,
|
||||
"id": "0b498972511743f1c735a26da75a29d7",
|
||||
"create_key": "schedule-7056d28993e47c01647892a53952c7b1-04-create",
|
||||
"resume_key": "schedule-7056d28993e47c01647892a53952c7b1-04-resume",
|
||||
"resume_revision": "1",
|
||||
"resumed": true,
|
||||
"exhausted": true,
|
||||
"pause_key": "schedule-7056d28993e47c01647892a53952c7b1-04-pause-0",
|
||||
"pause_revision": "5",
|
||||
"pause_confirmed": true,
|
||||
"occurrences": 4,
|
||||
"fired": 4,
|
||||
"verified_success": 4
|
||||
},
|
||||
{
|
||||
"calendar_version": "go1.27.1-b2d18a7c8fa8",
|
||||
"effective_at": "2026-09-20T05:51:38.196309Z",
|
||||
"index": 5,
|
||||
"id": "97000fdccd6ae61fbebeaec477151714",
|
||||
"create_key": "schedule-7056d28993e47c01647892a53952c7b1-05-create",
|
||||
"resume_key": "schedule-7056d28993e47c01647892a53952c7b1-05-resume",
|
||||
"resume_revision": "1",
|
||||
"resumed": true,
|
||||
"exhausted": true,
|
||||
"pause_key": "schedule-7056d28993e47c01647892a53952c7b1-05-pause-0",
|
||||
"pause_revision": "5",
|
||||
"pause_confirmed": true,
|
||||
"occurrences": 4,
|
||||
"fired": 4,
|
||||
"verified_success": 4
|
||||
},
|
||||
{
|
||||
"calendar_version": "go1.27.1-b2d18a7c8fa8",
|
||||
"effective_at": "2026-09-20T05:51:38.198861Z",
|
||||
"index": 6,
|
||||
"id": "4d369519d8fe46cf787f6d1018cb4253",
|
||||
"create_key": "schedule-7056d28993e47c01647892a53952c7b1-06-create",
|
||||
"resume_key": "schedule-7056d28993e47c01647892a53952c7b1-06-resume",
|
||||
"resume_revision": "1",
|
||||
"resumed": true,
|
||||
"exhausted": true,
|
||||
"pause_key": "schedule-7056d28993e47c01647892a53952c7b1-06-pause-0",
|
||||
"pause_revision": "5",
|
||||
"pause_confirmed": true,
|
||||
"occurrences": 4,
|
||||
"fired": 4,
|
||||
"verified_success": 4
|
||||
},
|
||||
{
|
||||
"calendar_version": "go1.27.1-b2d18a7c8fa8",
|
||||
"effective_at": "2026-09-20T05:51:38.203173Z",
|
||||
"index": 7,
|
||||
"id": "c834d23a6ec817df44cea6794c6f6639",
|
||||
"create_key": "schedule-7056d28993e47c01647892a53952c7b1-07-create",
|
||||
"resume_key": "schedule-7056d28993e47c01647892a53952c7b1-07-resume",
|
||||
"resume_revision": "1",
|
||||
"resumed": true,
|
||||
"exhausted": true,
|
||||
"pause_key": "schedule-7056d28993e47c01647892a53952c7b1-07-pause-0",
|
||||
"pause_revision": "5",
|
||||
"pause_confirmed": true,
|
||||
"occurrences": 4,
|
||||
"fired": 4,
|
||||
"verified_success": 4
|
||||
},
|
||||
{
|
||||
"calendar_version": "go1.27.1-b2d18a7c8fa8",
|
||||
"effective_at": "2026-09-20T05:51:38.205847Z",
|
||||
"index": 8,
|
||||
"id": "8a58343f784b63bc915d11041712b4f2",
|
||||
"create_key": "schedule-7056d28993e47c01647892a53952c7b1-08-create",
|
||||
"resume_key": "schedule-7056d28993e47c01647892a53952c7b1-08-resume",
|
||||
"resume_revision": "1",
|
||||
"resumed": true,
|
||||
"exhausted": true,
|
||||
"pause_key": "schedule-7056d28993e47c01647892a53952c7b1-08-pause-0",
|
||||
"pause_revision": "5",
|
||||
"pause_confirmed": true,
|
||||
"occurrences": 4,
|
||||
"fired": 4,
|
||||
"verified_success": 4
|
||||
},
|
||||
{
|
||||
"calendar_version": "go1.27.1-b2d18a7c8fa8",
|
||||
"effective_at": "2026-09-20T05:51:38.20941Z",
|
||||
"index": 9,
|
||||
"id": "c7212dab959cffb639fe39798bf20385",
|
||||
"create_key": "schedule-7056d28993e47c01647892a53952c7b1-09-create",
|
||||
"resume_key": "schedule-7056d28993e47c01647892a53952c7b1-09-resume",
|
||||
"resume_revision": "1",
|
||||
"resumed": true,
|
||||
"exhausted": true,
|
||||
"pause_key": "schedule-7056d28993e47c01647892a53952c7b1-09-pause-0",
|
||||
"pause_revision": "5",
|
||||
"pause_confirmed": true,
|
||||
"occurrences": 4,
|
||||
"fired": 4,
|
||||
"verified_success": 4
|
||||
},
|
||||
{
|
||||
"calendar_version": "go1.27.1-b2d18a7c8fa8",
|
||||
"effective_at": "2026-09-20T05:51:38.211796Z",
|
||||
"index": 10,
|
||||
"id": "1c2ae5b9d1583d0607b34fe0ade46621",
|
||||
"create_key": "schedule-7056d28993e47c01647892a53952c7b1-10-create",
|
||||
"resume_key": "schedule-7056d28993e47c01647892a53952c7b1-10-resume",
|
||||
"resume_revision": "1",
|
||||
"resumed": true,
|
||||
"exhausted": true,
|
||||
"pause_key": "schedule-7056d28993e47c01647892a53952c7b1-10-pause-0",
|
||||
"pause_revision": "5",
|
||||
"pause_confirmed": true,
|
||||
"occurrences": 4,
|
||||
"fired": 4,
|
||||
"verified_success": 4
|
||||
},
|
||||
{
|
||||
"calendar_version": "go1.27.1-b2d18a7c8fa8",
|
||||
"effective_at": "2026-09-20T05:51:38.213893Z",
|
||||
"index": 11,
|
||||
"id": "cb44442045923c5fe2687f8840c9fb37",
|
||||
"create_key": "schedule-7056d28993e47c01647892a53952c7b1-11-create",
|
||||
"resume_key": "schedule-7056d28993e47c01647892a53952c7b1-11-resume",
|
||||
"resume_revision": "1",
|
||||
"resumed": true,
|
||||
"exhausted": true,
|
||||
"pause_key": "schedule-7056d28993e47c01647892a53952c7b1-11-pause-0",
|
||||
"pause_revision": "5",
|
||||
"pause_confirmed": true,
|
||||
"occurrences": 4,
|
||||
"fired": 4,
|
||||
"verified_success": 4
|
||||
},
|
||||
{
|
||||
"calendar_version": "go1.27.1-b2d18a7c8fa8",
|
||||
"effective_at": "2026-09-20T05:51:38.219422Z",
|
||||
"index": 12,
|
||||
"id": "2f2c444436c2ee51d0eefc2e78a2e799",
|
||||
"create_key": "schedule-7056d28993e47c01647892a53952c7b1-12-create",
|
||||
"resume_key": "schedule-7056d28993e47c01647892a53952c7b1-12-resume",
|
||||
"resume_revision": "1",
|
||||
"resumed": true,
|
||||
"exhausted": true,
|
||||
"pause_key": "schedule-7056d28993e47c01647892a53952c7b1-12-pause-0",
|
||||
"pause_revision": "5",
|
||||
"pause_confirmed": true,
|
||||
"occurrences": 4,
|
||||
"fired": 4,
|
||||
"verified_success": 4
|
||||
},
|
||||
{
|
||||
"calendar_version": "go1.27.1-b2d18a7c8fa8",
|
||||
"effective_at": "2026-09-20T05:51:38.222664Z",
|
||||
"index": 13,
|
||||
"id": "5a49395323073eff76470d378cc2bc01",
|
||||
"create_key": "schedule-7056d28993e47c01647892a53952c7b1-13-create",
|
||||
"resume_key": "schedule-7056d28993e47c01647892a53952c7b1-13-resume",
|
||||
"resume_revision": "1",
|
||||
"resumed": true,
|
||||
"exhausted": true,
|
||||
"pause_key": "schedule-7056d28993e47c01647892a53952c7b1-13-pause-0",
|
||||
"pause_revision": "5",
|
||||
"pause_confirmed": true,
|
||||
"occurrences": 4,
|
||||
"fired": 4,
|
||||
"verified_success": 4
|
||||
},
|
||||
{
|
||||
"calendar_version": "go1.27.1-b2d18a7c8fa8",
|
||||
"effective_at": "2026-09-20T05:51:38.225018Z",
|
||||
"index": 14,
|
||||
"id": "6fe18947edcbd95aa4288b1ef2611124",
|
||||
"create_key": "schedule-7056d28993e47c01647892a53952c7b1-14-create",
|
||||
"resume_key": "schedule-7056d28993e47c01647892a53952c7b1-14-resume",
|
||||
"resume_revision": "1",
|
||||
"resumed": true,
|
||||
"exhausted": true,
|
||||
"pause_key": "schedule-7056d28993e47c01647892a53952c7b1-14-pause-0",
|
||||
"pause_revision": "5",
|
||||
"pause_confirmed": true,
|
||||
"occurrences": 4,
|
||||
"fired": 4,
|
||||
"verified_success": 4
|
||||
},
|
||||
{
|
||||
"calendar_version": "go1.27.1-b2d18a7c8fa8",
|
||||
"effective_at": "2026-09-20T05:51:38.22847Z",
|
||||
"index": 15,
|
||||
"id": "582591eb99f06745e3fa07ea54b54006",
|
||||
"create_key": "schedule-7056d28993e47c01647892a53952c7b1-15-create",
|
||||
"resume_key": "schedule-7056d28993e47c01647892a53952c7b1-15-resume",
|
||||
"resume_revision": "1",
|
||||
"resumed": true,
|
||||
"exhausted": true,
|
||||
"pause_key": "schedule-7056d28993e47c01647892a53952c7b1-15-pause-0",
|
||||
"pause_revision": "5",
|
||||
"pause_confirmed": true,
|
||||
"occurrences": 4,
|
||||
"fired": 4,
|
||||
"verified_success": 4
|
||||
},
|
||||
{
|
||||
"calendar_version": "go1.27.1-b2d18a7c8fa8",
|
||||
"effective_at": "2026-09-20T05:51:38.231576Z",
|
||||
"index": 16,
|
||||
"id": "829e2428e144ab924715b255091c3757",
|
||||
"create_key": "schedule-7056d28993e47c01647892a53952c7b1-16-create",
|
||||
"resume_key": "schedule-7056d28993e47c01647892a53952c7b1-16-resume",
|
||||
"resume_revision": "1",
|
||||
"resumed": true,
|
||||
"exhausted": true,
|
||||
"pause_key": "schedule-7056d28993e47c01647892a53952c7b1-16-pause-0",
|
||||
"pause_revision": "5",
|
||||
"pause_confirmed": true,
|
||||
"occurrences": 4,
|
||||
"fired": 4,
|
||||
"verified_success": 4
|
||||
},
|
||||
{
|
||||
"calendar_version": "go1.27.1-b2d18a7c8fa8",
|
||||
"effective_at": "2026-09-20T05:51:38.234664Z",
|
||||
"index": 17,
|
||||
"id": "3204baf132a3cb7954d59c5a84896504",
|
||||
"create_key": "schedule-7056d28993e47c01647892a53952c7b1-17-create",
|
||||
"resume_key": "schedule-7056d28993e47c01647892a53952c7b1-17-resume",
|
||||
"resume_revision": "1",
|
||||
"resumed": true,
|
||||
"exhausted": true,
|
||||
"pause_key": "schedule-7056d28993e47c01647892a53952c7b1-17-pause-0",
|
||||
"pause_revision": "5",
|
||||
"pause_confirmed": true,
|
||||
"occurrences": 4,
|
||||
"fired": 4,
|
||||
"verified_success": 4
|
||||
},
|
||||
{
|
||||
"calendar_version": "go1.27.1-b2d18a7c8fa8",
|
||||
"effective_at": "2026-09-20T05:51:38.239704Z",
|
||||
"index": 18,
|
||||
"id": "85a944a2dbf10940e30e306eeb6207c1",
|
||||
"create_key": "schedule-7056d28993e47c01647892a53952c7b1-18-create",
|
||||
"resume_key": "schedule-7056d28993e47c01647892a53952c7b1-18-resume",
|
||||
"resume_revision": "1",
|
||||
"resumed": true,
|
||||
"exhausted": true,
|
||||
"pause_key": "schedule-7056d28993e47c01647892a53952c7b1-18-pause-0",
|
||||
"pause_revision": "5",
|
||||
"pause_confirmed": true,
|
||||
"occurrences": 4,
|
||||
"fired": 4,
|
||||
"verified_success": 4
|
||||
},
|
||||
{
|
||||
"calendar_version": "go1.27.1-b2d18a7c8fa8",
|
||||
"effective_at": "2026-09-20T05:51:38.242679Z",
|
||||
"index": 19,
|
||||
"id": "754ea55797e8574625385c4762fdb346",
|
||||
"create_key": "schedule-7056d28993e47c01647892a53952c7b1-19-create",
|
||||
"resume_key": "schedule-7056d28993e47c01647892a53952c7b1-19-resume",
|
||||
"resume_revision": "1",
|
||||
"resumed": true,
|
||||
"exhausted": true,
|
||||
"pause_key": "schedule-7056d28993e47c01647892a53952c7b1-19-pause-0",
|
||||
"pause_revision": "5",
|
||||
"pause_confirmed": true,
|
||||
"occurrences": 4,
|
||||
"fired": 4,
|
||||
"verified_success": 4
|
||||
},
|
||||
{
|
||||
"calendar_version": "go1.27.1-b2d18a7c8fa8",
|
||||
"effective_at": "2026-09-20T05:51:38.245641Z",
|
||||
"index": 20,
|
||||
"id": "b54c4a596e4c900fc915e8845d351e67",
|
||||
"create_key": "schedule-7056d28993e47c01647892a53952c7b1-20-create",
|
||||
"resume_key": "schedule-7056d28993e47c01647892a53952c7b1-20-resume",
|
||||
"resume_revision": "1",
|
||||
"resumed": true,
|
||||
"exhausted": true,
|
||||
"pause_key": "schedule-7056d28993e47c01647892a53952c7b1-20-pause-0",
|
||||
"pause_revision": "5",
|
||||
"pause_confirmed": true,
|
||||
"occurrences": 4,
|
||||
"fired": 4,
|
||||
"verified_success": 4
|
||||
},
|
||||
{
|
||||
"calendar_version": "go1.27.1-b2d18a7c8fa8",
|
||||
"effective_at": "2026-09-20T05:51:38.248371Z",
|
||||
"index": 21,
|
||||
"id": "9b6c85c9a8b6a290ce7ff6dd458638eb",
|
||||
"create_key": "schedule-7056d28993e47c01647892a53952c7b1-21-create",
|
||||
"resume_key": "schedule-7056d28993e47c01647892a53952c7b1-21-resume",
|
||||
"resume_revision": "1",
|
||||
"resumed": true,
|
||||
"exhausted": true,
|
||||
"pause_key": "schedule-7056d28993e47c01647892a53952c7b1-21-pause-0",
|
||||
"pause_revision": "5",
|
||||
"pause_confirmed": true,
|
||||
"occurrences": 4,
|
||||
"fired": 4,
|
||||
"verified_success": 4
|
||||
},
|
||||
{
|
||||
"calendar_version": "go1.27.1-b2d18a7c8fa8",
|
||||
"effective_at": "2026-09-20T05:51:38.251722Z",
|
||||
"index": 22,
|
||||
"id": "25171ecf0b2b5aa5ac96abd06de41ba0",
|
||||
"create_key": "schedule-7056d28993e47c01647892a53952c7b1-22-create",
|
||||
"resume_key": "schedule-7056d28993e47c01647892a53952c7b1-22-resume",
|
||||
"resume_revision": "1",
|
||||
"resumed": true,
|
||||
"exhausted": true,
|
||||
"pause_key": "schedule-7056d28993e47c01647892a53952c7b1-22-pause-0",
|
||||
"pause_revision": "5",
|
||||
"pause_confirmed": true,
|
||||
"occurrences": 4,
|
||||
"fired": 4,
|
||||
"verified_success": 4
|
||||
},
|
||||
{
|
||||
"calendar_version": "go1.27.1-b2d18a7c8fa8",
|
||||
"effective_at": "2026-09-20T05:51:38.25387Z",
|
||||
"index": 23,
|
||||
"id": "902b9ad707391d67f76ba6e70cffcb3f",
|
||||
"create_key": "schedule-7056d28993e47c01647892a53952c7b1-23-create",
|
||||
"resume_key": "schedule-7056d28993e47c01647892a53952c7b1-23-resume",
|
||||
"resume_revision": "1",
|
||||
"resumed": true,
|
||||
"exhausted": true,
|
||||
"pause_key": "schedule-7056d28993e47c01647892a53952c7b1-23-pause-0",
|
||||
"pause_revision": "5",
|
||||
"pause_confirmed": true,
|
||||
"occurrences": 4,
|
||||
"fired": 4,
|
||||
"verified_success": 4
|
||||
},
|
||||
{
|
||||
"calendar_version": "go1.27.1-b2d18a7c8fa8",
|
||||
"effective_at": "2026-09-20T05:51:38.256482Z",
|
||||
"index": 24,
|
||||
"id": "4214b53489a8cdb75202b639ee574427",
|
||||
"create_key": "schedule-7056d28993e47c01647892a53952c7b1-24-create",
|
||||
"resume_key": "schedule-7056d28993e47c01647892a53952c7b1-24-resume",
|
||||
"resume_revision": "1",
|
||||
"resumed": true,
|
||||
"exhausted": true,
|
||||
"pause_key": "schedule-7056d28993e47c01647892a53952c7b1-24-pause-0",
|
||||
"pause_revision": "5",
|
||||
"pause_confirmed": true,
|
||||
"occurrences": 4,
|
||||
"fired": 4,
|
||||
"verified_success": 4
|
||||
},
|
||||
{
|
||||
"calendar_version": "go1.27.1-b2d18a7c8fa8",
|
||||
"effective_at": "2026-09-20T05:51:38.258774Z",
|
||||
"index": 25,
|
||||
"id": "4d4c51d538861102eac9fa76f4d90df4",
|
||||
"create_key": "schedule-7056d28993e47c01647892a53952c7b1-25-create",
|
||||
"resume_key": "schedule-7056d28993e47c01647892a53952c7b1-25-resume",
|
||||
"resume_revision": "1",
|
||||
"resumed": true,
|
||||
"exhausted": true,
|
||||
"pause_key": "schedule-7056d28993e47c01647892a53952c7b1-25-pause-0",
|
||||
"pause_revision": "5",
|
||||
"pause_confirmed": true,
|
||||
"occurrences": 4,
|
||||
"fired": 4,
|
||||
"verified_success": 4
|
||||
},
|
||||
{
|
||||
"calendar_version": "go1.27.1-b2d18a7c8fa8",
|
||||
"effective_at": "2026-09-20T05:51:38.261484Z",
|
||||
"index": 26,
|
||||
"id": "351abd4c1b1cccb07ec1f988c199c2f0",
|
||||
"create_key": "schedule-7056d28993e47c01647892a53952c7b1-26-create",
|
||||
"resume_key": "schedule-7056d28993e47c01647892a53952c7b1-26-resume",
|
||||
"resume_revision": "1",
|
||||
"resumed": true,
|
||||
"exhausted": true,
|
||||
"pause_key": "schedule-7056d28993e47c01647892a53952c7b1-26-pause-0",
|
||||
"pause_revision": "5",
|
||||
"pause_confirmed": true,
|
||||
"occurrences": 4,
|
||||
"fired": 4,
|
||||
"verified_success": 4
|
||||
},
|
||||
{
|
||||
"calendar_version": "go1.27.1-b2d18a7c8fa8",
|
||||
"effective_at": "2026-09-20T05:51:38.263584Z",
|
||||
"index": 27,
|
||||
"id": "c3e19c402d45239b04b20a7adc526141",
|
||||
"create_key": "schedule-7056d28993e47c01647892a53952c7b1-27-create",
|
||||
"resume_key": "schedule-7056d28993e47c01647892a53952c7b1-27-resume",
|
||||
"resume_revision": "1",
|
||||
"resumed": true,
|
||||
"exhausted": true,
|
||||
"pause_key": "schedule-7056d28993e47c01647892a53952c7b1-27-pause-0",
|
||||
"pause_revision": "5",
|
||||
"pause_confirmed": true,
|
||||
"occurrences": 4,
|
||||
"fired": 4,
|
||||
"verified_success": 4
|
||||
},
|
||||
{
|
||||
"calendar_version": "go1.27.1-b2d18a7c8fa8",
|
||||
"effective_at": "2026-09-20T05:51:38.26587Z",
|
||||
"index": 28,
|
||||
"id": "5652ed089f0834abaad62311c898007f",
|
||||
"create_key": "schedule-7056d28993e47c01647892a53952c7b1-28-create",
|
||||
"resume_key": "schedule-7056d28993e47c01647892a53952c7b1-28-resume",
|
||||
"resume_revision": "1",
|
||||
"resumed": true,
|
||||
"exhausted": true,
|
||||
"pause_key": "schedule-7056d28993e47c01647892a53952c7b1-28-pause-0",
|
||||
"pause_revision": "5",
|
||||
"pause_confirmed": true,
|
||||
"occurrences": 4,
|
||||
"fired": 4,
|
||||
"verified_success": 4
|
||||
},
|
||||
{
|
||||
"calendar_version": "go1.27.1-b2d18a7c8fa8",
|
||||
"effective_at": "2026-09-20T05:51:38.27058Z",
|
||||
"index": 29,
|
||||
"id": "2cbab1577b43ae69bf308687f3d67785",
|
||||
"create_key": "schedule-7056d28993e47c01647892a53952c7b1-29-create",
|
||||
"resume_key": "schedule-7056d28993e47c01647892a53952c7b1-29-resume",
|
||||
"resume_revision": "1",
|
||||
"resumed": true,
|
||||
"exhausted": true,
|
||||
"pause_key": "schedule-7056d28993e47c01647892a53952c7b1-29-pause-0",
|
||||
"pause_revision": "5",
|
||||
"pause_confirmed": true,
|
||||
"occurrences": 4,
|
||||
"fired": 4,
|
||||
"verified_success": 4
|
||||
},
|
||||
{
|
||||
"calendar_version": "go1.27.1-b2d18a7c8fa8",
|
||||
"effective_at": "2026-09-20T05:51:38.27287Z",
|
||||
"index": 30,
|
||||
"id": "8d3c0d2151c69e4c50dcd476c6737eee",
|
||||
"create_key": "schedule-7056d28993e47c01647892a53952c7b1-30-create",
|
||||
"resume_key": "schedule-7056d28993e47c01647892a53952c7b1-30-resume",
|
||||
"resume_revision": "1",
|
||||
"resumed": true,
|
||||
"exhausted": true,
|
||||
"pause_key": "schedule-7056d28993e47c01647892a53952c7b1-30-pause-0",
|
||||
"pause_revision": "5",
|
||||
"pause_confirmed": true,
|
||||
"occurrences": 4,
|
||||
"fired": 4,
|
||||
"verified_success": 4
|
||||
},
|
||||
{
|
||||
"calendar_version": "go1.27.1-b2d18a7c8fa8",
|
||||
"effective_at": "2026-09-20T05:51:38.275023Z",
|
||||
"index": 31,
|
||||
"id": "0b90d1c46cd178c49d63e7dfb5125057",
|
||||
"create_key": "schedule-7056d28993e47c01647892a53952c7b1-31-create",
|
||||
"resume_key": "schedule-7056d28993e47c01647892a53952c7b1-31-resume",
|
||||
"resume_revision": "1",
|
||||
"resumed": true,
|
||||
"exhausted": true,
|
||||
"pause_key": "schedule-7056d28993e47c01647892a53952c7b1-31-pause-0",
|
||||
"pause_revision": "5",
|
||||
"pause_confirmed": true,
|
||||
"occurrences": 4,
|
||||
"fired": 4,
|
||||
"verified_success": 4
|
||||
}
|
||||
],
|
||||
"occurrences": 128,
|
||||
"fired": 128,
|
||||
"verified_success": 128,
|
||||
"unobserved": 0,
|
||||
"unverified": 0,
|
||||
"handler_calls": 128,
|
||||
"duplicate_invocations": 0,
|
||||
"unconfirmed_invocations": 0,
|
||||
"worker_started": 128,
|
||||
"worker_reconnects": 0,
|
||||
"worker_renewals_confirmed": 0,
|
||||
"trigger_lag": {
|
||||
"count": 128,
|
||||
"p50_ms": 992.747,
|
||||
"p95_ms": 1964.089,
|
||||
"p99_ms": 1985.97,
|
||||
"max_ms": 1992.747
|
||||
},
|
||||
"queue_wait": {
|
||||
"count": 128,
|
||||
"p50_ms": 8192.259,
|
||||
"p95_ms": 14277.183,
|
||||
"p99_ms": 15230.422,
|
||||
"max_ms": 15232.355
|
||||
},
|
||||
"authorized_execution": {
|
||||
"count": 128,
|
||||
"p50_ms": 8.856,
|
||||
"p95_ms": 20.414,
|
||||
"p99_ms": 25.195,
|
||||
"max_ms": 34.262
|
||||
},
|
||||
"completion": {
|
||||
"count": 128,
|
||||
"p50_ms": 9191.23,
|
||||
"p95_ms": 16200.649,
|
||||
"p99_ms": 17172.61,
|
||||
"max_ms": 17175.759
|
||||
},
|
||||
"errors": {},
|
||||
"complete": true
|
||||
}
|
||||
142
docs/reports/data/phase-6-schedule-load/sample-24.json
Normal file
142
docs/reports/data/phase-6-schedule-load/sample-24.json
Normal file
@@ -0,0 +1,142 @@
|
||||
{
|
||||
"run_id": "278555409a9d68e7de5b635087c73d04",
|
||||
"go_version": "go1.25.14",
|
||||
"goos": "linux",
|
||||
"goarch": "arm64",
|
||||
"started_at": "2026-09-20T05:51:25.035193676Z",
|
||||
"finished_at": "2026-09-20T05:51:38.173794626Z",
|
||||
"requests_per_schedule": 6,
|
||||
"schedules": 4,
|
||||
"expected_occurrences": 24,
|
||||
"workers": 2,
|
||||
"capacity_per_worker": 4,
|
||||
"interval_ms": 1000,
|
||||
"start_delay_ms": 5000,
|
||||
"run_timeout_ms": 90000,
|
||||
"poll_interval_ms": 100,
|
||||
"http_timeout_ms": 5000,
|
||||
"queue": {
|
||||
"max_unfinished_tasks": 100000,
|
||||
"unfinished_tasks": "0",
|
||||
"id": "17f6a89f5d68895600d3bb2185fbadb4",
|
||||
"namespace_id": "65aefc4c4d7c0441cda02794632c7408",
|
||||
"name": "schedule",
|
||||
"paused": false,
|
||||
"max_concurrency": 4,
|
||||
"rate_per_second": 10,
|
||||
"revision": "1"
|
||||
},
|
||||
"schedule_start": "2026-09-20T05:51:30.039771Z",
|
||||
"schedule_end": "2026-09-20T05:51:36.039771Z",
|
||||
"plans": [
|
||||
{
|
||||
"calendar_version": "go1.27.1-b2d18a7c8fa8",
|
||||
"effective_at": "2026-09-20T05:51:25.043209Z",
|
||||
"index": 0,
|
||||
"id": "713696f120e328bcedd8b307432745ec",
|
||||
"create_key": "schedule-278555409a9d68e7de5b635087c73d04-00-create",
|
||||
"resume_key": "schedule-278555409a9d68e7de5b635087c73d04-00-resume",
|
||||
"resume_revision": "1",
|
||||
"resumed": true,
|
||||
"exhausted": true,
|
||||
"pause_key": "schedule-278555409a9d68e7de5b635087c73d04-00-pause-0",
|
||||
"pause_revision": "5",
|
||||
"pause_confirmed": true,
|
||||
"occurrences": 6,
|
||||
"fired": 6,
|
||||
"verified_success": 6
|
||||
},
|
||||
{
|
||||
"calendar_version": "go1.27.1-b2d18a7c8fa8",
|
||||
"effective_at": "2026-09-20T05:51:25.05288Z",
|
||||
"index": 1,
|
||||
"id": "2c7cc5f7278677e48c1fcb594f762a99",
|
||||
"create_key": "schedule-278555409a9d68e7de5b635087c73d04-01-create",
|
||||
"resume_key": "schedule-278555409a9d68e7de5b635087c73d04-01-resume",
|
||||
"resume_revision": "1",
|
||||
"resumed": true,
|
||||
"exhausted": true,
|
||||
"pause_key": "schedule-278555409a9d68e7de5b635087c73d04-01-pause-0",
|
||||
"pause_revision": "6",
|
||||
"pause_confirmed": true,
|
||||
"occurrences": 6,
|
||||
"fired": 6,
|
||||
"verified_success": 6
|
||||
},
|
||||
{
|
||||
"calendar_version": "go1.27.1-b2d18a7c8fa8",
|
||||
"effective_at": "2026-09-20T05:51:25.057968Z",
|
||||
"index": 2,
|
||||
"id": "147de621f4e54d96d1a0c90fae9bb3ca",
|
||||
"create_key": "schedule-278555409a9d68e7de5b635087c73d04-02-create",
|
||||
"resume_key": "schedule-278555409a9d68e7de5b635087c73d04-02-resume",
|
||||
"resume_revision": "1",
|
||||
"resumed": true,
|
||||
"exhausted": true,
|
||||
"pause_key": "schedule-278555409a9d68e7de5b635087c73d04-02-pause-0",
|
||||
"pause_revision": "6",
|
||||
"pause_confirmed": true,
|
||||
"occurrences": 6,
|
||||
"fired": 6,
|
||||
"verified_success": 6
|
||||
},
|
||||
{
|
||||
"calendar_version": "go1.27.1-b2d18a7c8fa8",
|
||||
"effective_at": "2026-09-20T05:51:25.063146Z",
|
||||
"index": 3,
|
||||
"id": "93272d0b600756362052ec09dac56f7f",
|
||||
"create_key": "schedule-278555409a9d68e7de5b635087c73d04-03-create",
|
||||
"resume_key": "schedule-278555409a9d68e7de5b635087c73d04-03-resume",
|
||||
"resume_revision": "1",
|
||||
"resumed": true,
|
||||
"exhausted": true,
|
||||
"pause_key": "schedule-278555409a9d68e7de5b635087c73d04-03-pause-0",
|
||||
"pause_revision": "5",
|
||||
"pause_confirmed": true,
|
||||
"occurrences": 6,
|
||||
"fired": 6,
|
||||
"verified_success": 6
|
||||
}
|
||||
],
|
||||
"occurrences": 24,
|
||||
"fired": 24,
|
||||
"verified_success": 24,
|
||||
"unobserved": 0,
|
||||
"unverified": 0,
|
||||
"handler_calls": 24,
|
||||
"duplicate_invocations": 0,
|
||||
"unconfirmed_invocations": 0,
|
||||
"worker_started": 24,
|
||||
"worker_reconnects": 0,
|
||||
"worker_renewals_confirmed": 0,
|
||||
"trigger_lag": {
|
||||
"count": 24,
|
||||
"p50_ms": 999.646,
|
||||
"p95_ms": 2005.396,
|
||||
"p99_ms": 2015.96,
|
||||
"max_ms": 2015.96
|
||||
},
|
||||
"queue_wait": {
|
||||
"count": 24,
|
||||
"p50_ms": 1111.19,
|
||||
"p95_ms": 2126.701,
|
||||
"p99_ms": 2130.041,
|
||||
"max_ms": 2130.041
|
||||
},
|
||||
"authorized_execution": {
|
||||
"count": 24,
|
||||
"p50_ms": 10.082,
|
||||
"p95_ms": 21.111,
|
||||
"p99_ms": 27.578,
|
||||
"max_ms": 27.578
|
||||
},
|
||||
"completion": {
|
||||
"count": 24,
|
||||
"p50_ms": 3059.006,
|
||||
"p95_ms": 4067.032,
|
||||
"p99_ms": 4094.876,
|
||||
"max_ms": 4094.876
|
||||
},
|
||||
"errors": {},
|
||||
"complete": true
|
||||
}
|
||||
7
docs/reports/data/phase-6-schedule-load/schema.json
Normal file
7
docs/reports/data/phase-6-schedule-load/schema.json
Normal file
@@ -0,0 +1,7 @@
|
||||
{
|
||||
"schema_version": 28,
|
||||
"migration_count": 28,
|
||||
"foreign_key_count": 0,
|
||||
"required_index_count": 6,
|
||||
"complete": true
|
||||
}
|
||||
30
docs/reports/data/phase-6-schedule-load/sdk-check.log
Normal file
30
docs/reports/data/phase-6-schedule-load/sdk-check.log
Normal file
@@ -0,0 +1,30 @@
|
||||
ok git.yuntuo.hk/k2safe/orbit/sdk/go (cached)
|
||||
ok git.yuntuo.hk/k2safe/orbit/sdk/go/cmd/orbit-exec-load (cached)
|
||||
ok git.yuntuo.hk/k2safe/orbit/sdk/go/cmd/orbit-load (cached)
|
||||
ok git.yuntuo.hk/k2safe/orbit/sdk/go/cmd/orbit-schedule-load (cached)
|
||||
ok git.yuntuo.hk/k2safe/orbit/sdk/go/cmd/orbit-workflow-load (cached)
|
||||
? git.yuntuo.hk/k2safe/orbit/sdk/go/examples/application-resources [no test files]
|
||||
? git.yuntuo.hk/k2safe/orbit/sdk/go/examples/batch [no test files]
|
||||
? git.yuntuo.hk/k2safe/orbit/sdk/go/examples/cancellation [no test files]
|
||||
? git.yuntuo.hk/k2safe/orbit/sdk/go/examples/delayed-task [no test files]
|
||||
? git.yuntuo.hk/k2safe/orbit/sdk/go/examples/event-protocol [no test files]
|
||||
ok git.yuntuo.hk/k2safe/orbit/sdk/go/examples/file-conversion (cached)
|
||||
? git.yuntuo.hk/k2safe/orbit/sdk/go/examples/health [no test files]
|
||||
? git.yuntuo.hk/k2safe/orbit/sdk/go/examples/history [no test files]
|
||||
? git.yuntuo.hk/k2safe/orbit/sdk/go/examples/internal/flowdemo [no test files]
|
||||
? git.yuntuo.hk/k2safe/orbit/sdk/go/examples/keyed-concurrency [no test files]
|
||||
? git.yuntuo.hk/k2safe/orbit/sdk/go/examples/priority [no test files]
|
||||
? git.yuntuo.hk/k2safe/orbit/sdk/go/examples/recovery [no test files]
|
||||
? git.yuntuo.hk/k2safe/orbit/sdk/go/examples/resources [no test files]
|
||||
? git.yuntuo.hk/k2safe/orbit/sdk/go/examples/retry [no test files]
|
||||
? git.yuntuo.hk/k2safe/orbit/sdk/go/examples/schedules [no test files]
|
||||
? git.yuntuo.hk/k2safe/orbit/sdk/go/examples/subscriptions [no test files]
|
||||
? git.yuntuo.hk/k2safe/orbit/sdk/go/examples/task-query [no test files]
|
||||
? git.yuntuo.hk/k2safe/orbit/sdk/go/examples/tasks [no test files]
|
||||
? git.yuntuo.hk/k2safe/orbit/sdk/go/examples/worker [no test files]
|
||||
? git.yuntuo.hk/k2safe/orbit/sdk/go/examples/worker-protocol [no test files]
|
||||
? git.yuntuo.hk/k2safe/orbit/sdk/go/examples/workflow [no test files]
|
||||
? git.yuntuo.hk/k2safe/orbit/sdk/go/examples/workflow-definition [no test files]
|
||||
? git.yuntuo.hk/k2safe/orbit/sdk/go/examples/workflow-poll [no test files]
|
||||
? git.yuntuo.hk/k2safe/orbit/sdk/go/examples/workflow-query [no test files]
|
||||
? git.yuntuo.hk/k2safe/orbit/sdk/go/examples/workflow-recovery [no test files]
|
||||
42
docs/reports/phase-6-schedule-load.md
Normal file
42
docs/reports/phase-6-schedule-load.md
Normal file
@@ -0,0 +1,42 @@
|
||||
# P6 定时集中触发测量
|
||||
|
||||
日期:2026-09-20。本批新增独立 SDK 命令 `orbit-schedule-load`,完成多个固定间隔计划同一时刻触发、真实 Worker 执行和持久结果核验。P6/P7 仍进行中;样本不作为生产容量或高可用结论。
|
||||
|
||||
## 已实现与实际检查
|
||||
|
||||
计划先暂停创建再恢复,固定起止/间隔、版本 1、UTC 时区快照、CATCH_UP/PARALLEL;每任务只有一次尝试。工具核对预期时间槽、触发唯一性、任务身份/模板/结果、成功尝试和时间顺序、固定来源及本地单次调用,并等待计划耗尽。所有退出路径执行有限 Worker 收尾和计划暂停;传输不明不换键重试,保留原操作身份。
|
||||
|
||||
初次真实连接发现工具误把 API `v1` 当成时区快照标识,修正为保存服务端返回的具体标识和版本生效时间,后续读取核对不变。下表和原始文件全部来自修正后**重新构建并运行**的二进制;首次失败的创建发生在另一已清理的一次性数据库,不计入最终样本。
|
||||
|
||||
SDK 全模块 `go test -race ./...`、`go vet ./...`、`go build ./...` 通过,完整依赖图没有服务端或 MySQL 驱动依赖。新增单测覆盖等待不算成功、重复轮询不重复计数、错配输入/来源/历史/时间、跨计划重复任务、本地并发重复调用、暂停明确冲突与传输不明的处理差异、原时区快照/生效时间不变及部分分母。标准 `scripts/test-mysql.sh` 已接入工具编译和 2×3 触发样本,脚本语法检查通过;本批没有重新跑整份标准集成脚本。
|
||||
|
||||
## 环境与结果
|
||||
|
||||
一次性 MySQL 8.4.10,1 个 Orbit 进程,1 个测量进程中 2 个 Worker 连接。共享本机 Docker VM,12 个 CPU、12,529,274,880 字节内存,无独占资源额度;其他工作负载可能影响结果。队列并发上限 4、每秒开始授权上限 10,工具未修改配置;指标监听关闭。Go/MySQL 容器共享网络命名空间,仅本机回环通信,无宿主机发布端口。
|
||||
|
||||
实际工具链是 **Go 1.25.14 Linux arm64**,通过临时 modfile 使用,仓库声明的 Go 1.27.1 未改。本批不能替代正式工具链全量验收。精确配置、源码/二进制哈希、退出码和原始文件哈希见[环境清单](data/phase-6-schedule-load/environment.json),SDK 输出见[检查日志](data/phase-6-schedule-load/sdk-check.log)。
|
||||
|
||||
| 样本 | 预期触发 | 已观察/生成任务 | 已核验成功 | 本地调用/重复 | 结果 |
|
||||
| --- | ---: | ---: | ---: | ---: | --- |
|
||||
| 4计划×6次,1秒间隔 | 24 | 24/24 | 24 | 24/0 | `complete=true`,退出0 |
|
||||
| 32计划×4次,1秒间隔 | 128 | 128/128 | 128 | 128/0 | `complete=true`,退出0 |
|
||||
| 2计划×12次,1秒间隔,整次仅5秒 | 24 | 6/6 | 2 | 2/0 | `RUN_TIMEOUT`,`complete=false`,退出1 |
|
||||
|
||||
原始结果:[24次](data/phase-6-schedule-load/sample-24.json)、[128次](data/phase-6-schedule-load/sample-128.json)、[截止负例](data/phase-6-schedule-load/deadline-24.json)。正常组各有两个 Worker,每个容量4;负例每个容量2。正常组预留5秒设置,整体截止90秒;负例预留1秒设置,整体截止5秒。每次HTTP截止5秒,轮询100毫秒。
|
||||
|
||||
| 正常样本 | 触发延迟P95 | 排队至授权P95 | 授权执行P95 | 计划时间至完成P95 |
|
||||
| --- | ---: | ---: | ---: | ---: |
|
||||
| 24次 | 2005.396ms | 2126.701ms | 21.111ms | 4067.032ms |
|
||||
| 128次 | 1964.089ms | 14277.183ms | 20.414ms | 16200.649ms |
|
||||
|
||||
32 个同时触发的计划在现有并发/速率限制下形成排队,上表记录这次现象;未做控制变量或持续资源采样,不能据此判定瓶颈或推导生产吞吐。耗时分布均由持久时间计算,分母分别为24和128,只包含已核验成功任务。
|
||||
|
||||
负例保留18个未观察到的计划触发点、4个已经触发但未核验成功的任务,没有把超时隐藏为成功。`pause_confirmed` 在全部计划中为真;暂停不取消已生成任务。测量后独立数据库回读共有38个计划且全部暂停、158个触发记录、158个任务,其中154个成功,触发记录间重复任务数0;其余4个任务没有被该样本核验为成功,不能推测为已撤销或最终失败。见[数据库快照](data/phase-6-schedule-load/database.json)。
|
||||
|
||||
`orbit-admin verify` 独立确认 schema version28、28条迁移记录、6个必需索引和**实际外键0**,见[结构核验](data/phase-6-schedule-load/schema.json)。本批未修改数据库模型或迁移;不可变旧迁移仍保留历史外键及其前向清理记录。
|
||||
|
||||
## 复现与下一步
|
||||
|
||||
按[工具手册](../api/schedule-load.md)创建隔离命名空间/队列,签发 Worker 与计划权限,依次运行环境清单中的三组参数;前两组应退出0,第三组应退出1并报告剩余分母。使用新创建的一次性MySQL、当前源码构建的服务端和测量工具,最终执行 `orbit-admin verify`。校验时不得把源码修改后的哈希附到之前构建的二进制结果。
|
||||
|
||||
当前只验证同节点、固定间隔、有限计划数的集中触发和超时收尾。Cron/DST及其他策略的功能测试已有独立记录,本批未做这些场景的容量测量。下一步继续长期积压、资源曲线、生产采集/通知、目标数据库拓扑与正式工具链/版本兼容门禁。
|
||||
@@ -20,6 +20,8 @@
|
||||
| 真实Worker执行测量 | `orbit-exec-load`;最终短/混合/中长及截止不足四组,环境及原始JSON见[测量报告](phase-6-execution-load.md) | 96+96+6项全部逐项核验,长任务18次续租;24项截止负例按预期非零退出。SDK全模块竞态/vet/build通过,生产容量未验收 |
|
||||
| 真实Weave流程测量 | `orbit-workflow-load`;24实例、固定版本双分支并行,原始JSON见[流程测量报告](phase-6-workflow-load.md) | 24/24实例成功,48/48任务尝试与来源、输出逐项核验,重复调用0;生产容量未验收 |
|
||||
|
||||
| 真实定时集中触发测量 | `orbit-schedule-load`;4×6及32×4触发,2×12截止负例,见[定时测量报告](phase-6-schedule-load.md) | 正常152项逐项核验;负例18个未观察点、4个未核验任务,非零退出;38个计划均暂停,实际库外键0。SDK全模块竞态/vet/build通过;生产容量未验收 |
|
||||
|
||||
## 当前环境仍未覆盖
|
||||
|
||||
此前使用容器网络别名运行存储集成时,两组 COMMIT 故障测试曾因自身 `127.0.0.1` 明文连接前置条件被拒绝;本轮已改用共享网络命名空间单独复跑并通过,因此不再把它们列为未验证场景。共享网络命名空间只解决测试进程的 loopback 观察条件,不改变生产部署约束。
|
||||
|
||||
Reference in New Issue
Block a user