summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRémy Coutable <remy@rymai.me>2016-08-11 08:34:07 +0000
committerRémy Coutable <remy@rymai.me>2016-08-11 08:34:07 +0000
commit2facade8f0700a5832dca94c86e512c1c276d601 (patch)
treec206fbceef3b4285bb1e45f24749c2d594cf7130
parentb6c9567adb048c6069823a3e2e341f1557188bcc (diff)
parent17dd3e89d5a43761e85d7af30ad083db6ca5834b (diff)
downloadgitlab-ce-2facade8f0700a5832dca94c86e512c1c276d601.tar.gz
Merge branch 'remove-ci-runner-trigram-indexes' into 'master'
Remove trigram indexes for "ci_runners" ## What does this MR do? This MR removes two trigram indexes from the `ci_runners` table. ## Are there points in the code the reviewer needs to double check? No. ## Why was this MR needed? These indexes are only very rarely used while slowing down any update. See 4baee5d3a2e9e3b49a991db89e335072b911e64c for more information. ## Does this MR meet the acceptance criteria? - [x] [CHANGELOG](https://gitlab.com/gitlab-org/gitlab-ce/blob/master/CHANGELOG) entry added - [x] ~~[Documentation created/updated](https://gitlab.com/gitlab-org/gitlab-ce/blob/master/doc/development/doc_styleguide.md)~~ - [x] ~~API support added~~ - Tests - [x] ~~Added for this feature/bug~~ - [ ] All builds are passing - [x ] Conform by the [style guides](https://gitlab.com/gitlab-org/gitlab-ce/blob/master/CONTRIBUTING.md#style-guides) - [x] Branch has no merge conflicts with `master` (if you do - rebase it please) - [x] [Squashed related commits together](https://git-scm.com/book/en/Git-Tools-Rewriting-History#Squashing-Commits) See merge request !5755
-rw-r--r--CHANGELOG1
-rw-r--r--db/migrate/20160810102349_remove_ci_runner_trigram_indexes.rb27
-rw-r--r--db/schema.rb4
3 files changed, 29 insertions, 3 deletions
diff --git a/CHANGELOG b/CHANGELOG
index 196a3d49911..a978ae90dac 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -39,6 +39,7 @@ v 8.11.0 (unreleased)
- Retrieve rendered HTML from cache in one request
- Fix renaming repository when name contains invalid chararacters under project settings
- Upgrade Grape from 0.13.0 to 0.15.0. !4601
+ - Trigram indexes for the "ci_runners" table have been removed to speed up UPDATE queries
- Fix devise deprecation warnings.
- Update version_sorter and use new interface for faster tag sorting
- Optimize checking if a user has read access to a list of issues !5370
diff --git a/db/migrate/20160810102349_remove_ci_runner_trigram_indexes.rb b/db/migrate/20160810102349_remove_ci_runner_trigram_indexes.rb
new file mode 100644
index 00000000000..0cfb637804b
--- /dev/null
+++ b/db/migrate/20160810102349_remove_ci_runner_trigram_indexes.rb
@@ -0,0 +1,27 @@
+# See http://doc.gitlab.com/ce/development/migration_style_guide.html
+# for more information on how to write migrations for GitLab.
+
+class RemoveCiRunnerTrigramIndexes < ActiveRecord::Migration
+ include Gitlab::Database::MigrationHelpers
+
+ DOWNTIME = false
+
+ # Disabled for the "down" method so the indexes can be re-created concurrently.
+ disable_ddl_transaction!
+
+ def up
+ return unless Gitlab::Database.postgresql?
+
+ transaction do
+ execute 'DROP INDEX IF EXISTS index_ci_runners_on_token_trigram;'
+ execute 'DROP INDEX IF EXISTS index_ci_runners_on_description_trigram;'
+ end
+ end
+
+ def down
+ return unless Gitlab::Database.postgresql?
+
+ execute 'CREATE INDEX CONCURRENTLY index_ci_runners_on_token_trigram ON ci_runners USING gin(token gin_trgm_ops);'
+ execute 'CREATE INDEX CONCURRENTLY index_ci_runners_on_description_trigram ON ci_runners USING gin(description gin_trgm_ops);'
+ end
+end
diff --git a/db/schema.rb b/db/schema.rb
index 71980a6d51f..b795eeaa23c 100644
--- a/db/schema.rb
+++ b/db/schema.rb
@@ -11,7 +11,7 @@
#
# It's strongly recommended that you check this file into your version control system.
-ActiveRecord::Schema.define(version: 20160804150737) do
+ActiveRecord::Schema.define(version: 20160810102349) do
# These are extensions that must be enabled in order to support this database
enable_extension "plpgsql"
@@ -301,10 +301,8 @@ ActiveRecord::Schema.define(version: 20160804150737) do
t.boolean "locked", default: false, null: false
end
- add_index "ci_runners", ["description"], name: "index_ci_runners_on_description_trigram", using: :gin, opclasses: {"description"=>"gin_trgm_ops"}
add_index "ci_runners", ["locked"], name: "index_ci_runners_on_locked", using: :btree
add_index "ci_runners", ["token"], name: "index_ci_runners_on_token", using: :btree
- add_index "ci_runners", ["token"], name: "index_ci_runners_on_token_trigram", using: :gin, opclasses: {"token"=>"gin_trgm_ops"}
create_table "ci_services", force: :cascade do |t|
t.string "type"