Geo: Add file store indexes
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
-
Changelog entry -
Code review guidelines -
Merge request performance guidelines -
Style guides -
Database guides -
Separation of EE specific content
Availability and Testing
-
Review and add/update tests for this feature/bug. Consider all test levels. See the Test Planning Process.
Edited by Michael Kozono