{
  "schema_version": 1,
  "suite_id": "securities-pressure-single-node",
  "title": "TPC-E securities single-node pressure scenario set",
  "status": "measured_50g_local_reusable_template",
  "purpose": "Persist the measured 50G single-node pressure scenarios so later local and larger-environment runs reuse the same testcase ids, fields, restore semantics, and reporting language.",
  "pass_warning": "This suite records pressure scenarios and measured samples. It does not by itself close a formal four-stage pass; pass evidence still requires a fresh attempt-root guard.",
  "dataset_binding": {
    "target_size": "50G",
    "database": "tipoc_securities_local_20260521_a005",
    "baseline_attempt": "/Users/benjamin2037/tipoc-sv/runs/d8-local-50g-e2e/attempt-005",
    "prepare_baseline": {
      "catalog_table_count": 33,
      "prepared_table_count": 33,
      "imported_non_empty_table_count": 32,
      "empty_prepare_table_count": 1,
      "empty_prepare_tables": [
        "trade_request"
      ],
      "source_object_count": 366,
      "csv_object_target_bytes": 536870912,
      "total_prepared_rows": 1319395393,
      "total_csv_source_bytes": 61267335061,
      "statistics_validation": "passed",
      "br_checkpoint": "executed"
    }
  },
  "default_measurement_contract": {
    "measurement_seconds": 180,
    "warmup_required_for_formal_restore_sweep": true,
    "warmup_excluded_from_measurement": true,
    "restore_baseline": "prepare_end_br",
    "formal_ceiling_step_seconds": 180,
    "stability_window_seconds": 300,
    "restore_policy_notes": [
      "Restore-isolated capacity steps must restore the same prepare-end BR baseline before each measured step.",
      "Continuous no-restore ramp-up is a separate endurance or evolving-state scenario and must not be mixed with restore-isolated capacity curves."
    ]
  },
  "required_report_fields": [
    "testcase_id",
    "target_size",
    "database",
    "source_object_count",
    "catalog_table_count",
    "imported_non_empty_table_count",
    "empty_prepare_tables",
    "restore_policy",
    "restore_receipt",
    "warmup_seconds",
    "measurement_seconds",
    "concurrency",
    "pressure_worker_count",
    "sql_pool_size",
    "executed_statement_count",
    "statement_qps",
    "blocked_statement_count",
    "blocked_root_cause",
    "tidb_p99_latency_ms_avg",
    "tidb_p99_latency_ms_max",
    "tidb_qps",
    "tikv_grpc_rate",
    "tikv_write_stall_max",
    "tidb_cpu",
    "tikv_cpu",
    "pd_region_symptoms",
    "disk_free_min",
    "disk_free_max",
    "workload_profile",
    "observed_distribution_summary",
    "bottleneck_interpretation"
  ],
  "scenarios": [
    {
      "testcase_id": "pressure-restore-c128",
      "family": "canonical_restore_isolated",
      "objective": "Measure a single canonical concurrency level after restoring the prepare-end BR baseline.",
      "workload_profile": {
        "name": "canonical",
        "hotspot": false
      },
      "restore_policy": "restore_before_step",
      "warmup_policy": "required_for_formal_runs",
      "measurement_seconds": 180,
      "concurrency": 128,
      "measured_sample": {
        "evidence_id": "pressure-c128-restore-001",
        "duration_seconds": 175.83,
        "restore_seconds": 129,
        "statement_qps": 6185.14,
        "blocked_statement_count": 0,
        "tidb_p99_latency_ms_avg": 278.3,
        "tidb_p99_latency_ms_max": 821.3,
        "tikv_write_stall_max": 0,
        "bottleneck_interpretation": "TiKV CPU averaged 472.6%; p99 climbed during the measurement window."
      }
    },
    {
      "testcase_id": "pressure-restore-c384",
      "family": "canonical_restore_isolated",
      "objective": "Measure a higher canonical concurrency level after restoring the prepare-end BR baseline.",
      "workload_profile": {
        "name": "canonical",
        "hotspot": false
      },
      "restore_policy": "restore_before_step",
      "warmup_policy": "required_for_formal_runs",
      "measurement_seconds": 180,
      "concurrency": 384,
      "measured_sample": {
        "evidence_id": "pressure-c384-restore-001",
        "duration_seconds": 176.38,
        "restore_seconds": "captured",
        "statement_qps": 5476.06,
        "blocked_statement_count": 0,
        "tidb_p99_latency_ms_avg": 1257.4,
        "tidb_p99_latency_ms_max": 2452.2,
        "tikv_write_stall_max": 0,
        "bottleneck_interpretation": "TiKV CPU averaged 604.0%; latency rose sharply while QPS decreased."
      }
    },
    {
      "testcase_id": "pressure-ramp-c064",
      "family": "canonical_continuous_ramp",
      "objective": "Start the no-restore ramp from low concurrency and record a clean canonical baseline.",
      "workload_profile": {
        "name": "canonical",
        "hotspot": false
      },
      "restore_policy": "restore_once_before_group",
      "warmup_policy": "not_separately_recorded_in_measured_sample",
      "measurement_seconds": 180,
      "concurrency": 64,
      "measured_sample": {
        "evidence_id": "pressure-ramp-norestore-001-c064",
        "duration_seconds": 175.32,
        "statement_qps": 11919.69,
        "blocked_statement_count": 0,
        "tidb_p99_latency_ms_avg": 18.49,
        "tidb_p99_latency_ms_max": 29.55,
        "tikv_write_stall_max": 0,
        "bottleneck_interpretation": "Low-concurrency canonical baseline with controlled latency."
      }
    },
    {
      "testcase_id": "pressure-ramp-c128",
      "family": "canonical_continuous_ramp",
      "objective": "Continue the no-restore ramp at moderate concurrency.",
      "workload_profile": {
        "name": "canonical",
        "hotspot": false
      },
      "restore_policy": "restore_once_before_group",
      "warmup_policy": "not_separately_recorded_in_measured_sample",
      "measurement_seconds": 180,
      "concurrency": 128,
      "measured_sample": {
        "evidence_id": "pressure-ramp-norestore-001-c128",
        "duration_seconds": 175.3,
        "statement_qps": 11123.2,
        "blocked_statement_count": 0,
        "tidb_p99_latency_ms_avg": 44.87,
        "tidb_p99_latency_ms_max": 51.49,
        "tikv_write_stall_max": 0,
        "bottleneck_interpretation": "Still above the QPS gate, with higher latency than c064."
      }
    },
    {
      "testcase_id": "pressure-ramp-c256",
      "family": "canonical_continuous_ramp",
      "objective": "Continue the no-restore ramp at the original pressure concurrency.",
      "workload_profile": {
        "name": "canonical",
        "hotspot": false
      },
      "restore_policy": "restore_once_before_group",
      "warmup_policy": "not_separately_recorded_in_measured_sample",
      "measurement_seconds": 180,
      "concurrency": 256,
      "measured_sample": {
        "evidence_id": "pressure-ramp-norestore-001-c256",
        "duration_seconds": 175.4,
        "statement_qps": 14456.35,
        "blocked_statement_count": 0,
        "tidb_p99_latency_ms_avg": 57.92,
        "tidb_p99_latency_ms_max": 59.92,
        "tikv_write_stall_max": 0,
        "bottleneck_interpretation": "Strong canonical sample; state had evolved after earlier ramp stages."
      }
    },
    {
      "testcase_id": "pressure-ceiling-c256",
      "family": "canonical_ceiling_check",
      "objective": "Check whether c256 remains below the observed single-node ceiling in a separate no-restore ceiling group.",
      "workload_profile": {
        "name": "canonical",
        "hotspot": false
      },
      "restore_policy": "restore_once_before_group",
      "warmup_policy": "not_separately_recorded_in_measured_sample",
      "measurement_seconds": 180,
      "concurrency": 256,
      "measured_sample": {
        "evidence_id": "pressure-ramp-ceiling-check-001-c256",
        "duration_seconds": 175.46,
        "statement_qps": 11751.35,
        "blocked_statement_count": 0,
        "tidb_p99_latency_ms_avg": 75.29,
        "tidb_p99_latency_ms_max": 99.24,
        "tikv_write_stall_max": 0,
        "bottleneck_interpretation": "Passed; below later c512 throughput."
      }
    },
    {
      "testcase_id": "pressure-ceiling-c384",
      "family": "canonical_ceiling_check",
      "objective": "Raise canonical pressure to c384 and compare throughput and p99 latency.",
      "workload_profile": {
        "name": "canonical",
        "hotspot": false
      },
      "restore_policy": "restore_once_before_group",
      "warmup_policy": "not_separately_recorded_in_measured_sample",
      "measurement_seconds": 180,
      "concurrency": 384,
      "measured_sample": {
        "evidence_id": "pressure-ramp-ceiling-check-001-c384",
        "duration_seconds": 175.44,
        "statement_qps": 12689.87,
        "blocked_statement_count": 0,
        "tidb_p99_latency_ms_avg": 110.76,
        "tidb_p99_latency_ms_max": 119.87,
        "tikv_write_stall_max": 0,
        "bottleneck_interpretation": "Passed; higher throughput than c256 but below c512."
      }
    },
    {
      "testcase_id": "pressure-ceiling-c512",
      "family": "canonical_ceiling_check",
      "objective": "Record the best measured canonical single-node operating point from the current sample set.",
      "workload_profile": {
        "name": "canonical",
        "hotspot": false
      },
      "restore_policy": "restore_once_before_group",
      "warmup_policy": "not_separately_recorded_in_measured_sample",
      "measurement_seconds": 180,
      "concurrency": 512,
      "measured_sample": {
        "evidence_id": "pressure-ramp-ceiling-check-001-c512",
        "duration_seconds": 175.62,
        "statement_qps": 14559.4,
        "blocked_statement_count": 0,
        "tidb_p99_latency_ms_avg": 110.92,
        "tidb_p99_latency_ms_max": 119.31,
        "tikv_write_stall_max": 0,
        "bottleneck_interpretation": "Best measured canonical single-node point in this sample set."
      }
    },
    {
      "testcase_id": "pressure-ceiling-c768",
      "family": "canonical_ceiling_check",
      "objective": "Identify whether additional concurrency beyond c512 improves throughput or only raises latency.",
      "workload_profile": {
        "name": "canonical",
        "hotspot": false
      },
      "restore_policy": "restore_once_before_group",
      "warmup_policy": "not_separately_recorded_in_measured_sample",
      "measurement_seconds": 180,
      "concurrency": 768,
      "measured_sample": {
        "evidence_id": "pressure-ramp-ceiling-check-001-c768",
        "duration_seconds": 175.79,
        "statement_qps": 14503.24,
        "blocked_statement_count": 0,
        "tidb_p99_latency_ms_avg": 153.21,
        "tidb_p99_latency_ms_max": 177.14,
        "tikv_write_stall_max": 0,
        "bottleneck_interpretation": "Latency knee: throughput is flat against c512 while p99 rises sharply."
      }
    },
    {
      "testcase_id": "pressure-hot-symbol-c256",
      "family": "hotspot_burst",
      "objective": "Stress declared security and symbol hotspots while preserving the TPC-E runtime state machine.",
      "workload_profile": {
        "name": "hot-symbol",
        "hotspot": true,
        "hot_dimensions": [
          "security",
          "symbol"
        ],
        "hot_set_size": 16,
        "skew_percent": 100,
        "lineage_seed": 20260521
      },
      "restore_policy": "restore_before_hotspot_run",
      "warmup_policy": "required_for_formal_runs",
      "measurement_seconds": 180,
      "concurrency": 256,
      "measured_sample": {
        "evidence_id": "pressure-hot-symbol-burst-001",
        "duration_seconds": 180.1,
        "statement_qps": 1963.92,
        "blocked_statement_count": 122,
        "blocked_root_cause": "DM-DAILY_MARKET-S01 lock wait timeout",
        "tidb_p99_latency_ms_avg": 30.55,
        "tikv_write_stall_max": 0,
        "observed_distribution_summary": {
          "security_distinct_count": 16,
          "symbol_distinct_count": 16,
          "customer_distinct_count": 28935,
          "account_distinct_count": 28935
        },
        "bottleneck_interpretation": "Expected hotspot stress evidence; it proves contention sensitivity and must not be treated as a canonical pass sample."
      }
    }
  ],
  "reuse_templates": [
    {
      "template_id": "larger-environment-reuse",
      "status": "not_started",
      "reuse_rule": "Reuse testcase ids and report fields only after a formal task card opens for the target profile, such as essential or premium.",
      "supported_profiles": [
        "essential",
        "premium"
      ],
      "replace_bindings": [
        "target_size",
        "database",
        "machine_topology",
        "source_object_store_uri",
        "user_metadata_path",
        "br_baseline",
        "csv_object_target_bytes",
        "concurrency_gradient",
        "metrics_datasource"
      ],
      "derived_by_executor": [
        "global_sort_internal_uri"
      ],
      "forbidden": [
        "reuse measured 50G QPS values as larger-environment results",
        "start essential or premium execution without the matching task card",
        "require users to provide TiDB Global Sort internal URIs",
        "mix restore-isolated and no-restore ramp samples in the same capacity curve"
      ]
    }
  ]
}
