Evan Stade
d9055a7796
IDB: rework lock manager to support request prioritization.
...
Currently nothing uses the prioritization, so there should be no
behavior change.
Design-wise, the big changes are:
* switching from every lockable entity maintaining its own queue of
blocked requests, to the manager maintaining a single queue of
requests (where each request covers multiple locks, i.e. a single
call to AcquireLocks). This is to make it easier to verify whether
requests as a whole block each other (are "overlapping"), and whether
it's safe to prioritize one over another without the potential for
gridlock.
* not granting any lock until *all* requested locks are available.
This doesn't make a difference in terms of how quickly requests will
be served, but it makes it easier to deal with prioritization because
there's never a need to take back locks from a partially granted
request.
Some classes and structs are renamed for clarity, but some are left
as-is to reduce diff noise. e.g., "partitioned" is at this point a
throwaway word as two locks with different "partitions" are handled
no differently from locks whose IDs differ in the non-partition
field, so it will make sense to simplify naming by removing
"partition", but that's left as a TODO.
Bug: 359623664
Change-Id: I7ec862e1a9ddf23065aad65b7ceacd0d522380cf
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5786780
Reviewed-by: Brad Triebwasser <btriebw@chromium.org >
Commit-Queue: Evan Stade <estade@chromium.org >
Reviewed-by: Nathan Memmott <memmott@chromium.org >
Cr-Commit-Position: refs/heads/main@{#1345720}
2024-08-22 23:11:27 +00:00
..
2024-08-22 18:31:43 +00:00
2024-08-20 20:19:24 +00:00
2024-08-16 10:26:17 +00:00
2024-08-22 16:11:34 +00:00
2024-08-22 20:57:19 +00:00
2024-08-06 02:43:45 +00:00
2024-08-02 09:25:36 +00:00
2024-07-15 23:56:52 +00:00
2024-08-19 21:52:30 +00:00
2024-08-15 23:29:13 +00:00
2024-06-29 00:43:44 +00:00
2024-07-10 20:59:12 +00:00
2024-07-31 23:34:24 +00:00
2024-08-20 18:26:40 +00:00
2024-07-19 21:04:34 +00:00
2024-07-11 20:44:21 +00:00
2024-08-13 20:24:56 +00:00
2024-08-16 19:08:58 +00:00
2024-08-19 20:57:26 +00:00
2024-05-29 18:14:19 +00:00
2024-08-14 08:07:36 +00:00
2024-08-06 19:16:15 +00:00
2024-07-11 19:09:54 +00:00
2024-05-29 18:14:19 +00:00
2024-08-20 23:37:06 +00:00
2024-07-10 20:59:12 +00:00
2024-08-22 11:32:55 +00:00
2024-07-26 01:02:35 +00:00
2024-08-21 15:13:10 +00:00
2024-08-20 18:38:37 +00:00
2024-08-16 17:10:56 +00:00
2024-08-20 18:48:30 +00:00
2024-07-31 18:27:55 +00:00
2024-08-22 20:33:10 +00:00
2024-08-15 02:39:49 +00:00
2024-07-26 20:30:47 +00:00
2024-08-13 19:57:02 +00:00
2024-08-15 02:39:49 +00:00
2024-08-20 20:59:51 +00:00
2024-08-21 16:42:37 +00:00
2024-05-15 04:36:02 +00:00
2024-07-10 20:59:12 +00:00
2024-05-27 14:52:11 +00:00
2024-08-22 23:11:27 +00:00
2024-07-11 10:03:23 +00:00
2024-08-22 18:16:54 +00:00
2024-04-03 04:56:11 +00:00
2024-08-21 23:05:51 +00:00
2024-06-19 02:18:37 +00:00
2024-08-19 14:07:49 +00:00
2024-07-19 16:04:02 +00:00
2024-08-22 16:45:17 +00:00
2024-04-22 19:33:31 +00:00
2024-06-08 05:13:06 +00:00
2024-06-08 05:13:06 +00:00
2024-08-22 21:41:26 +00:00
2024-08-20 22:32:30 +00:00
2024-07-25 23:51:06 +00:00
2024-07-10 20:59:12 +00:00
2024-07-19 15:53:27 +00:00
2024-08-22 18:42:36 +00:00
2024-07-10 20:59:12 +00:00
2024-08-22 02:07:28 +00:00
2024-04-22 23:34:28 +00:00
2024-08-22 20:57:19 +00:00
2024-08-22 20:57:19 +00:00
2024-07-11 09:58:42 +00:00
2024-06-08 05:13:06 +00:00
2024-07-30 16:31:47 +00:00
2024-08-22 20:57:19 +00:00
2024-08-20 19:12:35 +00:00
2024-08-21 16:42:37 +00:00
2024-04-27 00:39:58 +00:00
2024-06-11 23:35:21 +00:00
2024-06-08 05:13:06 +00:00
2024-08-01 08:14:24 +00:00
2024-08-15 20:41:40 +00:00
2024-08-22 22:23:02 +00:00
2024-07-11 19:56:37 +00:00
2024-08-15 02:39:49 +00:00
2024-07-23 01:07:55 +00:00
2024-08-01 20:17:28 +00:00
2024-08-19 19:19:47 +00:00
2024-07-09 16:39:38 +00:00
2024-08-19 21:52:30 +00:00
2024-08-22 20:17:17 +00:00
2024-08-15 02:39:49 +00:00
2024-08-22 20:57:19 +00:00
2024-08-01 21:06:14 +00:00
2024-08-02 03:56:56 +00:00
2024-08-19 22:59:45 +00:00
2024-08-21 18:03:29 +00:00
2024-08-20 21:39:16 +00:00
2024-07-09 20:05:09 +00:00
2024-07-10 09:41:25 +00:00
2024-08-22 20:57:19 +00:00
2024-08-21 02:34:00 +00:00
2024-08-22 20:00:39 +00:00
2024-08-09 21:14:02 +00:00
2024-07-06 14:14:10 +00:00
2024-07-06 14:14:10 +00:00
2024-07-06 14:14:10 +00:00
2024-06-08 05:13:06 +00:00
2024-07-10 20:59:38 +00:00
2024-06-07 01:28:00 +00:00
2024-08-05 23:30:02 +00:00
2024-04-27 00:39:58 +00:00
2024-04-27 00:39:58 +00:00
2024-08-05 23:30:02 +00:00
2024-06-07 15:56:32 +00:00
2024-06-07 15:56:32 +00:00
2024-07-23 01:18:37 +00:00
2024-04-19 21:31:46 +00:00
2024-08-16 18:36:31 +00:00
2024-06-28 14:05:57 +00:00
2024-04-27 00:39:58 +00:00
2024-08-06 17:15:26 +00:00
2024-07-26 17:08:22 +00:00
2024-07-26 17:08:22 +00:00
2024-08-15 05:23:21 +00:00
2024-06-26 15:29:53 +00:00
2024-05-23 08:05:17 +00:00
2024-08-21 16:42:37 +00:00
2024-04-15 13:43:41 +00:00
2024-07-24 15:48:35 +00:00
2024-07-24 15:48:35 +00:00
2024-06-18 16:45:23 +00:00
2024-06-13 00:36:03 +00:00
2024-08-21 16:42:37 +00:00
2024-07-30 19:31:39 +00:00
2024-07-30 19:31:39 +00:00
2024-08-01 18:38:16 +00:00
2024-04-17 01:11:36 +00:00
2024-04-27 00:39:58 +00:00
2024-08-21 17:13:17 +00:00
2024-06-08 05:13:06 +00:00
2024-08-05 23:20:00 +00:00
2024-07-18 20:07:24 +00:00
2024-07-22 02:25:23 +00:00
2024-04-22 19:33:31 +00:00
2024-05-15 04:36:02 +00:00
2024-04-27 00:39:58 +00:00
2024-08-08 07:40:16 +00:00
2024-06-21 21:31:33 +00:00
2024-04-23 17:03:55 +00:00
2024-07-29 23:12:25 +00:00
2024-08-08 07:40:16 +00:00
2024-07-23 20:19:38 +00:00
2024-07-23 20:19:38 +00:00
2024-07-26 00:28:40 +00:00
2024-08-22 20:57:19 +00:00
2024-08-22 20:57:19 +00:00
2024-08-22 20:57:19 +00:00
2024-07-18 20:07:24 +00:00
2024-08-21 16:42:37 +00:00
2024-07-26 08:13:21 +00:00
2024-04-03 10:15:14 +00:00
2024-04-23 20:14:53 +00:00
2024-08-09 13:33:54 +00:00
2024-04-22 15:16:27 +00:00
2024-08-19 14:07:49 +00:00
2024-08-19 14:07:49 +00:00
2024-05-15 04:36:02 +00:00
2024-07-02 21:23:29 +00:00
2024-05-15 04:36:02 +00:00
2024-05-07 02:13:54 +00:00
2024-07-10 20:59:12 +00:00
2024-04-24 19:41:44 +00:00
2024-06-08 05:13:06 +00:00
2024-06-13 20:53:34 +00:00
2024-07-26 17:08:22 +00:00
2024-07-26 17:08:22 +00:00
2024-08-19 15:30:51 +00:00
2024-04-03 10:15:14 +00:00
2024-04-03 10:15:14 +00:00
2024-06-03 15:40:38 +00:00
2024-06-03 15:40:38 +00:00
2024-07-10 20:59:12 +00:00
2024-07-10 20:59:38 +00:00
2024-08-16 18:36:31 +00:00
2024-07-10 20:59:12 +00:00
2024-05-17 21:35:58 +00:00
2024-04-27 00:39:58 +00:00
2024-07-15 23:56:52 +00:00
2024-04-03 10:15:14 +00:00
2024-04-22 19:33:31 +00:00
2024-08-22 21:41:26 +00:00
2024-04-27 00:39:58 +00:00
2024-06-27 01:52:43 +00:00
2024-06-27 01:52:43 +00:00
2024-05-15 04:36:02 +00:00
2024-08-14 22:44:29 +00:00
2024-07-30 00:27:18 +00:00
2024-08-22 20:57:19 +00:00
2024-07-16 15:13:50 +00:00
2024-07-16 15:13:50 +00:00
2024-07-12 14:15:23 +00:00
2024-08-17 18:25:25 +00:00
2024-07-12 14:15:23 +00:00
2024-07-12 16:30:42 +00:00
2024-06-24 23:23:17 +00:00
2024-07-15 19:40:30 +00:00
2024-07-10 20:59:38 +00:00
2024-04-03 10:15:14 +00:00
2024-04-03 10:15:14 +00:00
2024-06-24 13:14:57 +00:00
2024-08-02 17:03:20 +00:00
2024-06-28 14:05:57 +00:00
2024-08-19 15:30:51 +00:00
2024-07-06 14:14:10 +00:00
2024-04-20 03:05:40 +00:00
2024-06-10 16:35:19 +00:00
2024-08-08 07:40:16 +00:00
2024-08-08 07:40:16 +00:00
2024-08-08 07:40:16 +00:00
2024-08-22 20:57:19 +00:00
2024-06-08 05:13:06 +00:00
2024-07-15 23:56:52 +00:00
2024-05-02 16:22:08 +00:00
2024-08-19 18:22:01 +00:00
2024-08-19 15:30:51 +00:00
2024-05-13 17:22:55 +00:00
2024-04-23 17:57:15 +00:00
2024-06-17 20:50:14 +00:00
2024-08-22 20:57:19 +00:00
2024-08-19 15:30:51 +00:00
2024-08-19 15:30:51 +00:00
2024-07-03 23:18:00 +00:00
2024-08-14 19:10:49 +00:00
2024-07-22 20:44:28 +00:00
2024-05-07 16:48:37 +00:00
2024-06-24 13:14:57 +00:00
2024-08-19 18:22:01 +00:00
2024-04-27 00:39:58 +00:00
2024-07-26 18:11:08 +00:00
2024-04-27 00:39:58 +00:00
2024-04-27 00:39:58 +00:00
2024-05-21 12:56:20 +00:00
2024-07-03 02:13:39 +00:00
2024-06-13 17:06:13 +00:00
2024-06-13 17:06:13 +00:00
2024-07-11 03:10:40 +00:00
2024-08-20 18:48:30 +00:00
2024-08-20 18:48:30 +00:00
2024-05-23 16:52:47 +00:00
2024-05-21 20:04:55 +00:00
2024-07-23 18:07:41 +00:00
2024-07-10 20:59:12 +00:00
2024-07-26 16:30:15 +00:00
2024-08-06 18:08:44 +00:00
2024-06-08 05:13:06 +00:00
2024-07-06 14:14:10 +00:00
2024-07-06 14:14:10 +00:00
2024-06-04 15:02:50 +00:00
2024-04-27 00:39:58 +00:00
2024-05-15 04:36:02 +00:00
2024-05-29 12:38:10 +00:00
2024-08-06 02:43:45 +00:00
2024-04-19 21:31:46 +00:00
2024-06-10 22:14:25 +00:00
2024-07-22 21:57:19 +00:00
2024-07-15 19:40:30 +00:00
2024-07-15 19:40:30 +00:00
2024-07-15 19:40:30 +00:00
2024-05-02 10:51:09 +00:00
2024-05-02 10:51:09 +00:00
2024-05-10 23:30:00 +00:00
2024-05-28 17:23:04 +00:00
2024-05-15 04:36:02 +00:00
2024-04-27 00:39:58 +00:00
2024-06-24 19:57:19 +00:00
2024-07-11 17:19:25 +00:00
2024-06-13 20:53:34 +00:00