RedoxFS научилась кэшировать inode — компиляция на GCC ускорилась с 2,4 с до 670 мс

13.05.2026

В драйвере файловой системы RedoxFS добавлено кэширование inode. В тесте компиляция простого файла на GCC внутри QEMU без KVM упала с 2,411 с до 670 мс.

Что такое inode

Inode — служебная запись файловой системы о файле: тип, права, владелец, размер, время изменения, количество жёстких ссылок. Сами данные лежат отдельно. Каждый файл на диске имеет номер, и через inode находят его метаданные.

Поэтому любая операция с файлом — открыть, прочитать атрибут, проверить права — начинается с доступа к inode. Если inode приходилось каждый раз искать на диске, то на каждую мелочь уходило лишнее обращение к устройству.

Что именно изменилось

Метаданные теперь хранятся в кэше и не перечитываются при каждом обращении. Реализовано это через отображение файла в память с механизмом отслеживания изменений: версия кэша проверяется, и при изменении содержимого он пересобирается. То есть решение не «навсегда закэшировать», а «перечитывать только когда действительно изменилось».

Что это значит на практике

Замер сделан на компиляции — это удобный показатель, потому что компилятор делает огромное количество мелких файловых операций: читает исходники, проверяет временные файлы, создаёт объекты, ведёт служебные файлы. Каждая из них раньше стоила лишнего похода к диску.

Условия теста специально скромные: QEMU без KVM, то есть без аппаратного ускорения. На настоящей машине и с KVM выигрыш, по словам автора, заметно больше — на эмуляции стоимость дисковых операций искусственно завышена.

Для разработчика это значит, что сборка под Redox становится терпимее по времени, а любой инструмент, работающий с множеством мелких файлов, — от сборщика до тестового раннера — работает быстрее.

Оригинал

Коммиты Implement fmap for read cache и Add fmap version for invalidation от 13 мая 2026 года в репозитории redox-os/redoxfs; сводка «This Month in Redox — May 2026», раздел «Massive RedoxFS Inode Performance Improvement»

Упоминаний: 1 · Просмотров: 2