Add UI control to switch between Zoekt and Elasticsearch
What does this MR do and why?
Related to #384726 (closed)
Add UI control to switch between Zoekt and Elasticsearch
query plan: https://postgres.ai/console/gitlab/gitlab-production-tunnel-pg12/sessions/19267/commands/63578
Click to expand
Limit (cost=17.59..19.14 rows=1 width=4) (actual time=18.948..18.954 rows=0 loops=1)
Buffers: shared hit=3 read=10
I/O Timings: read=18.677 write=0.000
-> Merge Join (cost=17.59..20.69 rows=2 width=4) (actual time=18.946..18.952 rows=0 loops=1)
Merge Cond: (zoekt_indexed_namespaces.namespace_id = namespaces.id)
Buffers: shared hit=3 read=10
I/O Timings: read=18.677 write=0.000
-> Index Only Scan using index_zoekt_indexed_namespaces_on_namespace_id on public.zoekt_indexed_namespaces (cost=0.13..3.17 rows=3 width=8) (actual time=2.694..2.695 rows=1 loops=1)
Heap Fetches: 0
Buffers: shared read=2
I/O Timings: read=2.642 write=0.000
-> Unique (cost=17.46..17.47 rows=2 width=4) (actual time=16.248..16.252 rows=0 loops=1)
Buffers: shared hit=3 read=8
I/O Timings: read=16.034 write=0.000
-> Sort (cost=17.46..17.46 rows=2 width=4) (actual time=16.247..16.251 rows=0 loops=1)
Sort Key: namespaces.id
Sort Method: quicksort Memory: 25kB
Buffers: shared hit=3 read=8
I/O Timings: read=16.034 write=0.000
-> Append (cost=0.56..17.45 rows=2 width=4) (actual time=16.180..16.184 rows=0 loops=1)
Buffers: shared read=8
I/O Timings: read=16.034 write=0.000
-> Index Scan using index_namespaces_on_owner_id on public.namespaces (cost=0.56..3.58 rows=1 width=4) (actual time=7.523..7.523 rows=0 loops=1)
Index Cond: (namespaces.owner_id = 10)
Filter: ((namespaces.type)::text = 'User'::text)
Rows Removed by Filter: 0
Buffers: shared read=4
I/O Timings: read=7.468 write=0.000
-> Nested Loop (cost=1.00..13.83 rows=1 width=4) (actual time=8.653..8.655 rows=0 loops=1)
Buffers: shared read=4
I/O Timings: read=8.566 write=0.000
-> Index Scan using idx_members_on_user_and_source_and_source_type_and_member_role on public.members (cost=0.56..10.38 rows=1 width=4) (actual time=8.651..8.651 rows=0 loops=1)
Index Cond: ((members.user_id = 10) AND ((members.source_type)::text = 'Namespace'::text))
Filter: ((members.requested_at IS NULL) AND (members.access_level >= 10) AND ((members.type)::text = 'GroupMember'::text) AND (members.access_level = ANY ('{20,30,40,50}'::integer[])))
Rows Removed by Filter: 0
Buffers: shared read=4
I/O Timings: read=8.566 write=0.000
-> Index Only Scan using index_groups_on_parent_id_id on public.namespaces namespaces_1 (cost=0.43..3.45 rows=1 width=4) (actual time=0.000..0.000 rows=0 loops=0)
Index Cond: ((namespaces_1.parent_id IS NULL) AND (namespaces_1.id = members.source_id))
Heap Fetches: 0
I/O Timings: read=0.000 write=0.000
Screenshots or screen recordings
Screenshots are required for UI changes, and strongly recommended for all other merge requests.
Before | After |
---|---|
How to set up and validate locally
Numbered steps to set up and validate the change are strongly suggested.
MR acceptance checklist
This checklist encourages us to confirm any changes have been analyzed to reduce risks in quality, performance, reliability, security, and maintainability.
-
I have evaluated the MR acceptance checklist for this MR.
Edited by John Mason