[go: up one dir, main page]

Skip to content

License cache could be more optimized

Everyone can contribute. Help move this issue forward while earning points, leveling up and collecting rewards.

When looking at one of the demo projects in a local instance, I've noticed that we were calling multiple times the License.current which were cached, but taking a significant time to load.

What standout was that while taking half a millisecond, because that was being called many times it was taking a couple of ms in total (while probably also generating pressure on garbage collection).

image

Here is a raw dump of the queries from peek with one License case expanded (in the example below that was called 28 times, taking likely ~ 15ms in total:

10.715ms 	
SELECT "ci_builds".* FROM "ci_builds" WHERE "ci_builds"."type" = 'Ci::Build' AND "ci_builds"."commit_id" = 5 AND ("ci_builds"."retried" = FALSE OR "ci_builds"."retried" IS NULL) AND (EXISTS (SELECT 1 FROM "ci_job_artifacts" WHERE (ci_builds.id = ci_job_artifacts.job_id) AND "ci_job_artifacts"."file_type" IN (19, 26, 1, 17, 9, 7, 8, 6, 16, 4, 10, 101, 15, 12, 11, 24, 25, 5, 21, 22))) AND (artifacts_expire_at IS NULL OR artifacts_expire_at > '2021-05-18 00:48:13.173701') /*application:web,correlation_id:01F5YF3JKFYABTR19KF4YWG076,endpoint_id:ProjectsController#show,line:/app/models/ci/pipeline.rb:989:in `latest_builds_with_artifacts'*/
9.852ms 	
SELECT a.attname FROM ( SELECT indrelid, indkey, generate_subscripts(indkey, 1) idx FROM pg_index WHERE indrelid = '"clusters"'::regclass AND indisprimary ) i JOIN pg_attribute a ON a.attrelid = i.indrelid AND a.attnum = i.indkey[i.idx] ORDER BY i.idx
8.544ms 	
SELECT a.attname FROM ( SELECT indrelid, indkey, generate_subscripts(indkey, 1) idx FROM pg_index WHERE indrelid = '"project_mirror_data"'::regclass AND indisprimary ) i JOIN pg_attribute a ON a.attrelid = i.indrelid AND a.attnum = i.indkey[i.idx] ORDER BY i.idx
8.501ms 	
SELECT a.attname FROM ( SELECT indrelid, indkey, generate_subscripts(indkey, 1) idx FROM pg_index WHERE indrelid = '"project_statistics"'::regclass AND indisprimary ) i JOIN pg_attribute a ON a.attrelid = i.indrelid AND a.attnum = i.indkey[i.idx] ORDER BY i.idx
7.582ms 	
SELECT a.attname FROM ( SELECT indrelid, indkey, generate_subscripts(indkey, 1) idx FROM pg_index WHERE indrelid = '"ci_builds"'::regclass AND indisprimary ) i JOIN pg_attribute a ON a.attrelid = i.indrelid AND a.attnum = i.indkey[i.idx] ORDER BY i.idx
6.916ms 	
SELECT 1 AS one FROM "clusters" INNER JOIN "cluster_projects" ON "clusters"."id" = "cluster_projects"."cluster_id" WHERE "cluster_projects"."project_id" = 6 LIMIT 1 /*application:web,correlation_id:01F5YF3JKFYABTR19KF4YWG076,endpoint_id:ProjectsController#show,line:/app/presenters/project_presenter.rb:375:in `kubernetes_cluster_anchor_data'*/
5.115ms 	
SELECT "taggings".* FROM "taggings" WHERE "taggings"."taggable_id" = 6 AND "taggings"."taggable_type" = 'Project' /*application:web,correlation_id:01F5YF3JKFYABTR19KF4YWG076,endpoint_id:ProjectsController#show,line:/app/views/projects/_home_panel.html.haml:28:in `_app_views_projects__home_panel_html_haml___1008614109217798783_271640'*/
4.796ms 	
SELECT 1 AS one FROM "projects" WHERE "projects"."namespace_id" IN (WITH RECURSIVE "base_and_descendants" AS ((SELECT "namespaces".* FROM "namespaces" WHERE "namespaces"."type" = 'Group' AND "namespaces"."id" = 26) UNION (SELECT "namespaces".* FROM "namespaces", "base_and_descendants" WHERE "namespaces"."type" = 'Group' AND "namespaces"."parent_id" = "base_and_descendants"."id")) SELECT id FROM "base_and_descendants" AS "namespaces") AND "projects"."shared_runners_enabled" = TRUE LIMIT 1 /*application:web,correlation_id:01F5YF3JKFYABTR19KF4YWG076,endpoint_id:ProjectsController#show,line:/ee/app/models/ee/namespace.rb:250:in `any_project_with_shared_runners_enabled?'*/
4.608ms 	
SELECT COUNT(*) FROM "releases" WHERE "releases"."project_id" = 6 /*application:web,correlation_id:01F5YF3JKFYABTR19KF4YWG076,endpoint_id:ProjectsController#show,line:/app/presenters/project_presenter.rb:203:in `releases_anchor_data'*/
4.606ms 	
SELECT "ci_pipelines".* FROM "ci_pipelines" WHERE "ci_pipelines"."project_id" = 6 AND ("ci_pipelines"."source" IN (1, 2, 3, 4, 5, 6, 7, 8, 10, 11) OR "ci_pipelines"."source" IS NULL) AND "ci_pipelines"."ref" = 'master' AND "ci_pipelines"."id" IN (SELECT "ci_pipelines"."id" FROM "ci_pipelines" WHERE "ci_pipelines"."project_id" = 6 AND ("ci_pipelines"."source" IN (1, 2, 3, 4, 5, 6, 7, 8, 10, 11) OR "ci_pipelines"."source" IS NULL) AND "ci_pipelines"."ref" = 'master' ORDER BY "ci_pipelines"."id" DESC LIMIT 100) AND ("ci_pipelines"."status" IN ('success')) ORDER BY "ci_pipelines"."id" DESC LIMIT 1 /*application:web,correlation_id:01F5YF3JKFYABTR19KF4YWG076,endpoint_id:ProjectsController#show,line:/app/models/ci/pipeline.rb:371:in `latest_successful_for_ref'*/
4.509ms 	
SELECT "users".* FROM "users" INNER JOIN "members" ON "users"."id" = "members"."user_id" WHERE "members"."type" = 'GroupMember' AND "members"."source_type" = 'Namespace' AND "members"."source_id" = 26 AND "members"."source_type" = 'Namespace' AND "members"."requested_at" IS NULL AND "members"."access_level" != 5 AND "members"."access_level" = 50 ORDER BY "users"."id" ASC LIMIT 1 /*application:web,correlation_id:01F5YF3JKFYABTR19KF4YWG076,endpoint_id:ProjectsController#show,line:/app/models/group.rb:697:in `default_owner'*/
4.453ms 	
SELECT COUNT(*) FROM "issues" WHERE ("issues"."state_id" IN (1)) AND "issues"."issue_type" IN (0, 1) AND "issues"."project_id" = 6 /*application:web,correlation_id:01F5YF3JKFYABTR19KF4YWG076,endpoint_id:ProjectsController#show,line:/app/services/base_count_service.rb:26:in `uncached_count'*/
4.323ms 	
SELECT "badges".* FROM ((SELECT "badges".* FROM "badges" WHERE "badges"."type" = 'ProjectBadge' AND "badges"."project_id" = 6) UNION (SELECT "badges".* FROM "badges" WHERE "badges"."type" = 'GroupBadge' AND "badges"."group_id" IN (SELECT "namespaces"."id" FROM "namespaces" WHERE "namespaces"."type" = 'Group' AND "namespaces"."id" = 26))) badges ORDER BY "badges"."created_at" ASC /*application:web,correlation_id:01F5YF3JKFYABTR19KF4YWG076,endpoint_id:ProjectsController#show,line:/app/views/projects/_home_panel.html.haml:86:in `_app_views_projects__home_panel_html_haml___1008614109217798783_271640'*/
4.217ms 	
SELECT "protected_branch_push_access_levels".* FROM "protected_branch_push_access_levels" WHERE "protected_branch_push_access_levels"."protected_branch_id" = 4 /*application:web,correlation_id:01F5YF3JKFYABTR19KF4YWG076,endpoint_id:ProjectsController#show,line:/app/models/concerns/protected_ref.rb:56:in `each'*/
3.757ms 	
WITH RECURSIVE "base_and_descendants" AS ((SELECT "namespaces".* FROM "namespaces" INNER JOIN "members" ON "namespaces"."id" = "members"."source_id" WHERE "members"."type" = 'GroupMember' AND "members"."source_type" = 'Namespace' AND "namespaces"."type" = 'Group' AND "members"."user_id" = 1 AND "members"."requested_at" IS NULL AND (access_level >= 10) AND "members"."access_level" IN (40, 50)) UNION (SELECT "namespaces".* FROM "namespaces", "base_and_descendants" WHERE "namespaces"."type" = 'Group' AND "namespaces"."parent_id" = "base_and_descendants"."id")) SELECT "namespaces".* FROM "base_and_descendants" AS "namespaces" /*application:web,correlation_id:01F5YF3JKFYABTR19KF4YWG076,endpoint_id:ProjectsController#show,line:/app/models/user.rb:1533:in `+'*/
3.623ms 	
SELECT "members".* FROM "members" WHERE "members"."type" = 'ProjectMember' AND "members"."source_id" = 6 AND "members"."source_type" = 'Project' AND "members"."requested_at" IS NULL AND "members"."user_id" = 1 LIMIT 1 /*application:web,correlation_id:01F5YF3JKFYABTR19KF4YWG076,endpoint_id:ProjectsController#show,line:/app/views/shared/members/_access_request_links.html.haml:3:in `_app_views_shared_members__access_request_links_html_haml__3567752995446348963_271920'*/
3.32ms 	
SELECT "project_settings".* FROM "project_settings" WHERE "project_settings"."project_id" = 6 LIMIT 1 /*application:web,correlation_id:01F5YF3JKFYABTR19KF4YWG076,endpoint_id:ProjectsController#show,line:/app/models/project.rb:840:in `project_setting'*/
3.13ms 	
SELECT "tags".* FROM "tags" INNER JOIN "taggings" ON "tags"."id" = "taggings"."tag_id" WHERE "taggings"."taggable_id" = 6 AND "taggings"."taggable_type" = 'Project' AND (taggings.context = 'tags' AND taggings.tagger_id IS NULL) ORDER BY taggings.id /*application:web,correlation_id:01F5YF3JKFYABTR19KF4YWG076,endpoint_id:ProjectsController#show,line:/app/views/projects/_home_panel.html.haml:28:in `_app_views_projects__home_panel_html_haml___1008614109217798783_271640'*/
3.116ms 	
SELECT "protected_branches".* FROM "protected_branches" WHERE "protected_branches"."project_id" = 6 /*application:web,correlation_id:01F5YF3JKFYABTR19KF4YWG076,endpoint_id:ProjectsController#show,line:/app/models/concerns/protected_ref.rb:66:in `matching'*/
3.056ms 	
SELECT "notification_settings".* FROM "notification_settings" WHERE "notification_settings"."user_id" = 1 AND "notification_settings"."source_type" = 'Project' AND "notification_settings"."source_id" = 6 LIMIT 1 /*application:web,correlation_id:01F5YF3JKFYABTR19KF4YWG076,endpoint_id:ProjectsController#show,line:/app/models/user.rb:1623:in `notification_settings_for'*/
2.56ms 	
SELECT "repository_languages".* FROM "repository_languages" WHERE "repository_languages"."project_id" = 6 ORDER BY share DESC /*application:web,correlation_id:01F5YF3JKFYABTR19KF4YWG076,endpoint_id:ProjectsController#show,line:/app/views/projects/show.html.haml:15:in `_app_views_projects_show_html_haml___2129024408719342493_271260'*/
2.551ms 	
SELECT "fork_networks".* FROM "fork_networks" INNER JOIN "fork_network_members" ON "fork_networks"."id" = "fork_network_members"."fork_network_id" WHERE "fork_network_members"."project_id" = 6 LIMIT 1 /*application:web,correlation_id:01F5YF3JKFYABTR19KF4YWG076,endpoint_id:ProjectsController#show,line:/app/models/namespace.rb:232:in `find_fork_of'*/
2.257ms 	
SELECT COUNT(*) FROM "keys" WHERE "keys"."user_id" = 1 AND ("keys"."type" IN ('LDAPKey', 'Key') OR "keys"."type" IS NULL) /*application:web,correlation_id:01F5YF3JKFYABTR19KF4YWG076,endpoint_id:ProjectsController#show,line:/app/services/base_count_service.rb:26:in `uncached_count'*/
2.214ms 	
SELECT "appearances".* FROM "appearances" ORDER BY "appearances"."id" ASC LIMIT 1 /*application:web,correlation_id:01F5YF3JKFYABTR19KF4YWG076,endpoint_id:ProjectsController#show,line:/app/models/appearance.rb:39:in `current_without_cache'*/
2.212ms 	
SELECT 1 AS one FROM "services" WHERE "services"."template" = TRUE AND "services"."type" IN ('AsanaService', 'AssemblaService', 'BambooService', 'BugzillaService', 'BuildkiteService', 'CampfireService', 'ConfluenceService', 'CustomIssueTrackerService', 'DiscordService', 'DroneCiService', 'EmailsOnPushService', 'EwmService', 'ExternalWikiService', 'FlowdockService', 'HangoutsChatService', 'IrkerService', 'JiraService', 'MattermostService', 'MattermostSlashCommandsService', 'MicrosoftTeamsService', 'MockCiService', 'MockMonitoringService', 'PackagistService', 'PipelinesEmailService', 'PivotaltrackerService', 'PrometheusService', 'PushoverService', 'RedmineService', 'SlackService', 'SlackSlashCommandsService', 'TeamcityService', 'UnifyCircuitService', 'WebexTeamsService', 'YoutrackService') AND "services"."active" = TRUE LIMIT 1 /*application:web,correlation_id:01F5YF3JKFYABTR19KF4YWG076,endpoint_id:ProjectsController#show,line:/app/helpers/user_callouts_helper.rb:47:in `show_service_templates_deprecated_callout?'*/
2.185ms 	
SELECT "project_auto_devops".* FROM "project_auto_devops" WHERE "project_auto_devops"."project_id" = 6 LIMIT 1 /*application:web,correlation_id:01F5YF3JKFYABTR19KF4YWG076,endpoint_id:ProjectsController#show,line:/app/models/project.rb:932:in `first_auto_devops_config'*/
2.089ms 	
SELECT "projects".* FROM "projects" INNER JOIN "fork_network_members" ON "projects"."id" = "fork_network_members"."project_id" WHERE "fork_network_members"."fork_network_id" = 4 AND "projects"."id" IN (SELECT "projects"."id" FROM "projects" WHERE "projects"."namespace_id" = 1) ORDER BY "projects"."id" ASC LIMIT 1 /*application:web,correlation_id:01F5YF3JKFYABTR19KF4YWG076,endpoint_id:ProjectsController#show,line:/app/models/namespace.rb:237:in `block (2 levels) in find_fork_of'*/
2.001ms 	
SELECT a.attname, format_type(a.atttypid, a.atttypmod), pg_get_expr(d.adbin, d.adrelid), a.attnotnull, a.atttypid, a.atttypmod, c.collname, col_description(a.attrelid, a.attnum) AS comment FROM pg_attribute a LEFT JOIN pg_attrdef d ON a.attrelid = d.adrelid AND a.attnum = d.adnum LEFT JOIN pg_type t ON a.atttypid = t.oid LEFT JOIN pg_collation c ON a.attcollation = c.oid AND a.attcollation <> t.typcollation WHERE a.attrelid = '"ci_job_artifacts"'::regclass AND a.attnum > 0 AND NOT a.attisdropped ORDER BY a.attnum
1.894ms 	
SELECT "project_statistics".* FROM "project_statistics" WHERE "project_statistics"."project_id" = 6 LIMIT 1 /*application:web,correlation_id:01F5YF3JKFYABTR19KF4YWG076,endpoint_id:ProjectsController#show,line:/app/presenters/project_presenter.rb:219:in `commits_anchor_data'*/
1.755ms 	
SELECT "project_mirror_data".* FROM "project_mirror_data" WHERE "project_mirror_data"."project_id" = 6 LIMIT 1 /*application:web,correlation_id:01F5YF3JKFYABTR19KF4YWG076,endpoint_id:ProjectsController#show,line:/app/models/project.rb:406:in `import_in_progress?'*/
1.693ms 	
SELECT "feature_gates".* FROM "feature_gates" WHERE "feature_gates"."feature_key" = 'invite_members_new_dropdown_experiment_percentage' /*application:web,correlation_id:01F5YF3JKFYABTR19KF4YWG076,endpoint_id:ProjectsController#show,line:/lib/feature.rb:80:in `enabled?'*/
1.687ms 	
SELECT "feature_gates".* FROM "feature_gates" WHERE "feature_gates"."feature_key" = 'namespace_storage_limit' /*application:web,correlation_id:01F5YF3JKFYABTR19KF4YWG076,endpoint_id:ProjectsController#show,line:/lib/feature.rb:80:in `enabled?'*/
1.667ms 	
SELECT "ci_pipelines".* FROM "ci_pipelines" WHERE "ci_pipelines"."project_id" = 6 AND ("ci_pipelines"."source" IN (1, 2, 3, 4, 5, 6, 7, 8, 10, 11) OR "ci_pipelines"."source" IS NULL) AND "ci_pipelines"."ref" = 'master' AND "ci_pipelines"."sha" = 'f15b32277d2c55c6c595845a87109b09c913c556' AND "ci_pipelines"."id" IN (SELECT "ci_pipelines"."id" FROM "ci_pipelines" WHERE "ci_pipelines"."project_id" = 6 AND ("ci_pipelines"."source" IN (1, 2, 3, 4, 5, 6, 7, 8, 10, 11) OR "ci_pipelines"."source" IS NULL) AND "ci_pipelines"."ref" = 'master' AND "ci_pipelines"."sha" = 'f15b32277d2c55c6c595845a87109b09c913c556' ORDER BY "ci_pipelines"."id" DESC LIMIT 100) ORDER BY "ci_pipelines"."id" DESC LIMIT 1 /*application:web,correlation_id:01F5YF3JKFYABTR19KF4YWG076,endpoint_id:ProjectsController#show,line:/app/models/project.rb:1020:in `latest_pipeline'*/
1.666ms 	
SELECT "feature_gates".* FROM "feature_gates" WHERE "feature_gates"."feature_key" = 'use_traversal_ids' /*application:web,correlation_id:01F5YF3JKFYABTR19KF4YWG076,endpoint_id:ProjectsController#show,line:/lib/feature.rb:80:in `enabled?'*/
1.66ms 	
SELECT "user_statuses".* FROM "user_statuses" WHERE "user_statuses"."user_id" = 1 LIMIT 1 /*application:web,correlation_id:01F5YF3JKFYABTR19KF4YWG076,endpoint_id:ProjectsController#show,line:/app/helpers/page_layout_helper.rb:168:in `user_status_properties'*/
1.567ms 	
SELECT 1 AS one FROM "projects" INNER JOIN "users_star_projects" ON "projects"."id" = "users_star_projects"."project_id" WHERE "users_star_projects"."user_id" = 1 AND "projects"."id" = 6 LIMIT 1 /*application:web,correlation_id:01F5YF3JKFYABTR19KF4YWG076,endpoint_id:ProjectsController#show,line:/app/models/user.rb:1493:in `starred?'*/
1.549ms 	
SELECT "user_preferences".* FROM "user_preferences" WHERE "user_preferences"."user_id" = 1 LIMIT 1 /*application:web,correlation_id:01F5YF3JKFYABTR19KF4YWG076,endpoint_id:ProjectsController#show,line:/app/models/user.rb:1861:in `user_preference'*/
1.484ms 	
SELECT "licenses".* FROM "licenses" ORDER BY "licenses"."id" DESC LIMIT 100 /*application:web,correlation_id:01F5YF3JKFYABTR19KF4YWG076,endpoint_id:ProjectsController#show,line:/ee/app/models/license.rb:302:in `load_license'*/
1.449ms 	
SELECT "project_features".* FROM "project_features" WHERE "project_features"."project_id" = 6 LIMIT 1 /*application:web,correlation_id:01F5YF3JKFYABTR19KF4YWG076,endpoint_id:ProjectsController#show,line:/app/policies/project_policy.rb:721:in `access_allowed_to?'*/
1.436ms 	
SELECT "namespaces".* FROM "namespaces" WHERE "namespaces"."owner_id" = 1 AND "namespaces"."type" IS NULL LIMIT 1 /*application:web,correlation_id:01F5YF3JKFYABTR19KF4YWG076,endpoint_id:ProjectsController#show,line:/app/models/user.rb:1203:in `fork_of'*/
1.402ms 	
SELECT "feature_gates".* FROM "feature_gates" WHERE "feature_gates"."feature_key" = 'use_distinct_in_object_hierarchy' /*application:web,correlation_id:01F5YF3JKFYABTR19KF4YWG076,endpoint_id:ProjectsController#show,line:/lib/feature.rb:80:in `enabled?'*/
1.378ms 	
SELECT "project_compliance_framework_settings".* FROM "project_compliance_framework_settings" WHERE "project_compliance_framework_settings"."project_id" = 6 LIMIT 1 /*application:web,correlation_id:01F5YF3JKFYABTR19KF4YWG076,endpoint_id:ProjectsController#show,line:/ee/app/helpers/ee/projects_helper.rb:234:in `show_compliance_framework_badge?'*/
1.372ms 	
SELECT a.attname, format_type(a.atttypid, a.atttypmod), pg_get_expr(d.adbin, d.adrelid), a.attnotnull, a.atttypid, a.atttypmod, c.collname, col_description(a.attrelid, a.attnum) AS comment FROM pg_attribute a LEFT JOIN pg_attrdef d ON a.attrelid = d.adrelid AND a.attnum = d.adnum LEFT JOIN pg_type t ON a.atttypid = t.oid LEFT JOIN pg_collation c ON a.attcollation = c.oid AND a.attcollation <> t.typcollation WHERE a.attrelid = '"issues"'::regclass AND a.attnum > 0 AND NOT a.attisdropped ORDER BY a.attnum
1.37ms 	
SELECT "user_callouts".* FROM "user_callouts" WHERE "user_callouts"."user_id" = 1 /*application:web,correlation_id:01F5YF3JKFYABTR19KF4YWG076,endpoint_id:ProjectsController#show,line:/app/models/user.rb:1967:in `callouts_by_feature_name'*/
1.338ms 	
SELECT "user_details".* FROM "user_details" WHERE "user_details"."user_id" = 1 LIMIT 1 /*application:web,correlation_id:01F5YF3JKFYABTR19KF4YWG076,endpoint_id:ProjectsController#show,line:/app/models/user.rb:1865:in `user_detail'*/
1.331ms 	
SELECT "feature_gates".* FROM "feature_gates" WHERE "feature_gates"."feature_key" = 'learn_gitlab_b_experiment_percentage' /*application:web,correlation_id:01F5YF3JKFYABTR19KF4YWG076,endpoint_id:ProjectsController#show,line:/lib/feature.rb:80:in `enabled?'*/
1.312ms 	
SELECT "feature_gates".* FROM "feature_gates" WHERE "feature_gates"."feature_key" = 'use_distinct_for_all_object_hierarchy' /*application:web,correlation_id:01F5YF3JKFYABTR19KF4YWG076,endpoint_id:ProjectsController#show,line:/lib/feature.rb:80:in `enabled?'*/
1.312ms 	
SELECT "feature_gates".* FROM "feature_gates" WHERE "feature_gates"."feature_key" = 'cache_home_panel' /*application:web,correlation_id:01F5YF3JKFYABTR19KF4YWG076,endpoint_id:ProjectsController#show,line:/lib/feature.rb:80:in `enabled?'*/
1.306ms 	
SELECT MAX("project_authorizations"."access_level") AS maximum_access_level, "project_authorizations"."user_id" AS project_authorizations_user_id FROM "project_authorizations" WHERE "project_authorizations"."project_id" = 6 AND "project_authorizations"."user_id" = 1 GROUP BY "project_authorizations"."user_id" /*application:web,correlation_id:01F5YF3JKFYABTR19KF4YWG076,endpoint_id:ProjectsController#show,line:/app/models/project_team.rb:173:in `block in max_member_access_for_user_ids'*/
1.278ms 	
SELECT "feature_gates".* FROM "feature_gates" WHERE "feature_gates"."feature_key" = 'artifacts_management_page' /*application:web,correlation_id:01F5YF3JKFYABTR19KF4YWG076,endpoint_id:ProjectsController#show,line:/lib/feature.rb:80:in `enabled?'*/
1.277ms 	
SELECT "projects".* FROM "projects" WHERE "projects"."id" = 6 LIMIT 1 /*application:web,correlation_id:01F5YF3JKFYABTR19KF4YWG076,endpoint_id:ProjectsController#show,line:/app/models/project.rb:1503:in `forked?'*/
1.269ms 	
SELECT "feature_gates".* FROM "feature_gates" WHERE "feature_gates"."feature_key" = 'learn_gitlab_a_experiment_percentage' /*application:web,correlation_id:01F5YF3JKFYABTR19KF4YWG076,endpoint_id:ProjectsController#show,line:/lib/feature.rb:80:in `enabled?'*/
1.252ms 	
SELECT "feature_gates".* FROM "feature_gates" WHERE "feature_gates"."feature_key" = 'refactor_blob_viewer' /*application:web,correlation_id:01F5YF3JKFYABTR19KF4YWG076,endpoint_id:ProjectsController#show,line:/lib/feature.rb:80:in `enabled?'*/
1.249ms 	
SELECT "feature_gates".* FROM "feature_gates" WHERE "feature_gates"."feature_key" = 'security_orchestration_policies_configuration' /*application:web,correlation_id:01F5YF3JKFYABTR19KF4YWG076,endpoint_id:ProjectsController#show,line:/lib/feature.rb:80:in `enabled?'*/
1.244ms 	
SELECT "feature_gates".* FROM "feature_gates" WHERE "feature_gates"."feature_key" = 'infrastructure_registry_page' /*application:web,correlation_id:01F5YF3JKFYABTR19KF4YWG076,endpoint_id:ProjectsController#show,line:/lib/feature.rb:80:in `enabled?'*/
1.242ms 	
SELECT "feature_gates".* FROM "feature_gates" WHERE "feature_gates"."feature_key" = 'cve_id_request_button' /*application:web,correlation_id:01F5YF3JKFYABTR19KF4YWG076,endpoint_id:ProjectsController#show,line:/lib/feature.rb:80:in `enabled?'*/
1.231ms 	
SELECT "feature_gates".* FROM "feature_gates" WHERE "feature_gates"."feature_key" = 'repo_integrations_link' /*application:web,correlation_id:01F5YF3JKFYABTR19KF4YWG076,endpoint_id:ProjectsController#show,line:/app/experiments/application_experiment.rb:9:in `enabled?'*/
1.214ms 	
SELECT "members".* FROM "members" WHERE "members"."type" = 'ProjectMember' AND "members"."source_id" = 6 AND "members"."source_type" = 'Project' AND "members"."requested_at" IS NOT NULL AND "members"."user_id" = 1 LIMIT 1 /*application:web,correlation_id:01F5YF3JKFYABTR19KF4YWG076,endpoint_id:ProjectsController#show,line:/app/views/shared/members/_access_request_links.html.haml:9:in `_app_views_shared_members__access_request_links_html_haml__3567752995446348963_271920'*/
1.211ms 	
SELECT "routes".* FROM "routes" WHERE "routes"."source_id" = 26 AND "routes"."source_type" = 'Namespace' LIMIT 1 /*application:web,correlation_id:01F5YF3JKFYABTR19KF4YWG076,endpoint_id:ProjectsController#show,line:/app/models/concerns/routable.rb:118:in `full_path'*/
1.203ms 	
SELECT "feature_gates".* FROM "feature_gates" WHERE "feature_gates"."feature_key" = 'product_analytics' /*application:web,correlation_id:01F5YF3JKFYABTR19KF4YWG076,endpoint_id:ProjectsController#show,line:/lib/feature.rb:80:in `enabled?'*/
1.18ms 	
SELECT "feature_gates".* FROM "feature_gates" WHERE "feature_gates"."feature_key" = 'auto_devops_banner_disabled' /*application:web,correlation_id:01F5YF3JKFYABTR19KF4YWG076,endpoint_id:ProjectsController#show,line:/lib/feature.rb:80:in `enabled?'*/
1.17ms 	
SELECT "namespaces".* FROM "namespaces" WHERE "namespaces"."id" = 26 LIMIT 1 /*application:web,correlation_id:01F5YF3JKFYABTR19KF4YWG076,endpoint_id:ProjectsController#show,line:/app/models/project.rb:2525:in `root_namespace'*/
1.169ms 	
SELECT 1 AS one FROM "identities" WHERE "identities"."user_id" = 1 AND (provider LIKE 'ldap%' AND extern_uid IS NOT NULL) LIMIT 1 /*application:web,correlation_id:01F5YF3JKFYABTR19KF4YWG076,endpoint_id:ProjectsController#show,line:/app/models/user.rb:1222:in `ldap_user?'*/
1.168ms 	
SELECT "namespaces".* FROM "namespaces" WHERE "namespaces"."type" = 'Group' AND "namespaces"."id" = 26 AND "namespaces"."type" = 'Group' LIMIT 1 /*application:web,correlation_id:01F5YF3JKFYABTR19KF4YWG076,endpoint_id:ProjectsController#show,line:/ee/app/policies/ee/project_policy.rb:311:in `block (2 levels) in <module:ProjectPolicy>'*/
1.155ms 	
SELECT a.attname, format_type(a.atttypid, a.atttypmod), pg_get_expr(d.adbin, d.adrelid), a.attnotnull, a.atttypid, a.atttypmod, c.collname, col_description(a.attrelid, a.attnum) AS comment FROM pg_attribute a LEFT JOIN pg_attrdef d ON a.attrelid = d.adrelid AND a.attnum = d.adnum LEFT JOIN pg_type t ON a.atttypid = t.oid LEFT JOIN pg_collation c ON a.attcollation = c.oid AND a.attcollation <> t.typcollation WHERE a.attrelid = '"taggings"'::regclass AND a.attnum > 0 AND NOT a.attisdropped ORDER BY a.attnum
1.147ms 	
SELECT a.attname, format_type(a.atttypid, a.atttypmod), pg_get_expr(d.adbin, d.adrelid), a.attnotnull, a.atttypid, a.atttypmod, c.collname, col_description(a.attrelid, a.attnum) AS comment FROM pg_attribute a LEFT JOIN pg_attrdef d ON a.attrelid = d.adrelid AND a.attnum = d.adnum LEFT JOIN pg_type t ON a.atttypid = t.oid LEFT JOIN pg_collation c ON a.attcollation = c.oid AND a.attcollation <> t.typcollation WHERE a.attrelid = '"notification_settings"'::regclass AND a.attnum > 0 AND NOT a.attisdropped ORDER BY a.attnum
1.102ms 	
SELECT a.attname, format_type(a.atttypid, a.atttypmod), pg_get_expr(d.adbin, d.adrelid), a.attnotnull, a.atttypid, a.atttypmod, c.collname, col_description(a.attrelid, a.attnum) AS comment FROM pg_attribute a LEFT JOIN pg_attrdef d ON a.attrelid = d.adrelid AND a.attnum = d.adnum LEFT JOIN pg_type t ON a.atttypid = t.oid LEFT JOIN pg_collation c ON a.attcollation = c.oid AND a.attcollation <> t.typcollation WHERE a.attrelid = '"keys"'::regclass AND a.attnum > 0 AND NOT a.attisdropped ORDER BY a.attnum
1.083ms 	
SELECT a.attname, format_type(a.atttypid, a.atttypmod), pg_get_expr(d.adbin, d.adrelid), a.attnotnull, a.atttypid, a.atttypmod, c.collname, col_description(a.attrelid, a.attnum) AS comment FROM pg_attribute a LEFT JOIN pg_attrdef d ON a.attrelid = d.adrelid AND a.attnum = d.adnum LEFT JOIN pg_type t ON a.atttypid = t.oid LEFT JOIN pg_collation c ON a.attcollation = c.oid AND a.attcollation <> t.typcollation WHERE a.attrelid = '"project_statistics"'::regclass AND a.attnum > 0 AND NOT a.attisdropped ORDER BY a.attnum
1.076ms 	
SELECT "licenses".* FROM "licenses" ORDER BY "licenses"."id" DESC LIMIT 100
Cached
1.063ms 	
SELECT "saml_providers".* FROM "saml_providers" WHERE "saml_providers"."group_id" = 26 LIMIT 1 /*application:web,correlation_id:01F5YF3JKFYABTR19KF4YWG076,endpoint_id:ProjectsController#show,line:/ee/lib/gitlab/auth/group_saml/sso_enforcer.rb:35:in `group_access_restricted?'*/
1.059ms 	
SELECT a.attname, format_type(a.atttypid, a.atttypmod), pg_get_expr(d.adbin, d.adrelid), a.attnotnull, a.atttypid, a.atttypmod, c.collname, col_description(a.attrelid, a.attnum) AS comment FROM pg_attribute a LEFT JOIN pg_attrdef d ON a.attrelid = d.adrelid AND a.attnum = d.adnum LEFT JOIN pg_type t ON a.atttypid = t.oid LEFT JOIN pg_collation c ON a.attcollation = c.oid AND a.attcollation <> t.typcollation WHERE a.attrelid = '"project_settings"'::regclass AND a.attnum > 0 AND NOT a.attisdropped ORDER BY a.attnum
1.047ms 	
SELECT "projects"."id" AS t0_r0, "projects"."name" AS t0_r1, "projects"."path" AS t0_r2, "projects"."description" AS t0_r3, "projects"."created_at" AS t0_r4, "projects"."updated_at" AS t0_r5, "projects"."creator_id" AS t0_r6, "projects"."namespace_id" AS t0_r7, "projects"."last_activity_at" AS t0_r8, "projects"."import_url" AS t0_r9, "projects"."visibility_level" AS t0_r10, "projects"."archived" AS t0_r11, "projects"."avatar" AS t0_r12, "projects"."merge_requests_template" AS t0_r13, "projects"."star_count" AS t0_r14, "projects"."merge_requests_rebase_enabled" AS t0_r15, "projects"."import_type" AS t0_r16, "projects"."import_source" AS t0_r17, "projects"."approvals_before_merge" AS t0_r18, "projects"."reset_approvals_on_push" AS t0_r19, "projects"."merge_requests_ff_only_enabled" AS t0_r20, "projects"."issues_template" AS t0_r21, "projects"."mirror" AS t0_r22, "projects"."mirror_last_update_at" AS t0_r23, "projects"."mirror_last_successful_update_at" AS t0_r24, "projects"."mirror_user_id" AS t0_r25, "projects"."shared_runners_enabled" AS t0_r26, "projects"."runners_token" AS t0_r27, "projects"."build_coverage_regex" AS t0_r28, "projects"."build_allow_git_fetch" AS t0_r29, "projects"."build_timeout" AS t0_r30, "projects"."mirror_trigger_builds" AS t0_r31, "projects"."pending_delete" AS t0_r32, "projects"."public_builds" AS t0_r33, "projects"."last_repository_check_failed" AS t0_r34, "projects"."last_repository_check_at" AS t0_r35, "projects"."container_registry_enabled" AS t0_r36, "projects"."only_allow_merge_if_pipeline_succeeds" AS t0_r37, "projects"."has_external_issue_tracker" AS t0_r38, "projects"."repository_storage" AS t0_r39, "projects"."repository_read_only" AS t0_r40, "projects"."request_access_enabled" AS t0_r41, "projects"."has_external_wiki" AS t0_r42, "projects"."ci_config_path" AS t0_r43, "projects"."lfs_enabled" AS t0_r44, "projects"."description_html" AS t0_r45, "projects"."only_allow_merge_if_all_discussions_are_resolved" AS t0_r46, "projects"."repository_size_limit" AS t0_r47, "projects"."printing_merge_request_link_enabled" AS t0_r48, "projects"."auto_cancel_pending_pipelines" AS t0_r49, "projects"."service_desk_enabled" AS t0_r50, "projects"."cached_markdown_version" AS t0_r51, "projects"."delete_error" AS t0_r52, "projects"."last_repository_updated_at" AS t0_r53, "projects"."disable_overriding_approvers_per_merge_request" AS t0_r54, "projects"."storage_version" AS t0_r55, "projects"."resolve_outdated_diff_discussions" AS t0_r56, "projects"."remote_mirror_available_overridden" AS t0_r57, "projects"."only_mirror_protected_branches" AS t0_r58, "projects"."pull_mirror_available_overridden" AS t0_r59, "projects"."jobs_cache_index" AS t0_r60, "projects"."external_authorization_classification_label" AS t0_r61, "projects"."mirror_overwrites_diverged_branches" AS t0_r62, "projects"."pages_https_only" AS t0_r63, "projects"."external_webhook_token" AS t0_r64, "projects"."packages_enabled" AS t0_r65, "projects"."merge_requests_author_approval" AS t0_r66, "projects"."pool_repository_id" AS t0_r67, "projects"."runners_token_encrypted" AS t0_r68, "projects"."bfg_object_map" AS t0_r69, "projects"."detected_repository_languages" AS t0_r70, "projects"."merge_requests_disable_committers_approval" AS t0_r71, "projects"."require_password_to_approve" AS t0_r72, "projects"."emails_disabled" AS t0_r73, "projects"."max_pages_size" AS t0_r74, "projects"."max_artifacts_size" AS t0_r75, "projects"."pull_mirror_branch_prefix" AS t0_r76, "projects"."remove_source_branch_after_merge" AS t0_r77, "projects"."marked_for_deletion_at" AS t0_r78, "projects"."marked_for_deletion_by_user_id" AS t0_r79, "projects"."suggestion_commit_message" AS t0_r80, "projects"."autoclose_referenced_issues" AS t0_r81, "routes"."id" AS t1_r0, "routes"."source_id" AS t1_r1, "routes"."source_type" AS t1_r2, "routes"."path" AS t1_r3, "routes"."created_at" AS t1_r4, "routes"."updated_at" AS t1_r5, "routes"."name" AS t1_r6 FROM "projects" LEFT OUTER JOIN "routes" ON "routes"."source_type" = 'Project' AND "routes"."source_id" = "projects"."id" WHERE "routes"."path" = 'flightjs/flight' LIMIT 1
Cached
1.026ms 	
SELECT a.attname, format_type(a.atttypid, a.atttypmod), pg_get_expr(d.adbin, d.adrelid), a.attnotnull, a.atttypid, a.atttypmod, c.collname, col_description(a.attrelid, a.attnum) AS comment FROM pg_attribute a LEFT JOIN pg_attrdef d ON a.attrelid = d.adrelid AND a.attnum = d.adnum LEFT JOIN pg_type t ON a.atttypid = t.oid LEFT JOIN pg_collation c ON a.attcollation = c.oid AND a.attcollation <> t.typcollation WHERE a.attrelid = '"cluster_projects"'::regclass AND a.attnum > 0 AND NOT a.attisdropped ORDER BY a.attnum
1.025ms 	
SELECT a.attname, format_type(a.atttypid, a.atttypmod), pg_get_expr(d.adbin, d.adrelid), a.attnotnull, a.atttypid, a.atttypmod, c.collname, col_description(a.attrelid, a.attnum) AS comment FROM pg_attribute a LEFT JOIN pg_attrdef d ON a.attrelid = d.adrelid AND a.attnum = d.adnum LEFT JOIN pg_type t ON a.atttypid = t.oid LEFT JOIN pg_collation c ON a.attcollation = c.oid AND a.attcollation <> t.typcollation WHERE a.attrelid = '"project_auto_devops"'::regclass AND a.attnum > 0 AND NOT a.attisdropped ORDER BY a.attnum
1.008ms 	
SELECT a.attname, format_type(a.atttypid, a.atttypmod), pg_get_expr(d.adbin, d.adrelid), a.attnotnull, a.atttypid, a.atttypmod, c.collname, col_description(a.attrelid, a.attnum) AS comment FROM pg_attribute a LEFT JOIN pg_attrdef d ON a.attrelid = d.adrelid AND a.attnum = d.adnum LEFT JOIN pg_type t ON a.atttypid = t.oid LEFT JOIN pg_collation c ON a.attcollation = c.oid AND a.attcollation <> t.typcollation WHERE a.attrelid = '"protected_branches"'::regclass AND a.attnum > 0 AND NOT a.attisdropped ORDER BY a.attnum
1.004ms 	
SELECT a.attname, format_type(a.atttypid, a.atttypmod), pg_get_expr(d.adbin, d.adrelid), a.attnotnull, a.atttypid, a.atttypmod, c.collname, col_description(a.attrelid, a.attnum) AS comment FROM pg_attribute a LEFT JOIN pg_attrdef d ON a.attrelid = d.adrelid AND a.attnum = d.adnum LEFT JOIN pg_type t ON a.atttypid = t.oid LEFT JOIN pg_collation c ON a.attcollation = c.oid AND a.attcollation <> t.typcollation WHERE a.attrelid = '"members"'::regclass AND a.attnum > 0 AND NOT a.attisdropped ORDER BY a.attnum
0.992ms 	
SELECT a.attname, format_type(a.atttypid, a.atttypmod), pg_get_expr(d.adbin, d.adrelid), a.attnotnull, a.atttypid, a.atttypmod, c.collname, col_description(a.attrelid, a.attnum) AS comment FROM pg_attribute a LEFT JOIN pg_attrdef d ON a.attrelid = d.adrelid AND a.attnum = d.adnum LEFT JOIN pg_type t ON a.atttypid = t.oid LEFT JOIN pg_collation c ON a.attcollation = c.oid AND a.attcollation <> t.typcollation WHERE a.attrelid = '"tags"'::regclass AND a.attnum > 0 AND NOT a.attisdropped ORDER BY a.attnum
0.982ms 	
SELECT a.attname, format_type(a.atttypid, a.atttypmod), pg_get_expr(d.adbin, d.adrelid), a.attnotnull, a.atttypid, a.atttypmod, c.collname, col_description(a.attrelid, a.attnum) AS comment FROM pg_attribute a LEFT JOIN pg_attrdef d ON a.attrelid = d.adrelid AND a.attnum = d.adnum LEFT JOIN pg_type t ON a.atttypid = t.oid LEFT JOIN pg_collation c ON a.attcollation = c.oid AND a.attcollation <> t.typcollation WHERE a.attrelid = '"releases"'::regclass AND a.attnum > 0 AND NOT a.attisdropped ORDER BY a.attnum
0.972ms 	
SELECT a.attname, format_type(a.atttypid, a.atttypmod), pg_get_expr(d.adbin, d.adrelid), a.attnotnull, a.atttypid, a.atttypmod, c.collname, col_description(a.attrelid, a.attnum) AS comment FROM pg_attribute a LEFT JOIN pg_attrdef d ON a.attrelid = d.adrelid AND a.attnum = d.adnum LEFT JOIN pg_type t ON a.atttypid = t.oid LEFT JOIN pg_collation c ON a.attcollation = c.oid AND a.attcollation <> t.typcollation WHERE a.attrelid = '"protected_branch_push_access_levels"'::regclass AND a.attnum > 0 AND NOT a.attisdropped ORDER BY a.attnum
0.939ms 	
SELECT a.attname, format_type(a.atttypid, a.atttypmod), pg_get_expr(d.adbin, d.adrelid), a.attnotnull, a.atttypid, a.atttypmod, c.collname, col_description(a.attrelid, a.attnum) AS comment FROM pg_attribute a LEFT JOIN pg_attrdef d ON a.attrelid = d.adrelid AND a.attnum = d.adnum LEFT JOIN pg_type t ON a.atttypid = t.oid LEFT JOIN pg_collation c ON a.attcollation = c.oid AND a.attcollation <> t.typcollation WHERE a.attrelid = '"badges"'::regclass AND a.attnum > 0 AND NOT a.attisdropped ORDER BY a.attnum
0.928ms 	
SELECT "licenses".* FROM "licenses" ORDER BY "licenses"."id" DESC LIMIT 100
Cached
0.913ms 	
SELECT 1 AS one FROM "identities" WHERE "identities"."user_id" = 1 AND "identities"."extern_uid" IS NOT NULL AND "identities"."provider" = 'crowd' LIMIT 1 /*application:web,correlation_id:01F5YF3JKFYABTR19KF4YWG076,endpoint_id:ProjectsController#show,line:/app/models/user.rb:1214:in `crowd_user?'*/
0.909ms 	
SELECT "licenses".* FROM "licenses" ORDER BY "licenses"."id" DESC LIMIT 100
Cached
0.887ms 	
SELECT a.attname, format_type(a.atttypid, a.atttypmod), pg_get_expr(d.adbin, d.adrelid), a.attnotnull, a.atttypid, a.atttypmod, c.collname, col_description(a.attrelid, a.attnum) AS comment FROM pg_attribute a LEFT JOIN pg_attrdef d ON a.attrelid = d.adrelid AND a.attnum = d.adnum LEFT JOIN pg_type t ON a.atttypid = t.oid LEFT JOIN pg_collation c ON a.attcollation = c.oid AND a.attcollation <> t.typcollation WHERE a.attrelid = '"fork_networks"'::regclass AND a.attnum > 0 AND NOT a.attisdropped ORDER BY a.attnum
0.847ms 	
SELECT a.attname, format_type(a.atttypid, a.atttypmod), pg_get_expr(d.adbin, d.adrelid), a.attnotnull, a.atttypid, a.atttypmod, c.collname, col_description(a.attrelid, a.attnum) AS comment FROM pg_attribute a LEFT JOIN pg_attrdef d ON a.attrelid = d.adrelid AND a.attnum = d.adnum LEFT JOIN pg_type t ON a.atttypid = t.oid LEFT JOIN pg_collation c ON a.attcollation = c.oid AND a.attcollation <> t.typcollation WHERE a.attrelid = '"fork_network_members"'::regclass AND a.attnum > 0 AND NOT a.attisdropped ORDER BY a.attnum
0.814ms 	
SELECT "licenses".* FROM "licenses" ORDER BY "licenses"."id" DESC LIMIT 100
Cached
0.765ms 	
SELECT "licenses".* FROM "licenses" ORDER BY "licenses"."id" DESC LIMIT 100
Cached
0.755ms 	
SELECT "licenses".* FROM "licenses" ORDER BY "licenses"."id" DESC LIMIT 100
Cached
0.751ms 	
SELECT "appearances".* FROM "appearances" ORDER BY "appearances"."id" ASC LIMIT 1
Cached
0.747ms 	
SELECT "appearances".* FROM "appearances" ORDER BY "appearances"."id" ASC LIMIT 1
Cached
0.739ms 	
SELECT "routes".* FROM "routes" WHERE "routes"."source_id" = 26 AND "routes"."source_type" = 'Namespace' LIMIT 1
Cached
0.735ms 	
SELECT "licenses".* FROM "licenses" ORDER BY "licenses"."id" DESC LIMIT 100
Cached
0.726ms 	
SELECT a.attname, format_type(a.atttypid, a.atttypmod), pg_get_expr(d.adbin, d.adrelid), a.attnotnull, a.atttypid, a.atttypmod, c.collname, col_description(a.attrelid, a.attnum) AS comment FROM pg_attribute a LEFT JOIN pg_attrdef d ON a.attrelid = d.adrelid AND a.attnum = d.adnum LEFT JOIN pg_type t ON a.atttypid = t.oid LEFT JOIN pg_collation c ON a.attcollation = c.oid AND a.attcollation <> t.typcollation WHERE a.attrelid = '"repository_languages"'::regclass AND a.attnum > 0 AND NOT a.attisdropped ORDER BY a.attnum
0.721ms 	
SELECT "licenses".* FROM "licenses" ORDER BY "licenses"."id" DESC LIMIT 100
Cached
0.719ms 	
SELECT "licenses".* FROM "licenses" ORDER BY "licenses"."id" DESC LIMIT 100
Cached
0.716ms 	
SELECT "licenses".* FROM "licenses" ORDER BY "licenses"."id" DESC LIMIT 100
Cached
0.708ms 	
SELECT 1 AS one FROM "identities" WHERE "identities"."user_id" = 1 AND (provider LIKE 'ldap%' AND extern_uid IS NOT NULL) LIMIT 1
Cached
0.706ms 	
SELECT "licenses".* FROM "licenses" ORDER BY "licenses"."id" DESC LIMIT 100
Cached
0.701ms 	
SELECT "licenses".* FROM "licenses" ORDER BY "licenses"."id" DESC LIMIT 100
Cached
0.7ms 	
SELECT 1 AS one FROM "identities" WHERE "identities"."user_id" = 1 AND (provider LIKE 'ldap%' AND extern_uid IS NOT NULL) LIMIT 1
Cached
0.689ms 	
SELECT 1 AS one FROM "projects" WHERE "projects"."namespace_id" IN (WITH RECURSIVE "base_and_descendants" AS ((SELECT "namespaces".* FROM "namespaces" WHERE "namespaces"."type" = 'Group' AND "namespaces"."id" = 26) UNION (SELECT "namespaces".* FROM "namespaces", "base_and_descendants" WHERE "namespaces"."type" = 'Group' AND "namespaces"."parent_id" = "base_and_descendants"."id")) SELECT id FROM "base_and_descendants" AS "namespaces") AND "projects"."shared_runners_enabled" = TRUE LIMIT 1
Cached
0.684ms 	
SELECT "licenses".* FROM "licenses" ORDER BY "licenses"."id" DESC LIMIT 100
Cached
0.68ms 	
SELECT "licenses".* FROM "licenses" ORDER BY "licenses"."id" DESC LIMIT 100
Cached
0.669ms 	
SELECT "licenses".* FROM "licenses" ORDER BY "licenses"."id" DESC LIMIT 100
Cached
0.664ms 	
SELECT "licenses".* FROM "licenses" ORDER BY "licenses"."id" DESC LIMIT 100
Cached
0.658ms 	
SELECT "licenses".* FROM "licenses" ORDER BY "licenses"."id" DESC LIMIT 100
Cached
0.639ms 	
SELECT "licenses".* FROM "licenses" ORDER BY "licenses"."id" DESC LIMIT 100
Cached
0.635ms 	
SELECT "licenses".* FROM "licenses" ORDER BY "licenses"."id" DESC LIMIT 100
Cached
0.635ms 	
SELECT "licenses".* FROM "licenses" ORDER BY "licenses"."id" DESC LIMIT 100
Cached
0.634ms 	
SELECT "licenses".* FROM "licenses" ORDER BY "licenses"."id" DESC LIMIT 100
Cached
0.614ms 	
SELECT a.attname FROM ( SELECT indrelid, indkey, generate_subscripts(indkey, 1) idx FROM pg_index WHERE indrelid = '"protected_branches"'::regclass AND indisprimary ) i JOIN pg_attribute a ON a.attrelid = i.indrelid AND a.attnum = i.indkey[i.idx] ORDER BY i.idx
0.609ms 	
SELECT "licenses".* FROM "licenses" ORDER BY "licenses"."id" DESC LIMIT 100
Cached
0.604ms 	
SELECT 1 AS one FROM "identities" WHERE "identities"."user_id" = 1 AND "identities"."extern_uid" IS NOT NULL AND "identities"."provider" = 'crowd' LIMIT 1
Cached
0.601ms 	
SELECT "licenses".* FROM "licenses" ORDER BY "licenses"."id" DESC LIMIT 100
Cached
0.59ms 	
SELECT "licenses".* FROM "licenses" ORDER BY "licenses"."id" DESC LIMIT 100
Cached
0.585ms 	
SELECT "licenses".* FROM "licenses" ORDER BY "licenses"."id" DESC LIMIT 100
Cached
0.582ms 	
SELECT "licenses".* FROM "licenses" ORDER BY "licenses"."id" DESC LIMIT 100
Cached
0.58ms 	
SELECT "licenses".* FROM "licenses" ORDER BY "licenses"."id" DESC LIMIT 100
Cached

[
  "ee/lib/ee/peek/views/active_record.rb:11:in `generate_detail'",
  "lib/peek/views/active_record.rb:52:in `block in setup_subscribers'",
  "ee/app/models/license.rb:302:in `load_license'",
  "ee/app/models/license.rb:281:in `block in current'",
  "lib/gitlab/json_cache.rb:51:in `fetch'",
  "ee/app/models/license.rb:281:in `current'",
  "ee/app/models/ee/application_setting.rb:372:in `instance_review_permitted?'",
  "lib/gitlab/current_settings.rb:28:in `method_missing'",
  "app/helpers/application_helper.rb:218:in `instance_review_permitted?'",
  "app/views/shared/_user_dropdown_instance_review.html.haml:1",
  "app/views/layouts/header/_current_user_dropdown.html.haml:45",
  "app/views/layouts/header/_default.html.haml:107",
  "app/views/layouts/application.html.haml:12",
  "app/views/layouts/project.html.haml:17",
  "app/controllers/application_controller.rb:128:in `render'",
  "app/controllers/application_controller.rb:541:in `block in allow_gitaly_ref_name_caching'",
  "lib/gitlab/gitaly_client.rb:341:in `allow_ref_name_caching'",
  "app/controllers/application_controller.rb:540:in `allow_gitaly_ref_name_caching'",
  "ee/lib/gitlab/ip_address_state.rb:10:in `with'",
  "ee/app/controllers/ee/application_controller.rb:40:in `set_current_ip_address'",
  "app/controllers/application_controller.rb:490:in `set_current_admin'",
  "lib/gitlab/session.rb:11:in `with_session'",
  "app/controllers/application_controller.rb:481:in `set_session_storage'",
  "app/controllers/application_controller.rb:475:in `set_locale'",
  "app/controllers/application_controller.rb:468:in `block in set_current_context'",
  "lib/gitlab/application_context.rb:70:in `block in use'",
  "lib/gitlab/application_context.rb:70:in `use'",
  "lib/gitlab/application_context.rb:27:in `with_context'",
  "app/controllers/application_controller.rb:459:in `set_current_context'",
  "lib/gitlab/jira/middleware.rb:19:in `call'"
]

0.573ms 	
SELECT a.attname FROM ( SELECT indrelid, indkey, generate_subscripts(indkey, 1) idx FROM pg_index WHERE indrelid = '"tags"'::regclass AND indisprimary ) i JOIN pg_attribute a ON a.attrelid = i.indrelid AND a.attnum = i.indkey[i.idx] ORDER BY i.idx
0.567ms 	
SELECT a.attname FROM ( SELECT indrelid, indkey, generate_subscripts(indkey, 1) idx FROM pg_index WHERE indrelid = '"fork_networks"'::regclass AND indisprimary ) i JOIN pg_attribute a ON a.attrelid = i.indrelid AND a.attnum = i.indkey[i.idx] ORDER BY i.idx
0.516ms 	
SELECT a.attname FROM ( SELECT indrelid, indkey, generate_subscripts(indkey, 1) idx FROM pg_index WHERE indrelid = '"notification_settings"'::regclass AND indisprimary ) i JOIN pg_attribute a ON a.attrelid = i.indrelid AND a.attnum = i.indkey[i.idx] ORDER BY i.idx

Proposal

It seems that the use of JsonCache alone with a SafeRequestStore is not doing a good job here. What we could perhaps be doing is using that to populate a RequestCache instead. So we pay the JsonCache price once per request.

cc @stanhu

Edited by 🤖 GitLab Bot 🤖