Skip to content

Commit fccf455

Browse files
authored
Support for Lakebase - Autoscaling (#225)
* Fix * Fix
1 parent a5d658d commit fccf455

5 files changed

Lines changed: 16 additions & 31 deletions

File tree

.github/workflows/run_spicebench.yml

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -214,7 +214,7 @@ jobs:
214214
SCENARIO: ${{ github.event.inputs.scenario || 'tpch' }}
215215
SYSTEM_UNDER_TEST: ${{ github.event.inputs.system_under_test || 'spice_cloud' }}
216216
SYSTEM_ADAPTER: ${{ github.event.inputs.system_under_test || 'spice_cloud' }}
217-
NUM_QUERY_CLIENTS: '8'
217+
NUM_QUERY_CLIENTS: '2'
218218
ETL_BUCKET: 'spicebench'
219219
ETL_PREFIX: ${{ github.event.inputs.etl_type == 'changes' && 'data-gen-mutable' || 'data-gen' }}
220220
SCALE_FACTOR: ${{ github.event.inputs.scale_factor || '1' }}
@@ -232,9 +232,9 @@ jobs:
232232
S3_AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
233233
LAKEBASE_PG_HOST: ${{ secrets.LAKEBASE_PG_HOST }}
234234
LAKEBASE_PG_USER: ${{ secrets.LAKEBASE_PG_USER }}
235-
LAKEBASE_PG_DB_NAME: ${{ secrets.LAKEBASE_PG_DB_NAME }}
236235
LAKEBASE_PG_SCHEMA: ${{ secrets.LAKEBASE_PG_SCHEMA }}
237-
LAKEBASE_DATABASE_INSTANCE: ${{ secrets.LAKEBASE_DATABASE_INSTANCE }}
236+
LAKEBASE_PROJECT: ${{ secrets.LAKEBASE_PROJECT }}
237+
LAKEBASE_BRANCH: ${{ secrets.LAKEBASE_BRANCH }}
238238
SPIDAPTER_ICEBERG_REGION: us-west-1
239239
SPIDAPTER_ICEBERG_CATALOG_FROM: iceberg:https://glue.us-west-1.amazonaws.com/iceberg/v1/catalogs/211125479522/namespaces
240240
run: |
@@ -309,11 +309,11 @@ jobs:
309309
310310
if [ "${SYSTEM_UNDER_TEST}" = "databricks-lakebase" ]; then
311311
ADAPTER_ENVS="${ADAPTER_ENVS} --system-adapter-env DATABRICKS_COMPUTE_MODE=lakebase"
312-
ADAPTER_ENVS="${ADAPTER_ENVS} --system-adapter-env LAKEBASE_PG_HOST=${LAKEBASE_PG_HOST}"
312+
ADAPTER_ENVS="${ADAPTER_ENVS} --system-adapter-env LAKEBASE_PG_HOST=ep-sweet-morning-d1z2teqy.database.us-west-2.cloud.databricks.com"
313313
ADAPTER_ENVS="${ADAPTER_ENVS} --system-adapter-env LAKEBASE_PG_USER=${LAKEBASE_PG_USER}"
314-
ADAPTER_ENVS="${ADAPTER_ENVS} --system-adapter-env LAKEBASE_PG_DB_NAME=${LAKEBASE_PG_DB_NAME}"
315314
ADAPTER_ENVS="${ADAPTER_ENVS} --system-adapter-env LAKEBASE_PG_SCHEMA=${LAKEBASE_PG_SCHEMA}"
316-
ADAPTER_ENVS="${ADAPTER_ENVS} --system-adapter-env LAKEBASE_DATABASE_INSTANCE=${LAKEBASE_DATABASE_INSTANCE}"
315+
ADAPTER_ENVS="${ADAPTER_ENVS} --system-adapter-env LAKEBASE_PROJECT=${LAKEBASE_PROJECT}"
316+
ADAPTER_ENVS="${ADAPTER_ENVS} --system-adapter-env LAKEBASE_BRANCH=${LAKEBASE_BRANCH}"
317317
fi
318318
319319
~/.spice/bin/spicebench run \

crates/data-generation/src/storage/file.rs

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -157,15 +157,6 @@ impl DataStorage for FileStorage {
157157
.await
158158
.map_err(|e| anyhow::anyhow!("spawn_blocking panicked reading parquet: {e}"))??;
159159

160-
if table_name == "lineitem"
161-
&& let Some(result) = result.as_ref()
162-
{
163-
eprintln!(
164-
"[etl-read] table={table_name} batch_id={batch_id} rows={}",
165-
result.rows_read,
166-
);
167-
}
168-
169160
Ok(result)
170161
}
171162

src/commands/load/mod.rs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -532,7 +532,8 @@ async fn run_checkpoint_validation(
532532
) -> CheckpointValidationResult {
533533
let deadline = tokio::time::Instant::now() + max_wait;
534534

535-
let probe_query = &queries[0];
535+
// Use query2 as the probe query. Query1 is too slow.
536+
let probe_query = &queries[1];
536537
let Some(probe_expected) = expected_results.get(&probe_query.name) else {
537538
eprintln!(
538539
"Checkpoint {checkpoint_idx}: no expected results for probe query '{}', skipping validation",

src/commands/run.rs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -125,7 +125,6 @@ async fn run_benchmark(
125125
&mutations,
126126
target_config.clone(),
127127
)?;
128-
129128
let (setup_response, mut pipeline) = {
130129
let setup_response = system_adapter_client
131130
.lock()

system-adapters/databricks/src/main.rs

Lines changed: 8 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -449,7 +449,7 @@ impl AdapterConfig {
449449
struct DatabaseCredentialResponse {
450450
token: String,
451451
#[serde(alias = "expiration_time", alias = "expire_time")]
452-
expiration_time: Option<String>,
452+
_expiration_time: Option<String>,
453453
}
454454

455455
impl DatabricksAdapter {
@@ -1759,12 +1759,12 @@ impl DatabricksAdapter {
17591759
});
17601760
(url, payload)
17611761
}
1762-
LakebaseSyncTarget::Project { name, branch } => {
1762+
LakebaseSyncTarget::Project { name: _, branch: _ } => {
17631763
// Autoscaling uses the postgres API path and endpoint-based credential generation
17641764
let endpoint_path =
1765-
format!("projects/{}/branches/{}/endpoints/default", name, branch);
1765+
format!("projects/spicebench/branches/production/endpoints/primary");
17661766
let url = format!(
1767-
"https://{}/api/2.0/postgres/generate-database-credential",
1767+
"https://{}/api/2.0/postgres/credentials",
17681768
self.config.endpoint
17691769
);
17701770
let payload = json!({
@@ -1775,8 +1775,6 @@ impl DatabricksAdapter {
17751775
}
17761776
};
17771777

1778-
eprintln!("[databricks-adapter] generating fresh Lakebase PG OAuth token");
1779-
17801778
let response = self
17811779
.client
17821780
.post(&url)
@@ -1794,10 +1792,6 @@ impl DatabricksAdapter {
17941792
}
17951793

17961794
let cred: DatabaseCredentialResponse = response.json().await?;
1797-
eprintln!(
1798-
"[databricks-adapter] Lakebase PG token generated, expires: {}",
1799-
cred.expiration_time.as_deref().unwrap_or("unknown")
1800-
);
18011795

18021796
Ok(cred.token)
18031797
}
@@ -2030,9 +2024,6 @@ impl Handler for DatabricksAdapter {
20302024
match variant {
20312025
DatabricksVariant::Databricks => {}
20322026
DatabricksVariant::Lakebase => {
2033-
eprintln!("[databricks-adapter] Waiting 2 minutes for schema to initialize");
2034-
std::thread::sleep(Duration::from_secs(120));
2035-
20362027
let lakebase_config = match &self.config.compute_target {
20372028
ComputeTarget::Lakebase(cfg) => cfg,
20382029
_ => {
@@ -2387,7 +2378,10 @@ impl Handler for DatabricksAdapter {
23872378

23882379
#[tokio::main]
23892380
async fn main() -> Result<()> {
2390-
let cli = Cli::parse();
2381+
let cli = Cli::try_parse().map_err(|e| {
2382+
eprintln!("[databricks-adapter] CLI parse error: {e}");
2383+
e.exit();
2384+
})?;
23912385

23922386
match cli.command {
23932387
Commands::Stdio(args) => {

0 commit comments

Comments
 (0)