Skip to content

Commit f414908

Browse files
committed
compute-client: fix mz_compute_operator_hydration_statuses_per_worker primary key
Add `worker_id` to the primary key of `mz_compute_operator_hydration_statuses_per_worker` so that rows from different workers do not collide. The view has one row per `(export_id, lir_id, worker_id)`, so the previous key `(export_id, lir_id)` was incorrect and could cause inconsistent results when joining or deduplicating against the index. Fixes CLU-87.
1 parent d23fb6f commit f414908

4 files changed

Lines changed: 4 additions & 3 deletions

File tree

src/compute-client/src/logging.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -363,7 +363,7 @@ impl LogVariant {
363363
.with_column("lir_id", SqlScalarType::UInt64.nullable(false))
364364
.with_column("worker_id", SqlScalarType::UInt64.nullable(false))
365365
.with_column("hydrated", SqlScalarType::Bool.nullable(false))
366-
.with_key(vec![0, 1])
366+
.with_key(vec![0, 1, 2])
367367
.finish(),
368368

369369
LogVariant::Compute(ComputeLog::LirMapping) => RelationDesc::builder()

test/sqllogictest/cluster.slt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -223,6 +223,7 @@ bar mz_compute_operator_durations_histogram_raw mz_compute_operator_durations_
223223
bar mz_compute_operator_durations_histogram_raw mz_compute_operator_durations_histogram_raw_u7_primary_idx 3 duration_ns NULL false
224224
bar mz_compute_operator_hydration_statuses_per_worker mz_compute_operator_hydration_statuses_per_worker_u7_primary_idx 1 export_id NULL false
225225
bar mz_compute_operator_hydration_statuses_per_worker mz_compute_operator_hydration_statuses_per_worker_u7_primary_idx 2 lir_id NULL false
226+
bar mz_compute_operator_hydration_statuses_per_worker mz_compute_operator_hydration_statuses_per_worker_u7_primary_idx 3 worker_id NULL false
226227
bar mz_dataflow_addresses_per_worker mz_dataflow_addresses_per_worker_u7_primary_idx 1 id NULL false
227228
bar mz_dataflow_addresses_per_worker mz_dataflow_addresses_per_worker_u7_primary_idx 2 worker_id NULL false
228229
bar mz_dataflow_channels_per_worker mz_dataflow_channels_per_worker_u7_primary_idx 1 id NULL false

test/sqllogictest/mz_catalog_server_index_accounting.slt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ mz_compute_hydration_times_per_worker_s2_primary_idx CREATE␠INDEX␠"mz_compu
6161
mz_compute_import_frontiers_per_worker_s2_primary_idx CREATE␠INDEX␠"mz_compute_import_frontiers_per_worker_s2_primary_idx"␠IN␠CLUSTER␠[s2]␠ON␠"mz_introspection"."mz_compute_import_frontiers_per_worker"␠("export_id",␠"import_id",␠"worker_id")
6262
mz_compute_lir_mapping_per_worker_s2_primary_idx CREATE␠INDEX␠"mz_compute_lir_mapping_per_worker_s2_primary_idx"␠IN␠CLUSTER␠[s2]␠ON␠"mz_introspection"."mz_compute_lir_mapping_per_worker"␠("global_id",␠"lir_id",␠"worker_id")
6363
mz_compute_operator_durations_histogram_raw_s2_primary_idx CREATE␠INDEX␠"mz_compute_operator_durations_histogram_raw_s2_primary_idx"␠IN␠CLUSTER␠[s2]␠ON␠"mz_introspection"."mz_compute_operator_durations_histogram_raw"␠("id",␠"worker_id",␠"duration_ns")
64-
mz_compute_operator_hydration_statuses_per_worker_s2_primary_idx CREATE␠INDEX␠"mz_compute_operator_hydration_statuses_per_worker_s2_primary_idx"␠IN␠CLUSTER␠[s2]␠ON␠"mz_introspection"."mz_compute_operator_hydration_statuses_per_worker"␠("export_id",␠"lir_id")
64+
mz_compute_operator_hydration_statuses_per_worker_s2_primary_idx CREATE␠INDEX␠"mz_compute_operator_hydration_statuses_per_worker_s2_primary_idx"␠IN␠CLUSTER␠[s2]␠ON␠"mz_introspection"."mz_compute_operator_hydration_statuses_per_worker"␠("export_id",␠"lir_id",␠"worker_id")
6565
mz_connections_ind CREATE␠INDEX␠"mz_connections_ind"␠IN␠CLUSTER␠[s2]␠ON␠[s505␠AS␠"mz_catalog"."mz_connections"]␠("schema_id")
6666
mz_console_cluster_utilization_overview_ind CREATE␠INDEX␠"mz_console_cluster_utilization_overview_ind"␠IN␠CLUSTER␠[s2]␠ON␠[s727␠AS␠"mz_internal"."mz_console_cluster_utilization_overview"]␠("cluster_id")
6767
mz_databases_ind CREATE␠INDEX␠"mz_databases_ind"␠IN␠CLUSTER␠[s2]␠ON␠[s472␠AS␠"mz_catalog"."mz_databases"]␠("name")

test/testdrive/indexes.td

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -318,7 +318,7 @@ mz_compute_hydration_times_per_worker_s2_primary_idx mz_compute_hydration
318318
mz_compute_import_frontiers_per_worker_s2_primary_idx mz_compute_import_frontiers_per_worker mz_catalog_server {export_id,import_id,worker_id} ""
319319
mz_compute_lir_mapping_per_worker_s2_primary_idx mz_compute_lir_mapping_per_worker mz_catalog_server {global_id,lir_id,worker_id} ""
320320
mz_compute_operator_durations_histogram_raw_s2_primary_idx mz_compute_operator_durations_histogram_raw mz_catalog_server {id,worker_id,duration_ns} ""
321-
mz_compute_operator_hydration_statuses_per_worker_s2_primary_idx mz_compute_operator_hydration_statuses_per_worker mz_catalog_server {export_id,lir_id} ""
321+
mz_compute_operator_hydration_statuses_per_worker_s2_primary_idx mz_compute_operator_hydration_statuses_per_worker mz_catalog_server {export_id,lir_id,worker_id} ""
322322
mz_cluster_prometheus_metrics_s2_primary_idx mz_cluster_prometheus_metrics mz_catalog_server {process_id,metric_name,labels} ""
323323
mz_connections_ind mz_connections mz_catalog_server {schema_id} ""
324324
mz_console_cluster_utilization_overview_ind mz_console_cluster_utilization_overview mz_catalog_server {cluster_id} ""

0 commit comments

Comments
 (0)