Skip to content

Conditionally disable fastupdate on GIN indexes (issues, merge_requests)

Mario Celi requested to merge 383621-conditionally-update-gin-indexes-2 into master

What does this MR do and why?

We are investigating why some GIN indexes are not present on some Gitlab self-hosted installs. On the mean time, disabling fastupdate on some of those gin indexes was causing problems when upgrading to Gitlab 15.6

Migration output

UP

bin/rails db:migrate
main: == 20221019194751 DisableFastupdateOnIssuesTitleGinIndex: migrating ===========
main: -- indexes(:issues)
main:    -> 0.0425s
main: -- transaction_open?()
main:    -> 0.0000s
main: -- execute("ALTER INDEX index_issues_on_title_trigram SET ( fastupdate = false ) ;\n")
main:    -> 0.0008s
main: == 20221019194751 DisableFastupdateOnIssuesTitleGinIndex: migrated (0.0603s) ==

main: == 20221019195754 DisableFastupdateOnIssuesDescriptionGinIndex: migrating =====
main: -- indexes(:issues)
main:    -> 0.0245s
main: -- transaction_open?()
main:    -> 0.0000s
main: -- execute("ALTER INDEX index_issues_on_description_trigram SET ( fastupdate = false ) ;\n")
main:    -> 0.0007s
main: == 20221019195754 DisableFastupdateOnIssuesDescriptionGinIndex: migrated (0.0284s)

main: == 20221019200033 DisableFastupdateOnMergeRequestsTitleGinIndex: migrating ====
main: -- indexes(:issues)
main:    -> 0.0267s
main: -- current_schema()
main:    -> 0.0007s
main: == 20221019200033 DisableFastupdateOnMergeRequestsTitleGinIndex: migrated (0.0319s)

main: == 20221019200206 DisableFastupdateOnMergeRequestsDescriptionGinIndex: migrating
main: -- indexes(:issues)
main:    -> 0.0251s
main: -- current_schema()
main:    -> 0.0005s
main: == 20221019200206 DisableFastupdateOnMergeRequestsDescriptionGinIndex: migrated (0.0280s)

ci: == 20221019194751 DisableFastupdateOnIssuesTitleGinIndex: migrating ===========
ci: -- indexes(:issues)
ci:    -> 0.0299s
ci: -- transaction_open?()
ci:    -> 0.0000s
ci: -- execute("ALTER INDEX index_issues_on_title_trigram SET ( fastupdate = false ) ;\n")
ci:    -> 0.0008s
ci: == 20221019194751 DisableFastupdateOnIssuesTitleGinIndex: migrated (0.0334s) ==

ci: == 20221019195754 DisableFastupdateOnIssuesDescriptionGinIndex: migrating =====
ci: -- indexes(:issues)
ci:    -> 0.0255s
ci: -- transaction_open?()
ci:    -> 0.0000s
ci: -- execute("ALTER INDEX index_issues_on_description_trigram SET ( fastupdate = false ) ;\n")
ci:    -> 0.0007s
ci: == 20221019195754 DisableFastupdateOnIssuesDescriptionGinIndex: migrated (0.0291s)

ci: == 20221019200033 DisableFastupdateOnMergeRequestsTitleGinIndex: migrating ====
ci: -- indexes(:issues)
ci:    -> 0.0217s
ci: -- current_schema()
ci:    -> 0.0002s
ci: == 20221019200033 DisableFastupdateOnMergeRequestsTitleGinIndex: migrated (0.0239s)

ci: == 20221019200206 DisableFastupdateOnMergeRequestsDescriptionGinIndex: migrating
ci: -- indexes(:issues)
ci:    -> 0.0204s
ci: -- current_schema()
ci:    -> 0.0004s
ci: == 20221019200206 DisableFastupdateOnMergeRequestsDescriptionGinIndex: migrated (0.0224s)

DOWN

bin/rails db:migrate:down:main db:migrate:down:ci VERSION=20221019194751
main: == 20221019194751 DisableFastupdateOnIssuesTitleGinIndex: reverting ===========
main: -- indexes(:issues)
main:    -> 0.0445s
main: -- transaction_open?()
main:    -> 0.0000s
main: -- execute("ALTER INDEX index_issues_on_title_trigram RESET ( fastupdate ) ;\n")
main:    -> 0.0036s
main: == 20221019194751 DisableFastupdateOnIssuesTitleGinIndex: reverted (0.0641s) ==

ci: == 20221019194751 DisableFastupdateOnIssuesTitleGinIndex: reverting ===========
ci: -- indexes(:issues)
ci:    -> 0.0477s
ci: -- transaction_open?()
ci:    -> 0.0000s
ci: -- execute("ALTER INDEX index_issues_on_title_trigram RESET ( fastupdate ) ;\n")
ci:    -> 0.0017s
ci: == 20221019194751 DisableFastupdateOnIssuesTitleGinIndex: reverted (0.0524s) ==

bin/rails db:migrate:down:main db:migrate:down:ci VERSION=20221019195754
main: == 20221019195754 DisableFastupdateOnIssuesDescriptionGinIndex: reverting =====
main: -- indexes(:issues)
main:    -> 0.0465s
main: -- transaction_open?()
main:    -> 0.0000s
main: -- execute("ALTER INDEX index_issues_on_description_trigram RESET ( fastupdate ) ;\n")
main:    -> 0.0011s
main: == 20221019195754 DisableFastupdateOnIssuesDescriptionGinIndex: reverted (0.0666s)

ci: == 20221019195754 DisableFastupdateOnIssuesDescriptionGinIndex: reverting =====
ci: -- indexes(:issues)
ci:    -> 0.0536s
ci: -- transaction_open?()
ci:    -> 0.0000s
ci: -- execute("ALTER INDEX index_issues_on_description_trigram RESET ( fastupdate ) ;\n")
ci:    -> 0.0007s
ci: == 20221019195754 DisableFastupdateOnIssuesDescriptionGinIndex: reverted (0.0573s)

bin/rails db:migrate:down:main db:migrate:down:ci VERSION=20221019200033
main: == 20221019200033 DisableFastupdateOnMergeRequestsTitleGinIndex: reverting ====
main: -- indexes(:issues)
main:    -> 0.0485s
main: -- current_schema()
main:    -> 0.0007s
main: == 20221019200033 DisableFastupdateOnMergeRequestsTitleGinIndex: reverted (0.0540s)

ci: == 20221019200033 DisableFastupdateOnMergeRequestsTitleGinIndex: reverting ====
ci: -- indexes(:issues)
ci:    -> 0.0410s
ci: -- current_schema()
ci:    -> 0.0003s
ci: == 20221019200033 DisableFastupdateOnMergeRequestsTitleGinIndex: reverted (0.0451s)

bin/rails db:migrate:down:main db:migrate:down:ci VERSION=20221019200206
main: == 20221019200206 DisableFastupdateOnMergeRequestsDescriptionGinIndex: reverting
main: -- indexes(:issues)
main:    -> 0.0374s
main: -- current_schema()
main:    -> 0.0006s
main: == 20221019200206 DisableFastupdateOnMergeRequestsDescriptionGinIndex: reverted (0.0439s)

ci: == 20221019200206 DisableFastupdateOnMergeRequestsDescriptionGinIndex: reverting
ci: -- indexes(:issues)
ci:    -> 0.0409s
ci: -- current_schema()
ci:    -> 0.0023s
ci: == 20221019200206 DisableFastupdateOnMergeRequestsDescriptionGinIndex: reverted (0.0475s)

MR acceptance checklist

This checklist encourages us to confirm any changes have been analyzed to reduce risks in quality, performance, reliability, security, and maintainability.

Related to #383621 (closed)

Merge request reports