Chris Lu
70c3adb983
volume: stop read-only volumes from pinning .idx and .sdx ( #10950 )
...
A read-only or cloud-tiered volume loads a SortedFileNeedleMap, which held
both its .idx and its .sdx open for the life of the process. On a server with
~600K tiered volumes that is 1.2M descriptors before a single read, enough to
exhaust the fd limit and take the listeners down. The .dat is not the problem:
a tiered volume serves it from the remote backend.
Neither index file is needed except while a lookup is in flight, so borrow them
from a bounded process-wide pool instead. An idle volume now holds zero
descriptors; a busy one keeps its handles hot rather than paying an open() per
needle. Reads borrow O_RDONLY, so a volume on a read-only mount answers lookups
that previously failed at load. Sync tracks whether a tombstone was appended,
which also drops the fsync-per-volume storm at shutdown.
2026-08-25 10:23:00 -07:00
..
2026-07-22 14:38:06 -07:00
2026-08-23 21:48:20 -07:00
2026-06-30 02:01:14 -07:00
2026-08-13 21:38:22 -07:00
2026-07-22 14:38:06 -07:00
2026-08-07 00:53:02 -07:00
2026-05-21 09:42:07 -07:00
2026-07-09 11:19:31 -07:00
2026-06-16 11:47:32 -07:00
2026-05-21 02:16:28 -07:00
2026-05-31 18:52:44 -07:00
2026-04-27 16:01:10 -07:00
2026-08-13 21:38:22 -07:00
2026-08-13 21:38:22 -07:00
2026-02-02 17:55:04 -08:00
2026-08-08 20:23:10 -07:00
2026-06-12 23:51:29 -07:00
2026-08-25 10:23:00 -07:00
2026-08-25 10:23:00 -07:00
2026-08-04 13:33:31 -07:00
2026-08-08 06:00:46 -07:00
2026-04-16 22:01:34 -07:00
2026-04-16 22:01:34 -07:00
2026-04-16 22:01:34 -07:00
2026-05-13 10:22:01 -07:00
2026-08-25 10:23:00 -07:00
2026-04-16 22:01:34 -07:00
2026-08-21 13:04:56 -07:00
2026-08-21 22:33:01 -07:00
2026-08-18 17:17:50 -07:00
2026-08-08 20:23:10 -07:00
2026-06-02 09:02:05 -07:00
2026-06-14 06:36:47 -07:00
2026-06-02 09:02:05 -07:00
2026-04-13 21:10:36 -07:00
2026-06-10 13:33:45 -07:00
2026-06-12 23:51:29 -07:00
2026-08-24 14:03:44 -07:00
2026-06-02 09:02:05 -07:00
2026-05-17 19:55:15 -07:00
2026-06-02 09:02:05 -07:00
2026-08-12 20:18:39 -07:00
2026-06-02 09:02:05 -07:00
2026-06-11 20:26:20 -07:00
2026-07-22 14:38:06 -07:00
2026-06-25 10:38:14 -07:00
2026-06-25 10:38:14 -07:00
2026-01-23 16:38:36 -08:00
2026-08-01 00:27:06 -07:00
2026-06-02 09:02:05 -07:00
2026-08-24 14:03:44 -07:00
2026-08-21 22:33:01 -07:00
2026-08-21 22:33:01 -07:00
2025-10-20 16:11:29 -07:00
2026-08-21 13:04:56 -07:00
2026-08-10 16:31:26 -07:00
2026-06-02 09:02:05 -07:00
2026-04-03 16:04:27 -07:00
2026-08-18 17:17:50 -07:00
2025-06-30 13:57:28 -07:00
2026-08-18 17:17:50 -07:00
2026-08-21 22:33:01 -07:00
2026-08-21 13:04:56 -07:00
2026-08-23 21:48:20 -07:00
2026-08-21 13:04:56 -07:00
2019-04-17 22:04:49 -07:00
2025-06-16 22:05:06 -07:00
2026-08-18 17:17:50 -07:00
2026-06-30 02:01:14 -07:00
2026-08-18 17:17:50 -07:00
2026-08-18 17:17:50 -07:00
2026-07-28 16:48:30 -07:00
2026-08-11 16:36:36 -07:00
2026-08-09 12:43:31 -07:00
2026-08-09 09:41:50 -07:00
2026-08-10 00:40:29 -07:00
2026-08-11 16:36:36 -07:00
2026-08-13 21:38:22 -07:00
2026-08-18 17:17:50 -07:00
2026-08-10 16:31:26 -07:00
2026-08-18 17:17:50 -07:00
2022-11-23 15:59:38 -08:00
2026-08-18 17:17:50 -07:00
2026-05-09 09:55:02 -07:00
2026-08-09 12:43:31 -07:00
2026-07-30 17:03:38 -07:00
2026-01-16 19:19:18 -08:00
2026-07-08 01:27:10 -07:00
2026-08-18 17:17:50 -07:00
2026-08-18 17:17:50 -07:00
2026-08-04 21:02:52 -07:00
2026-08-18 17:17:50 -07:00
2026-08-18 17:17:50 -07:00
2026-08-21 13:04:56 -07:00
2026-08-21 22:33:01 -07:00