Skip to content

Filter trace chunks by partition_id

Max Orefice requested to merge morefice/filter-trace-chunks-partition-id into master

Ref: #434491 (closed)

What does this MR do and why?

Similar technique used in !146164 (merged).

This MR refactors Ci::Build.with_live_trace scope and filters trace chunks by partition_id.

This will allow us to take advantage of partition pruning and select the right partition automatically without scanning all of them.

Example of updated query

SELECT "p_ci_builds".*
FROM "p_ci_builds"
WHERE "p_ci_builds"."type" = 'Ci::Build'
  AND (EXISTS
         (SELECT 1
          FROM "ci_build_trace_chunks"
          WHERE "ci_build_trace_chunks"."build_id" = "p_ci_builds"."id"
+           AND "ci_build_trace_chunks"."partition_id" = "p_ci_builds"."partition_id"))
  AND ("p_ci_builds"."status" IN ('success',
                                  'failed',
                                  'canceled'))
  AND (finished_at < '2024-03-05 01:52:28.274492')
Edited by Max Orefice

Merge request reports