Файловые системы

vbgt99912

Программе требуется работать с огромными по размеру данными.
То есть надо хранить даннные в файлах. Встал вопрос, какую файловую систему выбрать. ОС Linux.
Задачи две:
1. Необходим массив (с произвольным доступом который не влезает в оперативу.
2. Нужно хранить много (сотню миллионов) блоков данных по 5-10 кбайт каждый. обращаться нужно тоже произвольно
посоветуйте сабж, плз, или ссылки на материалы по теме

juliuzz

райзер?
спроси в

ava3443

А чем ext3 не устраивает?
вот это

сотню миллионов блоков данных по 5-10 кбайт каждый
не вылезает за 1TB. ext3 такое держит на x86 со времён ядра 2.4
P.S. хотя, наверное я херню сказал (если ты собираешься такую кучу 5-10 кбайтных файлов хранить)

Landstreicher

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

vbgt99912

Создать большой файл - дело простое. Но мне нужно хотя бы гарантированное быстрое обращение к определенному байту (блоку соседних байтов) файла. Что касается записи, то я его могу писать просто последовательно
ПС Писать распределение места, конечно, придется. Вопрос в том, в какой степени. Приятней создать сотню миллионов файлов в одной директории. Но почти уверен, чтоэто не самый быстрый вариант с точки зрения времени работы программы. Может, ошибаюсь...

Marinavo_0507

Приятней создать сотню миллионов файлов в одной директории. Но почти уверен, чтоэто не самый быстрый вариант с точки зрения времени работы программы.
С одной стороны, код для файловых систем писали не дураки и не ламеры, так что работать будет нормально (в частности, в reiserfs и ext3 должно быть ok).
С другой стороны, так как ФС - вещь универсальная, к тому же операции доступа к ней размазаны между ядром и юзерспейсом, то, как следует напрягшись и правильно реализовав индексы, аллокаторы и т.п. для твоей конкретной задачи, можно добиться большей производительности.
Но мне нужно хотя бы гарантированное быстрое обращение к определенному байту
Ты шутишь, наверное. Если понимать это буквально, то тебе нужны ОСРВ и специальное железо, а не обычная ОС и диски.

vall

посмотри на xfs, там были какие-то realtime вещи, да и вобще она ведёт себя значительно предсказуемее рейзера.
плюс в ней можно делать файлы с терабайтными дырками без лишних накладных расходов и потери скорости.

Papazyan

Да. XFS специально разработана SGI для огромных разреженных файлов.

oleg_n

я бы посмотрел в сторону bdb

vijrel7878

почему бы не хранить данные в реляциооной бд.

Werdna

почему бы не хранить данные в реляциооной бд.

Ты себе представляешь как это будет работать? А особенно если данные часто меняются и блоки там огромные?

sergey_m

Зато БД это круто!

ppplva

Это прошлый век. Сейчас рулят XML-базы данных !

garikus

bdb
Оставить комментарий
Имя или ник:
Комментарий: