Рейтинг:0

Как минимизировать накладные расходы файловой системы

флаг br

У меня есть приложение, которое использует много места для кэширования данных. Чем больше кэша доступно, тем лучше работает приложение. Речь идет о сотнях и тысячах ТБ. Приложение может регенерировать данные на лету, если блоки выходят из строя, поэтому моя основная цель — максимально увеличить размер, доступный в моей файловой системе для данных кэша, и значительно минимизировать накладные расходы файловой системы.

Я готов пожертвовать всей надежностью и гибкостью, а также требованиями «универсальности». Кроме того, я точно знаю, сколько файлов данных кеша у меня будет на любом заданном томе, потому что приложение записывает файлы кеша фиксированного размера (в моем случае ~ 100 ГБ). Я хотел бы иметь возможность перезаписывать файл новым, если блок время от времени выходит из строя, поэтому было бы неплохо иметь несколько запасных инодов, но также возможно переформатировать весь том, если это необходимо. Все файлы хранятся в 1 каталоге глубоко в файловой системе. Например, имена каталогов могут быть ограничены одной буквой, и мне также не нужен каталог (все файлы также могут храниться на верхнем уровне в корне тома). Все имена файлов имеют фиксированный размер (хэш плюс отметка времени). После того, как данные кэша будут записаны, файлы будут доступны только для чтения, а том можно смонтировать только для чтения. Кэш действителен в течение длительного времени (годы). Целостность кеша также проверяется приложением, поэтому мне не нужны какие-либо функции целостности файловой системы, такие как контрольные суммы, журналирование и т. д.

Итак, учитывая, что я знаю точный, фиксированный размер файла и не беспокоюсь о надежности, какую файловую систему мне следует использовать и как мне настроить ее, чтобы устранить как можно больше накладных расходов?

флаг in
Обычно программы, которые используют столько места на диске, часто используют свою собственную файловую систему, например. как некоторые базы данных, которые работают с необработанными разделами или с одним большим файлом изображения. Никто лучше разработчика программы не знает, к какому индексу обращаться и какие данные в каком порядке необходимы. Поэтому файловая система с наименьшими накладными расходами — это пользовательская система, которая просто содержит нужные вам метаданные.
David Cowden avatar
флаг br
Приложение довольно молодое и, к сожалению, не использует собственную файловую систему (надеюсь, пока).Поэтому я ищу немедленные указания о том, как получить максимальную отдачу с точки зрения эффективности использования пространства с традиционными файловыми системами. Я тоже не против написать свой собственный в какой-то момент, просто в данный момент это кажется немного невозможным.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.