Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Как хранить миллионы файлов размером меньше 40-90 байт?
|
|||
|---|---|---|---|
|
#18+
Эээ... Может быть, на внешнем диске? С подобранными опытным путём ФС, кластером и прочее. А если их объединять по к.-н. признаку (а-ля дата, клиент) в один большой txt или bin файл "с разделителями-метаданными"? Ну, приблуду написать, которая бы их склеивала по расписанию и выдавала on demand. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.07.2013, 20:58 |
|
||
|
Как хранить миллионы файлов размером меньше 40-90 байт?
|
|||
|---|---|---|---|
|
#18+
На самом деле я искал решение на подобии того о чём написал miksoft . Процитирую свой первый поста (а то тема ушла в сторону от моего вопроса): Может есть какие-то виртуальные хранилища (виртуальные диски) которые расчитаны именно на хранение большого количества мелких файлов? Или работающие с архивом как с диском? (пусть даже в ущерб скорости) И ещё раз повторюсь - единственная пока идея которая у меня была в мыслях - это использовать сжаты образы. Можно сделать образ диска в .ISO, а у UltraISO есть режим - "Опция сжать ISO". Полученный образ будет иметь расширение .ISZ. Но я не смогу дописать файлы в такой фал :( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.07.2013, 21:26 |
|
||
|
Как хранить миллионы файлов размером меньше 40-90 байт?
|
|||
|---|---|---|---|
|
#18+
InterSkyПроцитирую свой первый поста (а то тема ушла в сторону от моего вопроса): Ты лучше процитируй в чём твоя проблема. В занимаемом месте или медленной работе? Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.07.2013, 21:31 |
|
||
|
Как хранить миллионы файлов размером меньше 40-90 байт?
|
|||
|---|---|---|---|
|
#18+
InterSky, а почему вы не хотите использовать СУБД под эту задачу? и экономия места будет, и всякие дополнительные плюшки появятся... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.07.2013, 21:37 |
|
||
|
Как хранить миллионы файлов размером меньше 40-90 байт?
|
|||
|---|---|---|---|
|
#18+
miksoftа почему вы не хотите использовать СУБД под эту задачу? и экономия места будет, и всякие дополнительные плюшки появятся... Как человек более 13 лет работающий с MySQL, я первым же делом перегнал все данные в базу данных. И если мне самому среди этих 10 миллионов надо найти какие-нибудь данные (по содержимому или по дате или по названию) - я ищу в базе данных... Но программа-обработчик работает только с физическими файлами (это я говорил в первом посте). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.07.2013, 22:36 |
|
||
|
Как хранить миллионы файлов размером меньше 40-90 байт?
|
|||
|---|---|---|---|
|
#18+
GatorЭээ... Может быть, на внешнем диске? С подобранными опытным путём ФС, кластером и прочее. А если их объединять по к.-н. признаку (а-ля дата, клиент) в один большой txt или bin файл "с разделителями-метаданными"? Ну, приблуду написать, которая бы их склеивала по расписанию и выдавала on demand. Очень не хотелось бы упираться в железо и брать отдельные диски только для хранения файлов. Думал что есть виртуальные контейнеры. Но народ здесь вроде как написал что под Windows есть тоже самое как под UNIX, но названия не прозвучало... А если держать всё соединённом в файле (у меня сейчас паралельно в базе данных хранится) а потом в нужный для программы период это опять превращать в физические файлы - то будет уходить жутко много времени на самих дисковых операциях. Попробуй удалить 10 тысячь файлов - это пол минуты займёт, а объём-то всего в пол мегабайта. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.07.2013, 22:41 |
|
||
|
Как хранить миллионы файлов размером меньше 40-90 байт?
|
|||
|---|---|---|---|
|
#18+
Dimitry SibiryakovТы лучше процитируй в чём твоя проблема. В занимаемом месте или медленной работе? А зачем цитировать второй раз? Я ведь говорил - проблема в занимаемом месте и медленном формировании списка файлов. Если заходим в архив, то список создаётся тысячекратно быстрей. Ну и тоже самое если скажем данные перекидываю на SSD (причём у меня ХР, по этому потоковая скорость чтения с SSD OCZ Vertex 3 составляет всего 35Мб/с, но за счётс нулевой скорости доступа - просто летаю), следовательно и если данные хранились бы в каком-нибудь контейнере - скорость тоже была многократно выше. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.07.2013, 22:48 |
|
||
|
Как хранить миллионы файлов размером меньше 40-90 байт?
|
|||
|---|---|---|---|
|
#18+
InterSkyЯ ведь говорил - проблема в занимаемом месте и медленном формировании списка файлов. Если заходим в архив, то список создаётся тысячекратно быстрей. Ну и тоже самое если скажем данные перекидываю на SSD (причём у меня ХР, по этому потоковая скорость чтения с SSD OCZ Vertex 3 составляет всего 35Мб/с, но за счётс нулевой скорости доступа - просто летаю) Ну вот видишь: скорость решается переходом на SSD. А объём... Миллион файлов по 4к каждый это четыре гигабайта. Десять миллионов файлов это всего 40 гигабайт. На твоём "OCZ Vertex 3" это не больше половины свободного объёма. Повторяю: в чём проблема-то? Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.07.2013, 23:06 |
|
||
|
Как хранить миллионы файлов размером меньше 40-90 байт?
|
|||
|---|---|---|---|
|
#18+
InterSky, Собственно, я предлагал своеобразную "буферизацию" Т.е. не плодить много мелких "входящих" файлов. А периодически или по количеству (FileNotification) грузить их в хранилище: - БД (miksoft) - много "служебной MySQL" инфы для каждого файлика, даже если он в varbinary) Зато плюшки SQL и можно легко раскидать метаинфу по полям. - Склеивать файлики в несколько больших файлов с "разделителями файликов" Места будет меньше, но не будет плюшек SQL. Только последовательный поиск. AFAIU основная проблема - отдать файлики ИЗ хранилища. По сколько за раз? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.07.2013, 23:39 |
|
||
|
Как хранить миллионы файлов размером меньше 40-90 байт?
|
|||
|---|---|---|---|
|
#18+
В порядке легкого бреда - видел я где-то туториал по системному программированию под Windows на примере написания своего драйвера файловой системы. Вот его и написать, а вместо физического хранения пусть в MySQL лазит :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.07.2013, 23:44 |
|
||
|
Как хранить миллионы файлов размером меньше 40-90 байт?
|
|||
|---|---|---|---|
|
#18+
А если замапить на внeшний сторож, типа ZFS/FreeNAS через smb? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.07.2013, 23:59 |
|
||
|
Как хранить миллионы файлов размером меньше 40-90 байт?
|
|||
|---|---|---|---|
|
#18+
Relic HunterА если замапить на внeшний сторож, типа ZFS/FreeNAS через smb?Тогда уж на тот самый архив примонтированный в линуксе (например, в виртуалке). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.07.2013, 00:02 |
|
||
|
Как хранить миллионы файлов размером меньше 40-90 байт?
|
|||
|---|---|---|---|
|
#18+
miksoftТогда уж на тот самый архив примонтированный в линуксе (например, в виртуалке).Дак я о том-же. Ставим FreeNAS под vmware. Мапим диск... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.07.2013, 00:21 |
|
||
|
Как хранить миллионы файлов размером меньше 40-90 байт?
|
|||
|---|---|---|---|
|
#18+
К сожалению пока единственный толковым предложением из всей ветки было про WM c линусом... Но не ужели ничего подобного под винду нету? Ну нету желания ради этого отдельный диск (тем более SSD) покупать. Всякими драйверами типа STACKER ещё в 1993-ем году пользовался, которые под DOS'ом виртуальный диск с компрессией из файла делали. Не ужели за 20 лет не продвинулась тема? А по поводу собственного файла контейнера - это конечно оптимальнейший способ с точки зрения экономи пространства, но ещё раз повторю - превращать блоки информации в файлы, это гиблое дело по времени (даже без учёта того что под это придётся софт писать). Просто зайди у себя в папку c:\document and settings\user\cookies и посмотри сколько она открывается (а у тебя там и 10 тысячь файлов нету), а потом попробуй её стереть... А теперь представь что из 10 миллионов... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.07.2013, 01:25 |
|
||
|
Как хранить миллионы файлов размером меньше 40-90 байт?
|
|||
|---|---|---|---|
|
#18+
InterSkyВсякими драйверами типа STACKER ещё в 1993-ем году пользовался, которые под DOS'ом виртуальный диск с компрессией из файла делали. Не ужели за 20 лет не продвинулась тема?Сейчас жив близкий класс ПО - шифрованные диски ( TrueCrypt и прочие ). Возможно, что-нибудь из них вам подойдет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.07.2013, 01:42 |
|
||
|
Как хранить миллионы файлов размером меньше 40-90 байт?
|
|||
|---|---|---|---|
|
#18+
InterSky(тем более SSD) покупать не "тем более", а - только SSD Они как раз нужны там, где работа идет с множеством мелких файлов. Скорость работы в таких условиях - как минимум на порядок выше, чем на HDD. Или, приобретение нового диска - обрушит годовой бюджет организации? Другие, может еще и к RAM-дискам присмотрелись бы, для доведения скорости до максимальной. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.07.2013, 07:04 |
|
||
|
Как хранить миллионы файлов размером меньше 40-90 байт?
|
|||
|---|---|---|---|
|
#18+
miksoftСейчас жив близкий класс ПО - шифрованные диски ( TrueCrypt и прочие ). Возможно, что-нибудь из них вам подойдет.Так там же весь смысл в шифровании, а "унутре" - та же самая "обычная" ФС (ntfs, например). Чем это ТСу может помочь? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.07.2013, 07:38 |
|
||
|
Как хранить миллионы файлов размером меньше 40-90 байт?
|
|||
|---|---|---|---|
|
#18+
А чем, автора не устраивает vhd-диск положенный на ntfs-том с сжатием? 2008, Win7 такое умеют - гугл знает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.07.2013, 09:08 |
|
||
|
Как хранить миллионы файлов размером меньше 40-90 байт?
|
|||
|---|---|---|---|
|
#18+
авторНо программа-обработчик работает только с физическими файлами (это я говорил в первом посте). всеми сразу? может ей пакет ссыпать из базы, обработать и назад всосать? это раз. Сколько стоит ее замена. Что такого суперуникального она делает?Если это все распарсено и лежит грудой в удобной базе? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.07.2013, 09:51 |
|
||
|
Как хранить миллионы файлов размером меньше 40-90 байт?
|
|||
|---|---|---|---|
|
#18+
InterSky, а как именно программа работает с файлами? Если имя файла передается ей в качестве параметра в командной строке, то несложно написать оболочку, которая будет извлекать данные из СУБД, формировать файл и подсовывать вашей программе. Если программа открывает файл через GUI, можно опять-таки извлекать из СУБД необходимый набор файлов и подсовывать его программе. Аналогичные действия можно выполнять при создании таких файлов, т.е. после создания файла программой с помощью оболочки записывать его в СУБД. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.07.2013, 11:40 |
|
||
|
Как хранить миллионы файлов размером меньше 40-90 байт?
|
|||
|---|---|---|---|
|
#18+
tanglirmiksoftСейчас жив близкий класс ПО - шифрованные диски ( TrueCrypt и прочие ). Возможно, что-нибудь из них вам подойдет.Так там же весь смысл в шифровании, а "унутре" - та же самая "обычная" ФС (ntfs, например). Чем это ТСу может помочь?"Унутре" там один файл-контейнер. По крайней мере, обслуживающие операции (скопировать/перенести/удалить) можно будет выполнять с одним файлом, а не с миллионами. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.07.2013, 12:00 |
|
||
|
Как хранить миллионы файлов размером меньше 40-90 байт?
|
|||
|---|---|---|---|
|
#18+
Расскажу вначале что нового у меня за эти сутки (думаю будет очень интересно тем кто собирается иметь много мелких файлов). Начну с того что в поисках контейнеров я наткнулся на ImDisk Virtual Disk Driver . Программа бесплатная и занимает 300кб, по этому решил попробывать. Стало гораздо легче контролировать занимаемые размеры... Напомню что тестирую на одном каталоге в котором 8000 текстовых файлов размером 40-90 байт. Сам каталог занимает 508кб, при этом виндоус говорит что физически на диске занимает 34Мб, однако как вчера выяснилось - физически занимает чуть больше 10Мб. Теперь просто расскажу тезисно что меня удивило в ходе тестов: 1) Изначально создал контейнер размером 5Мб - в него вместилось 1900 файлов. Увеличил контейнер до 10Мб - в него поместилось более 6000 файлов. Тоесть не пропорционально. Всё влезло только в контейнер размером 13Мб (именно с ним дальше и проводились все экперементы) При этом практически никакой разницы от размера кластера: 512 или 4096 байт Если кластер 512 байт - то после заполнения остаётся 268кб свободного места. Если кластер 4096 байт - то после заполнения остаётся 280кб свободного места. Значит прав Basil A. Sidorov , говоря что Файлы размером до, примерно, полутора килобайт NTFS хранит прямо в каталожной записи. 2) Вчера на предложение пользователя k-nike поставить в виндоусе галочку "Сжимать данные" я говорил что это ни как не влияет (свободное место не увеличилось ни на байт). Хотя пользователь Dimitry Sibiryakov говорил что Винда не дура, она объедки в один кластер свалит. На самом деле оказалось НАОБОРОТ! Если ставить галочку на существующий каталог - то действительно изменений нет (очевидно виндоус просто видит что лучше не будет и не трогает файлы) Но ситуация меняется если я вначале создам каталог, поставлю ему галочку "Сжимать данные" и потом начну копировать туда файлы (или сразу при формате скажу что этот диск со сжимаемыми данными). Вы думаете будет больше свободного места? Нет! Всё наоборот. В контейнер размером 13Мб влезает всего 1300 файлов (если размер кластера 512 байт). В контейнер размером 13Мб влезает всего 180 файлов (если размер кластера 4096 байт). После этого Total Commander говорит что диск переполнен. Однако если мы после этого будем нажимать на кнопку "Обновить", то увидим, что свободное место на диске в течении 5 секунд будет увеличиваться и с нуля байт поднимется до 9Мб, после чего можно опять дописывать файл (он опять скажет что место кончилось, потом ждём 5-7 секунд и дописываем файлы). Предпологаю что когда идёт копировани в область где данные должны сжиматься - виндоус налету пытается сжимать файлы что связано с выделением под это дело дополнительных объёмов или дописывания специальных шапок. Но после того как копирование прекратилось, у виндоуса появляется возможноть работы над ошибками, он проверяет что записал и понимает что там небыло смысла сжимать и возвращает файлы к первоначальной форме или освобождает зарезервированное пространство (удивительно что ему на это надо более 5 секунд). 3) Если на диск 13Мб записать 8000 файлов и удалить их, то на диске останется только 3Мб свободного места! (в не зависимости от размера кластера). Туда можно будет опять записать эти 8000 файлов (поскольку они занимают всего 508кб) но записать файл размером 4Мб туда уже не выйдет (тотал коммандер скажет что нет свободного места). Я попробывал сделать полное заполнение свободного места через разбиение на части (которое есть в тотал коммандере) и оно создало только 2 файла - один на 3Мб, второй 0 байт. Удаляешь их, и видим что диск пустой, свободно 3Мб из 13Мб. Если зайти на диск через Auslogics Disk Defrag Professional, то видишь что там есть: $MFT - 8Mb $MFT::BITMAP - 1Kb $LogFile - 2Мб 3) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.07.2013, 17:36 |
|
||
|
Как хранить миллионы файлов размером меньше 40-90 байт?
|
|||
|---|---|---|---|
|
#18+
miksoftInterSkyВсякими драйверами типа STACKER ещё в 1993-ем году пользовался, которые под DOS'ом виртуальный диск с компрессией из файла делали. Не ужели за 20 лет не продвинулась тема?Сейчас жив близкий класс ПО - шифрованные диски (TrueCrypt и прочие). Возможно, что-нибудь из них вам подойдет. В этом плане мой ImDisk (Virtual Disk Driver) оказался гораздо лучше, потому что он ничего не шифрует и если взглянуть на соедержимое самого контейнера, то он состоит из пустот и текста, тоесть сам контейнер можно по крайней мере сжать как средствами виндоуса (и тогда он "На диске" занимает 3Мб вместо 13Мб), так и заархивировать при переносе и тогда он занимает вообще около 1Мб. Тоесть это уже прогресс в плане занимаемого места. В то время как контейнер шифрованного диска уже не сжать... Но просто домумал - Если фриварные контейнеры занимают 300кб, неужели никто за столько лет не повторил аналог STACKER? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.07.2013, 17:50 |
|
||
|
Как хранить миллионы файлов размером меньше 40-90 байт?
|
|||
|---|---|---|---|
|
#18+
InterSkyТеперь просто расскажу тезисно что меня удивило в ходе тестов: Если уж начал экспериментировать, то попробуй ещё и это: http://habrahabr.ru/post/46935/ Напихай все свои файлы в один. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.07.2013, 17:54 |
|
||
|
Как хранить миллионы файлов размером меньше 40-90 байт?
|
|||
|---|---|---|---|
|
#18+
InterSkyНачну с того что в поисках контейнеров я наткнулся на ImDisk Virtual Disk Driver.На оригинальном сайте (на который там есть ссылочка) лежит версия посвежее. Кстати, там рядом рекламируется DAEMON Tools Lite. Он много форматов образов поддерживает. Из них ничего не подойдет? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.07.2013, 17:59 |
|
||
|
|

start [/forum/topic.php?fid=26&msg=38336040&tid=1495432]: |
0ms |
get settings: |
8ms |
get forum list: |
16ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
27ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
49ms |
get tp. blocked users: |
2ms |
| others: | 240ms |
| total: | 361ms |

| 0 / 0 |
