Мне нужно написать код (на любом языке) для обработки 10 000 файлов, которые находятся в локальной файловой системе Linux. Каждый файл имеет размер ~ 500 КБ и состоит из записей фиксированного размера по 4 КБ.
Время обработки на запись незначительно, и записи могут обрабатываться в любом порядке, как внутри, так и в разных файлах.
Наивная реализация будет читать файлы один за другим, в некотором произвольном порядке. Однако, так как мои диски очень быстро читаются, но медленнее искать, это почти наверняка приведет к созданию кода, связанного с запросом на диск.
Есть ли способ закодировать чтение таким образом, чтобы оно ограничивалось пропускной способностью диска, а не временем поиска?
Одна строка запроса - попытаться получить приблизительное представление о том, где находятся файлы на диске, и использовать их для последовательности чтения. Однако я не уверен, какой API можно использовать для этого.
Я, конечно, открыт для любых других идей.
Файловая система - ext4, но такая оборотная.