Skip to content

Geo: Add file store indexes

Michael Kozono requested to merge mk/add-file-store-indexes into master

What does this MR do?

Adds indexes which will soon be used by Geo to determine what records should be synced. (These models are not yet synced by Geo.)

  • Add index on merge_request_diffs.external_diff_store
  • Add index on terraform_states.file_store
  • Add index on vulnerability_exports.file_store

Part of #229412 (closed)

Database queries

The queries will be in a similar vein to queries we do for package_files: !36771 (merged) and also uploads, lfs_objects, and job_artifacts: !24891 (merged)

The analogous queries do not exist yet for the models above.

Migrations

Up:

== 20200718040100 AddIndexOnMergeRequestDiffsExternalDiffStore: migrating =====
-- transaction_open?()
   -> 0.0000s
-- index_exists?(:merge_request_diffs, :external_diff_store, {:algorithm=>:concurrently})
   -> 0.0020s
-- add_index(:merge_request_diffs, :external_diff_store, {:algorithm=>:concurrently})
   -> 0.0050s
== 20200718040100 AddIndexOnMergeRequestDiffsExternalDiffStore: migrated (0.0073s) 

== 20200718040200 AddIndexOnTerraformStatesFileStore: migrating ===============
-- transaction_open?()
   -> 0.0000s
-- index_exists?(:terraform_states, :file_store, {:algorithm=>:concurrently})
   -> 0.0016s
-- add_index(:terraform_states, :file_store, {:algorithm=>:concurrently})
   -> 0.0028s
== 20200718040200 AddIndexOnTerraformStatesFileStore: migrated (0.0047s) ======

== 20200718040300 AddIndexOnVulnerabilityExportsFileStore: migrating ==========
-- transaction_open?()
   -> 0.0000s
-- index_exists?(:vulnerability_exports, :file_store, {:algorithm=>:concurrently})
   -> 0.0016s
-- add_index(:vulnerability_exports, :file_store, {:algorithm=>:concurrently})
   -> 0.0033s
== 20200718040300 AddIndexOnVulnerabilityExportsFileStore: migrated (0.0052s) =

Down:

== 20200718040300 AddIndexOnVulnerabilityExportsFileStore: reverting ==========
-- transaction_open?()
   -> 0.0000s
-- index_exists?(:vulnerability_exports, :file_store, {:algorithm=>:concurrently})
   -> 0.0047s
-- remove_index(:vulnerability_exports, {:algorithm=>:concurrently, :column=>:file_store})
   -> 0.0042s
== 20200718040300 AddIndexOnVulnerabilityExportsFileStore: reverted (0.0093s) =

== 20200718040200 AddIndexOnTerraformStatesFileStore: reverting ===============
-- transaction_open?()
   -> 0.0000s
-- index_exists?(:terraform_states, :file_store, {:algorithm=>:concurrently})
   -> 0.0021s
-- remove_index(:terraform_states, {:algorithm=>:concurrently, :column=>:file_store})
   -> 0.0021s
== 20200718040200 AddIndexOnTerraformStatesFileStore: reverted (0.0045s) ======

== 20200718040100 AddIndexOnMergeRequestDiffsExternalDiffStore: reverting =====
-- transaction_open?()
   -> 0.0000s
-- index_exists?(:merge_request_diffs, :external_diff_store, {:algorithm=>:concurrently})
   -> 0.0018s
-- remove_index(:merge_request_diffs, {:algorithm=>:concurrently, :column=>:external_diff_store})
   -> 0.0037s
== 20200718040100 AddIndexOnMergeRequestDiffsExternalDiffStore: reverted (0.0058s) 

Does this MR meet the acceptance criteria?

Conformity

Availability and Testing

Edited by Michael Kozono

Merge request reports