{
  "schema_version": 1,
  "suite_id": "internet-platform-pressure",
  "title": "Internet platform 50G pressure scenario set",
  "status": "scenario_contract_not_evidence",
  "purpose": "Persist neutral internet platform pressure scenarios so later runnable work can reuse testcase ids, workload profiles, restore policy, and report fields without treating this file as execution proof.",
  "pass_warning": "This suite is configuration metadata only. It does not prove live target execution, measured throughput, or any pressure pass, and it must not be reported as formal capacity evidence without a fresh attempt-root guard result.",
  "support_truth": {
    "prepare": "supported_now",
    "run": "supported_now",
    "live_target_execution": "not_proven",
    "formal_pressure_pass": "not_proven",
    "boundary": "supported_now means selectable non-live implementation paths for internet prepare and run; this suite is not live E2E, benchmark, measured throughput, or pressure-pass evidence."
  },
  "dataset_binding": {
    "target_size": "50G",
    "model": "internet_platform",
    "catalog_table_count": 22,
    "csv_object_target_bytes": 536870912,
    "restore_baseline": "prepare_end_backup",
    "replace_per_attempt": [
      "database",
      "object_store_binding",
      "metadata_path",
      "backup_storage_binding",
      "metrics_datasource"
    ],
    "executor_derived": [
      "table_scoped_global_sort_workspace"
    ]
  },
  "default_measurement_contract": {
    "duration_seconds": 300,
    "warmup_seconds": 60,
    "cooldown_seconds": 30,
    "progress_interval_secs": 30,
    "warmup_excluded_from_measurement": true,
    "restore_policy": "restore_before_each_capacity_step",
    "case_result_status": "observed_or_blocked_only",
    "formal_pass_requires": [
      "fresh init, prepare, run, and cleanup attempt-root evidence",
      "live target execution evidence",
      "zero blocked runtime statements",
      "run receipt and closeout generated by the same committed binary",
      "guard success from the attempt root"
    ]
  },
  "required_report_fields": [
    "testcase_id",
    "target_size",
    "catalog_table_count",
    "source_object_count",
    "restore_policy",
    "restore_receipt",
    "warmup_seconds",
    "measurement_seconds",
    "concurrency",
    "pressure_node_count",
    "pressure_worker_count",
    "sql_pool_size",
    "workload_mix",
    "workload_profile",
    "observed_distribution_summary",
    "executed_statement_count",
    "statement_qps",
    "stable_statement_qps",
    "blocked_statement_count",
    "blocked_root_cause",
    "report_parity.pressure_shape",
    "report_parity.sql_type_statement_qps",
    "report_parity.latency",
    "report_parity.resource_evidence_paths",
    "report_parity.bottleneck_interpretation_status",
    "tidb_p99_latency_ms",
    "tidb_qps",
    "tikv_grpc_rate",
    "tikv_write_stall_max",
    "pd_region_symptoms",
    "pressure_node_cpu",
    "pressure_node_memory",
    "pressure_node_network",
    "bottleneck_interpretation"
  ],
  "scenarios": [
    {
      "testcase_id": "internet-platform-pressure-c128-baseline",
      "family": "canonical_platform_restore_isolated",
      "objective": "Measure a neutral platform baseline after restoring the prepare-end backup.",
      "workload_profile": {
        "name": "canonical-platform",
        "hotspot": false
      },
      "restore_policy": "restore_before_step",
      "measurement_seconds": 300,
      "concurrency": 128,
      "pressure_node_count": 2,
      "per_node_sql_pool_size": 64,
      "per_node_worker_limit": 128,
      "transaction_focus": [
        "account_session",
        "merchant_catalog_search",
        "order_placement",
        "payment_authorization",
        "order_status_lookup"
      ],
      "observation_focus": [
        "baseline statement throughput",
        "order and payment latency",
        "read and write balance"
      ]
    },
    {
      "testcase_id": "internet-platform-pressure-c256-order-money",
      "family": "order_money_restore_isolated",
      "objective": "Raise order and money lane pressure while preserving platform transaction lineage.",
      "workload_profile": {
        "name": "order-money-balanced",
        "hotspot": false,
        "weighted_families": {
          "order_placement": 0.24,
          "matching_dispatch": 0.18,
          "payment_authorization": 0.18,
          "wallet_movement": 0.12,
          "settlement_batch": 0.08,
          "order_status_lookup": 0.10,
          "merchant_catalog_search": 0.10
        }
      },
      "restore_policy": "restore_before_step",
      "measurement_seconds": 300,
      "concurrency": 256,
      "pressure_node_count": 4,
      "per_node_sql_pool_size": 96,
      "per_node_worker_limit": 192,
      "observation_focus": [
        "order event append latency",
        "authorization and wallet write latency",
        "settlement batch read-write balance"
      ]
    },
    {
      "testcase_id": "internet-platform-pressure-c384-dispatch",
      "family": "dispatch_availability_restore_isolated",
      "objective": "Stress matching and availability state changes without embedding fixed SQL literals.",
      "workload_profile": {
        "name": "dispatch-availability",
        "hotspot": false,
        "weighted_families": {
          "provider_availability_update": 0.22,
          "matching_dispatch": 0.28,
          "order_placement": 0.18,
          "operational_health_read": 0.12,
          "merchant_catalog_search": 0.10,
          "order_status_lookup": 0.10
        }
      },
      "restore_policy": "restore_before_step",
      "measurement_seconds": 300,
      "concurrency": 384,
      "pressure_node_count": 4,
      "per_node_sql_pool_size": 128,
      "per_node_worker_limit": 256,
      "observation_focus": [
        "availability update contention",
        "dispatch claim latency",
        "operational read impact"
      ]
    },
    {
      "testcase_id": "internet-platform-pressure-c256-hot-service-area",
      "family": "declared_hotspot_restore_isolated",
      "objective": "Concentrate approximately 80% of selected business roots on exactly 20% of prepared service-area keys while keeping hotspot policy outside SQL text.",
      "workload_profile": {
        "name": "internet-service-area-20-80",
        "hotspot": true,
        "hot_dimensions": ["service_area"],
        "hot_set_size": 0,
        "skew_percent": 80,
        "skew_function": "hotset_uniform",
        "lineage_seed": 198,
        "hot_range_percent": 20,
        "hot_range_placement": "middle",
        "hot_density_ratio_target": 16,
        "derived_hot_pressure_percent": 80
      },
      "restore_policy": "restore_before_step",
      "measurement_seconds": 300,
      "concurrency": 256,
      "pressure_node_count": 4,
      "per_node_sql_pool_size": 96,
      "per_node_worker_limit": 192,
      "observation_focus": [
        "per-domain selected-root hot/non-hot distribution",
        "service-area key-to-TiKV Region mapping",
        "lock wait and retry symptoms",
        "latency difference from canonical profile"
      ],
      "pass_interpretation": "Hotspot output is stress evidence only and must not be reported as a canonical pass sample."
    }
  ],
  "reuse_rules": [
    "Reuse testcase ids only after binding a fresh target environment and attempt id.",
    "Do not reuse measured values from another profile as internet-platform pressure evidence.",
    "Do not require users to provide per-table global-sort workspaces; the executor derives them from the attempt binding.",
    "Do not mix restore-isolated and continuous-ramp results in the same capacity curve."
  ]
}
