From 85816ddce28e12b4e56cf6a9da0189da6c9906f4 Mon Sep 17 00:00:00 2001 From: "Andrew J. Stone" Date: Thu, 25 Jul 2024 00:21:29 +0000 Subject: [PATCH] Ensure db-init files are disjoint --- .../{db-init-test.sql => db-init-1.sql} | 4 ---- .../replicated/{db-init.sql => db-init-2.sql} | 0 oximeter/db/src/client/dbwrite.rs | 15 +++++++++++++-- oximeter/db/tests/integration_test.rs | 2 +- 4 files changed, 14 insertions(+), 7 deletions(-) rename oximeter/db/schema/replicated/{db-init-test.sql => db-init-1.sql} (98%) rename oximeter/db/schema/replicated/{db-init.sql => db-init-2.sql} (100%) diff --git a/oximeter/db/schema/replicated/db-init-test.sql b/oximeter/db/schema/replicated/db-init-1.sql similarity index 98% rename from oximeter/db/schema/replicated/db-init-test.sql rename to oximeter/db/schema/replicated/db-init-1.sql index e8edbe13fd..44b080d517 100644 --- a/oximeter/db/schema/replicated/db-init-test.sql +++ b/oximeter/db/schema/replicated/db-init-1.sql @@ -1,7 +1,3 @@ -/* - * A test implementation of `db-init.sql` that only includes a few metric types. - * The purpose of this is to reduce test startup time. - */ CREATE DATABASE IF NOT EXISTS oximeter ON CLUSTER oximeter_cluster; /* The version table contains metadata about the `oximeter` database */ diff --git a/oximeter/db/schema/replicated/db-init.sql b/oximeter/db/schema/replicated/db-init-2.sql similarity index 100% rename from oximeter/db/schema/replicated/db-init.sql rename to oximeter/db/schema/replicated/db-init-2.sql diff --git a/oximeter/db/src/client/dbwrite.rs b/oximeter/db/src/client/dbwrite.rs index dadecb6a7e..4bf3b6011e 100644 --- a/oximeter/db/src/client/dbwrite.rs +++ b/oximeter/db/src/client/dbwrite.rs @@ -59,11 +59,20 @@ impl DbWrite for Client { } /// Initialize the replicated telemetry database, creating tables as needed. + /// + /// We run both db-init files since we want all tables in production. + /// These files are intentionally disjoint so that we don't have to + /// duplicate any setup. async fn init_replicated_db(&self) -> Result<(), Error> { debug!(self.log, "initializing ClickHouse database"); self.run_many_sql_statements(include_str!(concat!( env!("CARGO_MANIFEST_DIR"), - "/schema/replicated/db-init.sql" + "/schema/replicated/db-init-1.sql" + ))) + .await?; + self.run_many_sql_statements(include_str!(concat!( + env!("CARGO_MANIFEST_DIR"), + "/schema/replicated/db-init-2.sql" ))) .await } @@ -110,11 +119,13 @@ pub trait TestDbWrite { #[async_trait::async_trait] impl TestDbWrite for Client { /// Initialize the replicated telemetry database, creating tables as needed. + /// We run only the first db-init file, since it contains a minimum number + /// of tables required for replication/cluster tests. async fn init_test_minimal_replicated_db(&self) -> Result<(), Error> { debug!(self.log, "initializing ClickHouse database"); self.run_many_sql_statements(include_str!(concat!( env!("CARGO_MANIFEST_DIR"), - "/schema/replicated/db-init-test.sql" + "/schema/replicated/db-init-1.sql" ))) .await } diff --git a/oximeter/db/tests/integration_test.rs b/oximeter/db/tests/integration_test.rs index 135f32fc0f..e8159ce80d 100644 --- a/oximeter/db/tests/integration_test.rs +++ b/oximeter/db/tests/integration_test.rs @@ -37,8 +37,8 @@ impl TestInput { #[tokio::test] async fn test_cluster() -> anyhow::Result<()> { - let request_timeout = Duration::from_secs(15); usdt::register_probes().unwrap(); + let request_timeout = Duration::from_secs(15); let start = tokio::time::Instant::now(); let logctx = test_setup_log("test_cluster"); let log = &logctx.log;