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