schema_version: tipoc.v3.spec.v1
identity: {run_id: ru-v2-securities-missing-index, attempt_id: attempt-001, run_profile_id: ru-v2-securities-missing-index-a001}
init:
  entry_node_id: local-1
  entry_address: 127.0.0.1
  coordinator_node_id: local-1
  attempt_root: runs/ru-v2-securities-missing-index/attempt-001
  remote_attempt_root: runs/ru-v2-securities-missing-index/attempt-001
  bootstrap_timeout_secs: 60
  status_poll_interval_secs: 30
scenario:
  industry: securities
  model: tpce
  source_profile_ref: generated_tpce_csv
  runtime_profile_ref: canonical
  scale: {target_size: 50G}
target_cluster: {sql_endpoint: "127.0.0.1:4000", pd_endpoint: "127.0.0.1:2379", credentials_ref: "env:TIPOC_TIDB_DSN"}
object_store: {kind: minio, uri: "s3://tipoc-tv-local/ru-v2-securities-pair-dataset", credential_ref: "env:MINIO_PROFILE"}
generation:
  nodes: [{node_id: local-1, address: 127.0.0.1, capacity: 8}]
  load_unit_size: 1000
  rng: lcg64
prepare:
  source_kind: generated_tpce
  source_format: csv
  import_executor: tidb_import_into_file
  unsupported_source_policy: fail_closed_no_side_effect
  import_mode: import
  ops: [generate, import, add-index]
  csv_object_target_bytes: 536870912
  scheduling_chunk_bytes: 268435456
  import_thread: 16
  final_index_policy: prepare_end
pressure:
  duration_seconds: 720
  warmup_seconds: 120
  cooldown_seconds: 30
  progress_interval_secs: 30
  concurrency: 32
  workload_mix: tpce
  workload_profile: {name: canonical}
  nodes: [local-1]
  node_specs: [{node_id: local-1, address: 127.0.0.1, pressure_capacity_units: 1, pressure_sql_pool_size: 48, pressure_ce_worker_limit: 32}]
monitoring: {metrics: [tidb_sql_latency, tidb_cpu, tikv_grpc_rate]}
reporting:
  output_dir: runs/ru-v2-securities-missing-index/attempt-001
  query_cost:
    mode: latency_and_statement_ru
    attempt_ru_source: tidb_last_query_info
    attempt_ru_timeout_milliseconds: 500
    attempt_ru_failure_budget: 100
    max_leaf_groups: 4096
    max_rollup_groups: 8192
    relative_accuracy: 0.01
    isolation:
      contract: single_run_single_target_unit_single_workload_database
      status: verified_test_environment
      reason: dedicated RU acceptance target with no foreign workload
  ru_acceptance:
    enabled: true
    required_provider_id: tidb_last_query_info_rru_wru/v1
    required_ru_model: resource_control_rru_plus_wru
    scenario_id: securities-missing-index
    scenario_variant: missing_index
    comparison_group: securities-index-pair
    min_shared_samples: 100
    focus_top_n_by_ru: 10
    forced_statement_ids: [report_01, recent_trade_status_feature]
    max_forced_anchors: 4
operations:
  - id: securities/tpce/big_query
    enabled: true
    runtime: {concurrency: 1, start_after_foreground_ready_seconds: 0, duration_seconds: 600, query_timeout_seconds: 120, query_ids: [report_01]}
  - id: securities/tpce/recent_trade_status
    enabled: true
    prepare:
      query_mode: table_full_scan
      minimum_status_rows: 1000000
      minimum_matched_rows: 20
      maximum_matched_rows: 1000
      calibration_candidates: 4
      calibration_timeout_seconds: 30
      bad_query_hints: {table_full_scan: "USE INDEX()"}
    runtime:
      concurrency: 1
      offered_qps: 2
      query_timeout_seconds: 60
      page_size: 20
      warmup_seconds: 120
      table_full_scan_weight: 1
      ordered_index_lookup_weight: 1
      query_phase: feature
cleanup: {policy: preserve_evidence, preserve_evidence: true}
actions: []
