Silvan
817670f1f7
perf: improve scalability of session api ( #9635 )
...
This pull request improves the scalability of the session API by
enhancing middleware tracing and refining SQL query behavior for user
authentication methods.
# Which Problems Are Solved
- Eventstore subscriptions locked each other during they wrote the
events to the event channels of the subscribers in push.
- `ListUserAuthMethodTypesRequired` query used `Bitmap heap scan` to
join the tables needed.
- The auth and oidc package triggered projections often when data were
read.
- The session API triggered the user projection each time a user was
searched to write the user check command.
# How the Problems Are Solved
- the `sync.Mutex` was replaced with `sync.RWMutex` to allow parallel
read of the map
- The query was refactored to use index scans only
- if the data should already be up-to-date `shouldTriggerBulk` is set to
false
- as the user should already exist for some time the trigger was
removed.
# Additional Changes
- refactoring of `tracing#Span.End` calls
# Additional Context
- part of https://github.com/zitadel/zitadel/issues/9239
---------
Co-authored-by: Tim Möhlmann <tim+github@zitadel.com>
2025-03-28 12:36:05 +00:00
..
2025-03-18 16:23:12 +01:00
2025-02-13 16:03:05 +00:00
2024-10-07 12:49:55 +00:00
2024-11-14 14:04:39 +00:00
2024-11-14 14:04:39 +00:00
2023-12-08 15:30:55 +01:00
2023-12-08 15:30:55 +01:00
2025-02-11 18:45:09 +00:00
2025-02-11 18:45:09 +00:00
2025-02-13 16:03:05 +00:00
2025-02-13 16:03:05 +00:00
2024-04-09 15:15:35 +02:00
2024-12-19 10:37:46 +01:00
2024-12-19 10:37:46 +01:00
2024-09-11 12:04:09 +03:00
2025-01-29 15:12:31 +00:00
2024-09-11 12:04:09 +03:00
2024-12-06 11:32:53 +00:00
2024-08-14 14:18:14 +00:00
2024-08-14 14:18:14 +00:00
2024-02-28 10:55:54 +02:00
2024-09-24 18:43:29 +02:00
2024-09-24 18:43:29 +02:00
2023-12-08 15:30:55 +01:00
2024-08-28 05:33:20 +00:00
2024-09-11 08:24:00 +00:00
2024-09-11 08:24:00 +00:00
2024-09-11 08:24:00 +00:00
2025-02-25 07:33:13 +01:00
2025-02-25 07:33:13 +01:00
2023-12-08 15:30:55 +01:00
2024-04-03 10:43:43 +00:00
2024-04-16 11:19:17 +00:00
2024-05-04 11:55:57 +02:00
2024-08-12 22:32:01 +02:00
2024-11-28 10:06:52 +00:00
2023-10-19 12:19:10 +02:00
2023-12-08 15:30:55 +01:00
2024-03-14 09:56:23 +00:00
2025-01-29 15:12:31 +00:00
2025-01-15 09:40:30 +01:00
2024-12-18 16:19:05 +00:00
2024-12-18 16:19:05 +00:00
2025-03-18 16:23:12 +01:00
2025-02-26 12:20:47 +00:00
2023-12-08 15:30:55 +01:00
2024-08-23 06:44:18 +00:00
2024-08-23 06:44:18 +00:00
2024-04-03 10:43:43 +00:00
2024-12-04 18:10:10 +00:00
2024-09-25 21:40:21 +02:00
2023-08-22 10:49:22 +00:00
2023-12-08 15:30:55 +01:00
2025-02-17 19:25:46 +01:00
2024-04-09 20:21:21 +03:00
2025-02-17 19:25:46 +01:00
2024-02-28 10:55:54 +02:00
2024-07-31 18:00:38 +03:00
2024-07-31 18:00:38 +03:00
2024-12-06 11:32:53 +00:00
2024-10-04 13:15:41 +00:00
2024-09-17 11:34:14 +00:00
2024-09-17 11:34:14 +00:00
2024-09-17 11:34:14 +00:00
2024-08-14 14:18:14 +00:00
2024-08-14 14:18:14 +00:00
2023-12-08 15:30:55 +01:00
2024-04-10 09:14:55 +00:00
2024-10-03 17:53:03 +02:00
2023-11-20 17:21:08 +02:00
2024-03-27 15:48:22 +02:00
2024-04-03 10:43:43 +00:00
2023-12-08 15:30:55 +01:00
2022-06-14 07:51:00 +02:00
2025-01-15 09:40:30 +01:00
2023-12-08 15:30:55 +01:00
2025-03-17 13:17:14 +00:00
2024-11-11 11:28:27 +00:00
2025-03-20 07:57:36 +00:00
2023-12-08 15:30:55 +01:00
2023-12-08 15:30:55 +01:00
2023-12-08 15:30:55 +01:00
2023-12-08 15:30:55 +01:00
2024-12-19 10:37:46 +01:00
2025-02-13 16:03:05 +00:00
2024-12-19 10:37:46 +01:00
2023-12-08 15:30:55 +01:00
2023-12-08 15:30:55 +01:00
2023-08-22 10:49:22 +00:00
2023-12-08 15:30:55 +01:00
2025-01-29 15:12:31 +00:00
2025-01-15 09:40:30 +01:00
2023-12-08 15:30:55 +01:00
2024-04-03 10:43:43 +00:00
2024-08-23 06:44:18 +00:00
2024-12-06 11:32:53 +00:00
2024-11-21 08:05:03 +02:00
2023-12-08 15:30:55 +01:00
2024-10-03 17:53:03 +02:00
2023-12-08 15:30:55 +01:00
2024-10-03 17:53:03 +02:00
2025-02-20 15:39:48 +00:00
2025-01-21 13:31:54 +01:00
2024-05-13 16:01:50 +02:00
2024-05-13 16:01:50 +02:00
2025-01-29 15:12:31 +00:00
2025-01-15 09:40:30 +01:00
2023-12-08 15:30:55 +01:00
2024-04-03 10:43:43 +00:00
2025-01-29 15:12:31 +00:00
2025-01-15 09:40:30 +01:00
2023-11-20 17:21:08 +02:00
2024-04-03 10:43:43 +00:00
2023-12-08 15:30:55 +01:00
2024-04-03 10:43:43 +00:00
2024-01-25 17:28:20 +01:00
2024-12-06 11:32:53 +00:00
2023-09-15 16:58:45 +02:00
2023-12-08 15:30:55 +01:00
2023-12-08 15:30:55 +01:00
2023-12-08 15:30:55 +01:00
2024-03-27 15:48:22 +02:00
2024-03-27 15:48:22 +02:00
2023-12-06 10:30:56 +00:00
2023-12-08 15:30:55 +01:00
2024-12-19 11:11:40 +00:00
2025-03-12 21:53:16 +01:00
2025-03-12 21:53:16 +01:00
2025-02-13 16:03:05 +00:00
2025-02-13 16:03:05 +00:00
2025-02-13 16:03:05 +00:00
2025-01-29 15:22:22 +02:00
2025-01-29 15:22:22 +02:00
2023-12-08 15:30:55 +01:00
2024-08-13 14:52:43 +02:00
2024-02-28 10:21:11 +00:00
2025-03-03 11:24:52 +01:00
2025-01-29 15:12:31 +00:00
2024-09-26 09:14:33 +02:00
2025-01-29 12:08:20 +00:00
2024-10-04 09:34:44 +00:00
2024-09-12 06:27:29 +02:00
2025-01-16 10:09:15 +00:00
2024-04-09 20:21:21 +03:00
2025-01-16 10:09:15 +00:00
2024-11-28 10:06:52 +00:00
2024-11-28 10:06:52 +00:00
2024-11-28 10:06:52 +00:00
2024-11-28 10:06:52 +00:00
2025-03-28 12:36:05 +00:00
2025-03-28 12:36:05 +00:00
2025-03-28 12:36:05 +00:00
2025-01-30 16:43:13 +01:00
2025-01-29 15:12:31 +00:00
2025-01-29 15:12:31 +00:00
2024-09-24 18:43:29 +02:00
2023-11-20 17:21:08 +02:00
2024-09-24 18:43:29 +02:00
2025-01-21 13:31:54 +01:00
2025-01-21 13:31:54 +01:00
2025-01-29 15:12:31 +00:00
2025-01-29 15:12:31 +00:00
2023-12-08 15:30:55 +01:00
2024-04-05 09:35:49 +00:00
2023-12-08 15:30:55 +01:00
2024-04-03 10:43:43 +00:00
2024-08-28 19:46:45 +00:00
2024-08-28 19:46:45 +00:00
2025-01-29 15:12:31 +00:00
2025-03-28 12:36:05 +00:00
2025-01-29 15:12:31 +00:00
2024-04-09 15:15:35 +02:00
2024-06-14 10:00:43 +02:00
2024-06-14 10:00:43 +02:00
2024-08-16 11:41:09 +00:00
2024-08-16 11:41:09 +00:00
2024-08-14 14:18:14 +00:00
2024-08-16 11:41:09 +00:00
2024-08-14 14:18:14 +00:00
2024-08-14 14:18:14 +00:00
2023-11-20 17:21:08 +02:00