Skip to content

Commit 4b08742

Browse files
authored
Add 'scheduler_state_location' (#173)
1 parent 010ed48 commit 4b08742

3 files changed

Lines changed: 24 additions & 0 deletions

File tree

.github/workflows/run_spicebench.yml

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -69,6 +69,11 @@ on:
6969
options:
7070
- ubuntu-latest
7171
- spiceai-dev-runners
72+
scheduler_state_location:
73+
description: "S3 URI for shared scheduler state (e.g. s3://bucket/scheduler-state/). If empty, scheduler state is not configured."
74+
required: false
75+
default: ""
76+
type: string
7277

7378
jobs:
7479
run-spicebench:
@@ -258,6 +263,7 @@ jobs:
258263
ETL_VERSION: ${{ github.event.inputs.etl_version }}
259264
ETL_REGION: ${{ github.event.inputs.etl_region || 'us-east-1' }}
260265
ETL_SINK: ${{ github.event.inputs.etl_sink || 'adbc' }}
266+
SCHEDULER_STATE_LOCATION: ${{ github.event.inputs.scheduler_state_location || '' }}
261267
VALIDATE_CHECKPOINT_RESULTS: ${{ github.event.inputs.validate_checkpoint_results || 'false' }}
262268
ENABLE_MODULE_DEBUG_LOGGING: ${{ github.event.inputs.enable_module_debug_logging || 'false' }}
263269
SPICEAI_BENCHMARK_METRICS_KEY: ${{ secrets.SPICEAI_BENCHMARK_METRICS_KEY }}
@@ -304,6 +310,11 @@ jobs:
304310
VALIDATION_ARGS="--validate-results"
305311
fi
306312
313+
SCHEDULER_ARGS=""
314+
if [ -n "${SCHEDULER_STATE_LOCATION}" ]; then
315+
SCHEDULER_ARGS="--scheduler-state-location ${SCHEDULER_STATE_LOCATION}"
316+
fi
317+
307318
if [ "${SYSTEM_UNDER_TEST_PREFIX}" = "databricks" ]; then
308319
ADAPTER_CMD="${HOME}/.spice/bin/databricks-system-adapter"
309320
ADAPTER_ARGS="stdio"
@@ -342,6 +353,7 @@ jobs:
342353
${ETL_ARGS} \
343354
${ETL_SINK_ARGS} \
344355
${VALIDATION_ARGS} \
356+
${SCHEDULER_ARGS} \
345357
--system-adapter-stdio-cmd "${ADAPTER_CMD}" \
346358
--system-adapter-stdio-args "${ADAPTER_ARGS}" \
347359
${ADAPTER_ENVS} \

src/args/mod.rs

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -139,6 +139,11 @@ pub struct CommonArgs {
139139
#[arg(long)]
140140
pub(crate) etl_endpoint: Option<String>,
141141

142+
/// S3 URI for shared scheduler state (e.g. `s3://bucket/scheduler-state/`).
143+
/// Passed to the system adapter as `scheduler_state_location` metadata.
144+
#[arg(long)]
145+
pub(crate) scheduler_state_location: Option<String>,
146+
142147
/// Ordered list of columns used for hive-style partitioning of ETL output.
143148
///
144149
/// Example: `--etl-partition-by __created_at,product_type`

src/main.rs

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -447,6 +447,13 @@ async fn main() -> anyhow::Result<()> {
447447
}
448448
}
449449

450+
if let Some(ref state_loc) = cli.common.scheduler_state_location {
451+
setup_metadata.insert(
452+
"scheduler_state_location".to_string(),
453+
serde_json::Value::String(state_loc.clone()),
454+
);
455+
}
456+
450457
if let Ok(system_under_test) = std::env::var("SYSTEM_UNDER_TEST") {
451458
setup_metadata.insert(
452459
"system_under_test".to_string(),

0 commit comments

Comments
 (0)