Charlie Marsh
7ed19a9758
Batch persistent history reads during reverse search ( #33905 )
...
## Why
Reverse search fetched persistent history one entry at a time, making a deep or unsuccessful search require a lookup for every older entry.
## What changed
- Keep the newest-entry probe lightweight, then scan older persistent history in bounded batches.
- Cache batch results by absolute offset and preserve continuation cursors across repeated searches.
- Ignore stale responses, retry failed batch reads a bounded number of times, and restore the draft without reporting a false “no match” state when history is unavailable.
## Testing
- Cover batch continuation, caching after query changes or cancellation, stale metadata, retry exhaustion, and thread routing.
- Verify that scanning 1,024 entries uses one single-entry lookup and eight batch lookups.
GitOrigin-RevId: efc791fcbd5290050af703dd31c5c21b33240e23
2026-07-17 21:16:07 +00:00
..
2026-07-17 21:16:07 +00:00
2026-06-11 22:26:31 -07:00
2026-07-17 21:16:07 +00:00
2026-07-17 21:16:07 +00:00
2026-07-06 16:33:13 -04:00
2026-07-15 21:03:49 +00:00
2026-07-17 19:58:56 +00:00
2026-07-11 01:15:48 +00:00
2026-05-29 14:01:27 -07:00
2026-05-27 15:11:29 -07:00
2026-04-21 17:10:36 +00:00
2026-07-08 15:45:57 -07:00
2026-05-18 20:24:09 -03:00
2026-06-16 17:33:13 +00:00
2026-07-16 16:08:43 +00:00
2026-07-14 22:43:26 +00:00
2026-05-27 20:14:55 +00:00
2026-06-24 18:48:11 -07:00
2026-05-15 17:10:15 -07:00
2026-07-15 02:35:49 +00:00
2026-07-15 01:36:44 +00:00
2026-07-15 01:07:29 +00:00
2026-07-17 21:16:07 +00:00
2026-06-24 13:25:44 -07:00
2026-06-15 19:25:54 -07:00
2026-07-17 18:24:26 +00:00
2026-07-17 15:14:47 +00:00
2026-06-17 19:52:43 +02:00
2026-04-13 18:27:00 -07:00
2026-05-07 20:31:41 -07:00
2026-05-04 16:11:15 -03:00
2026-07-17 21:16:07 +00:00
2026-05-14 18:51:36 -07:00
2026-05-05 16:18:02 +00:00
2026-06-01 18:01:52 +02:00
2026-05-13 15:40:37 -07:00
2026-06-05 08:32:07 -07:00
2026-06-05 08:32:07 -07:00
2026-06-24 18:48:11 -07:00
2026-04-25 22:00:32 -03:00
2026-07-16 16:08:43 +00:00
2026-04-30 10:52:19 -07:00
2026-07-11 17:47:17 +00:00
2026-07-15 22:49:52 +00:00
2026-07-15 22:49:52 +00:00
2026-07-15 22:49:52 +00:00
2026-07-15 21:03:49 +00:00
2026-07-15 21:03:49 +00:00
2026-07-15 22:49:52 +00:00
2026-06-08 21:32:46 -07:00
2026-06-05 08:34:34 -07:00
2026-06-05 08:32:53 -07:00
2026-06-12 17:14:27 -07:00
2026-05-09 21:17:30 +00:00
2026-05-01 09:39:48 -07:00
2026-05-27 20:14:55 +00:00
2026-05-13 15:33:27 +00:00
2026-05-31 15:42:39 -03:00
2026-06-03 20:28:31 -03:00
2026-07-15 21:03:49 +00:00
2026-04-13 18:27:00 -07:00
2026-06-24 03:10:20 +00:00
2026-06-11 09:56:09 -07:00
2026-06-26 19:27:31 +00:00
2026-06-26 19:27:31 +00:00
2026-06-08 17:02:36 -07:00
2026-06-08 17:02:36 -07:00
2026-05-27 16:18:24 -03:00
2026-06-08 17:02:36 -07:00
2026-05-27 20:14:55 +00:00
2026-07-12 19:18:37 +00:00
2026-04-29 17:22:41 -07:00
2026-04-25 22:00:32 -03:00
2026-05-01 09:07:56 -07:00
2026-06-09 12:14:48 +02:00
2026-04-25 17:09:29 -07:00
2026-05-25 09:53:39 -07:00
2026-07-15 02:03:46 +00:00
2026-05-15 17:10:15 -07:00
2026-04-25 22:00:32 -03:00
2026-07-17 15:14:47 +00:00
2026-05-20 15:57:50 -07:00
2026-06-24 13:08:14 -07:00
2026-05-22 17:19:51 +00:00
2026-06-01 15:14:19 +02:00
2026-06-18 15:06:23 -07:00
2026-07-11 21:03:12 +00:00
2026-07-17 20:46:18 +00:00
2026-06-10 11:24:29 -07:00
2026-06-05 15:32:43 -04:00
2026-07-15 01:07:29 +00:00
2026-05-27 16:18:24 -03:00
2026-05-10 20:42:11 +00:00
2026-05-27 20:14:55 +00:00
2026-06-12 17:33:43 -07:00
2026-06-16 09:09:24 -07:00
2026-04-17 08:39:37 -07:00
2026-06-05 17:23:45 -07:00
2026-06-10 17:55:49 -07:00
2026-05-26 20:59:47 -07:00
2026-05-26 20:59:47 -07:00
2026-07-14 21:01:54 +00:00
2026-05-08 07:56:13 -07:00
2026-07-17 20:46:18 +00:00
2026-06-15 08:23:02 -07:00
2026-06-22 17:31:14 -07:00
2026-07-06 16:33:13 -04:00
2026-07-08 12:17:58 -04:00
2026-05-27 20:14:55 +00:00
2026-04-25 17:09:29 -07:00
2026-06-12 09:26:08 -07:00
2026-06-12 09:26:08 -07:00
2026-07-08 12:17:58 -04:00
2026-04-25 22:00:32 -03:00
2026-06-11 09:23:08 -07:00
2026-06-11 18:16:39 -07:00
2026-06-22 04:25:07 -07:00
2026-06-22 04:25:07 -07:00
2026-07-17 16:39:16 +00:00