BigW Consortium Gitlab

Skip to content
  • Greg Stark's avatar
    271e7a32
    Add indexes and change SQL for expired artifacts to deal with artifacts migration efficiently · 271e7a32
    Greg Stark authored
    Artifacts are in the middle of being migrated from ci_builds to
    ci_job_artifacts. The expiration date is currently visible in both of
    these tables and the test for whether an expired artifact is present
    for a job is complex as it requires checking both the of the tables.
    
    Add two new indexes, one on ci_builds.artifacts_expire_at and one on
    ci_job_artifacts.expire_at to enable finding expired artifacts
    efficiently.
    
    And until the migration is finished, replace the SQL for finding
    expired and non-expired artifacts with a hand-crafted UNION ALL based
    query instead of using OR. This overcomes a database optimizer
    limitation that prevents it from using these indexes.
    
    When the migration is finished the next version should remove this
    query and replace it with a much simpler query on just
    ci_job_artifacts. See
    https://gitlab.com/gitlab-org/gitlab-ce/issues/42561 for followup.
    271e7a32
    Add indexes and change SQL for expired artifacts to deal with artifacts migration efficiently
    Greg Stark authored
    Artifacts are in the middle of being migrated from ci_builds to
    ci_job_artifacts. The expiration date is currently visible in both of
    these tables and the test for whether an expired artifact is present
    for a job is complex as it requires checking both the of the tables.
    
    Add two new indexes, one on ci_builds.artifacts_expire_at and one on
    ci_job_artifacts.expire_at to enable finding expired artifacts
    efficiently.
    
    And until the migration is finished, replace the SQL for finding
    expired and non-expired artifacts with a hand-crafted UNION ALL based
    query instead of using OR. This overcomes a database optimizer
    limitation that prevents it from using these indexes.
    
    When the migration is finished the next version should remove this
    query and replace it with a much simpler query on just
    ci_job_artifacts. See
    https://gitlab.com/gitlab-org/gitlab-ce/issues/42561 for followup.
Loading