Как хранить миллионы мелких файлов?
От: maelstrom2006  
Дата: 03.12.09 09:48
Оценка:
Система винда.
Стал перед вопросом как организовать хранение кэша спутниковых карт SAS.Планеты (сейчас около 25 гб).
Кэш состоит из файлов размером от байтов до 20 кб. Количество — несколько миллионов!
Стоит NTFS. Занимает все гараздо больше чем реально весит. Для мелких файлов в 10 раз, для 12-20 кб файлов — в 2 раза.
Какие решения предлагаются:
1) Сделать ntfs — "сжатие папок". Проблема — делать будет около месяца.
2) Сделать виртуальный диск с TrueCrypt. Минусы- шифровать мне не обязательно. Какая при это будет скорость работы с файлами?
Какие еще выбрать виртульные файловые системы/виртуальные или может нет для хранения?
Есть ли проблема с размером кластера в виртуальной файловой системе? Те сколько будут рельно занимать файлы на ней?

Требования:
1) скорость,
2) возможность расшарить папку по сети.
3) прозрачность всех файловых операций. Т.е. должен виден быть системой как обычный диск.

Спасибо.
файловая система хранение большого количества файлов размер кластера.
Re: Как хранить миллионы мелких файлов?
От: Sheridan Россия  
Дата: 03.12.09 10:36
Оценка:
Приветствую, maelstrom2006, вы писали:

m> Система винда.

m> Стал перед вопросом как организовать хранение кэша спутниковых карт SAS.Планеты (сейчас около 25 гб).
m> Кэш состоит из файлов размером от байтов до 20 кб. Количество — несколько миллионов!
m> Стоит NTFS. Занимает все гараздо больше чем реально весит. Для мелких файлов в 10 раз, для 12-20 кб файлов — в 2 раза.
ReiserFS очень бы вам помог... Позиционируется как раз для таких случаев: толпа мелких файлов.

m> Требования:

m> 1) скорость,
Ага, есть

m> 2) возможность расшарить папку по сети.

samba, nfs, ftp

m> 3) прозрачность всех файловых операций. Т.е. должен виден быть системой как обычный диск.

Ну какбы да.

Только линукс это, хотя хз, может и будет драйвер под винды.
avalon 1.0rc3 rev 306, zlib 1.2.3 (02.12.2009 18:36:32 MSK +03:00)(Qt 4.6.0)
Matrix has you...
Re: Как хранить миллионы мелких файлов?
От: swame  
Дата: 03.12.09 20:44
Оценка: +1
Здравствуйте, maelstrom2006, Вы писали:

M>Система винда.

M>Стал перед вопросом как организовать хранение кэша спутниковых карт SAS.Планеты (сейчас около 25 гб).
M>Кэш состоит из файлов размером от байтов до 20 кб. Количество — несколько миллионов!
M>Стоит NTFS. Занимает все гараздо больше чем реально весит. Для мелких файлов в 10 раз, для 12-20 кб файлов — в 2 раза.
M>Какие решения предлагаются:
M>1) Сделать ntfs — "сжатие папок". Проблема — делать будет около месяца.
M>2) Сделать виртуальный диск с TrueCrypt. Минусы- шифровать мне не обязательно. Какая при это будет скорость работы с файлами?
M>Какие еще выбрать виртульные файловые системы/виртуальные или может нет для хранения?
M>Есть ли проблема с размером кластера в виртуальной файловой системе? Те сколько будут рельно занимать файлы на ней?

M>Требования:

M>1) скорость,
M>2) возможность расшарить папку по сети.
M>3) прозрачность всех файловых операций. Т.е. должен виден быть системой как обычный диск.

M>Спасибо.


Это решение тиражируется ? Если не тиражируется, то нет смысла заморачиваться из-за какой-то сотни гигабайт.
Re: Как хранить миллионы мелких файлов?
От: BigBoss  
Дата: 03.12.09 22:22
Оценка:
Здравствуйте, maelstrom2006, Вы писали:

M>Система винда.

M>Стал перед вопросом как организовать хранение кэша спутниковых карт SAS.Планеты (сейчас около 25 гб).
M>Кэш состоит из файлов размером от байтов до 20 кб. Количество — несколько миллионов!
M>Стоит NTFS. Занимает все гараздо больше чем реально весит. Для мелких файлов в 10 раз, для 12-20 кб файлов — в 2

Вопрос, конечно, интересный Если б меня такое внезапно спросили , то
1. Windows умеет довольно прозрачно работать с архивами вроде ZIP, как с папками, при минимальной степени сжатия в том числе
2. большие архивы есть зло при их модификации, так что ветвистая (а ещё лучше и вправду сбалансированная) структура каталогов a'la SourceSafe или squid'овский кэш, где "большие" файлы + архивы "мелких" храняться только как листья была бы кстати тоже.

Понятно, код доступа к этому самому кешу придется модифицировать, особенно если кэш организован как-то иначе (а кстатит, как?)
Re[2]: Как хранить миллионы мелких файлов?
От: maelstrom2006  
Дата: 04.12.09 08:02
Оценка:
Здравствуйте, BigBoss, Вы писали:


BB>Вопрос, конечно, интересный Если б меня такое внезапно спросили , то

BB>1. Windows умеет довольно прозрачно работать с архивами вроде ZIP, как с папками, при минимальной степени сжатия в том числе
BB>2. большие архивы есть зло при их модификации, так что ветвистая (а ещё лучше и вправду сбалансированная) структура каталогов a'la SourceSafe или squid'овский кэш, где "большие" файлы + архивы "мелких" храняться только как листья была бы кстати тоже.

BB>Понятно, код доступа к этому самому кешу придется модифицировать, особенно если кэш организован как-то иначе (а кстатит, как?)



Всю виртуальную файловую систему хочу сделать в одном файле. Что бы можно было удобно копировать на ноут к примеру.
вопрос в каком формате ее организовать?
Скачал Winmount — Поддержка файлов-образов ISO, CUE/BIN, CCD,BWT, MDS, CDI, NRG, PDI B5T и ISZ.
Какую из них выбрать для миллионов файлов? Ест-но все должно пополняться из программы без особых тормозов.

Система хранения файлов куча папок (тысячи) и куча файлов (миллионы). ну и соотв. названия файлов.
Re[3]: Как хранить миллионы мелких файлов?
От: swame  
Дата: 06.12.09 11:49
Оценка: +1
Здравствуйте, maelstrom2006, Вы писали:

M>Здравствуйте, BigBoss, Вы писали:


M>Всю виртуальную файловую систему хочу сделать в одном файле. Что бы можно было удобно копировать на ноут к примеру.

M>вопрос в каком формате ее организовать?
M>Скачал Winmount — Поддержка файлов-образов ISO, CUE/BIN, CCD,BWT, MDS, CDI, NRG, PDI B5T и ISZ.
M>Какую из них выбрать для миллионов файлов? Ест-но все должно пополняться из программы без особых тормозов.

M>Система хранения файлов куча папок (тысячи) и куча файлов (миллионы). ну и соотв. названия файлов.


Наличие файлов размером несколько байт — похоже на ошибку проектирования. Наверное нужно пересмотреть структуру файла,
выделить более крупные единицы, записываемые в файл.
А задачу переноса файлов лучше отделить от копирования, для переноса использовать быстрые утилиты копирования типа XCOPY, или архивирование перед переносом. запихать все обновляемые в один файл — будут большие проблемы с фрагментированием.
Re: Как хранить миллионы мелких файлов?
От: campri  
Дата: 07.12.09 18:56
Оценка:
Была схожая проблема — на MicroSD карте хранился кэш GPSProg'и ~75000 файлов, при этом место куда-то незаметно, но много исчезало..
Расследование определило причину — карта была отформатирована (FAT) с большим размером кластера — 32 Kb, и каждый маленький файл хавал по 32 Kb сразу. После переформатирования с кластером 2 Kb — папка кэша с более гигабайта (имеется в виду конечно 'Size on disk', причем который на смартфоне/навигаторе и не посмотреть толком) — уменьшилась до ~200 Mb, чистая 'экомомия' получилась около 1,6 Gb!
Re: Как хранить миллионы мелких файлов?
От: hudvin  
Дата: 06.01.10 16:23
Оценка:
может хранить в базе, а доступ организовать через нечто FUSE-подобное(только под вин)?
я использовал для своего картографического приложения (android) sqlite. По сравнению с хранением в ФС все просто летало.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.