URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID15
Нить номер: 1197
[ Назад ]

Исходное сообщение
"Ускоренния поиска"

Отправлено Dark_Evil , 19-Июн-07 12:31 
Возникла идея сделать такую вещь...
Перехватывать функцию созданния файла и его
удаленния в указаной директории.
При созданнии файла записывать куда-нибуть (делать лог)
че в директории есть такой файл в случае его удаленния также
удалять запись о его существовании в логе а при поиске
использовать этот лог.

Понимаю что идея наверно не новая, по этому прошу
может кто-то знает чето подобное, подскажите чеб
не создавать колесо заново.


Содержание

Сообщения в этом обсуждении
"Ускоренния поиска"
Отправлено Niam , 20-Июн-07 10:16 
>Возникла идея сделать такую вещь...
>Перехватывать функцию созданния файла и его
>удаленния в указаной директории.
>При созданнии файла записывать куда-нибуть (делать лог)
>че в директории есть такой файл в случае его удаленния также
>удалять запись о его существовании в логе а при поиске
>использовать этот лог.
>
>Понимаю что идея наверно не новая, по этому прошу
>может кто-то знает чето подобное, подскажите чеб
>не создавать колесо заново.


В ядре есть dentry кэш, за счет которого поиск и так быстр. И такой лог не всегда актуален. Тоесть тебе надо будет пролистать сначала лог(а если он состоит из 10000 элементов), и если эл. не найден - тогда _все_равно_ проводить поиск по дереву директорий.
Можно использовать БД утилиты locate, перехватывать вызовы open(CREAT) и unlink, и модифицировать БД. Или, если это linux, то юзать inotify.


"Ускоренния поиска"
Отправлено Dark_Evil , 20-Июн-07 13:30 
>В ядре есть dentry кэш, за счет которого поиск и так быстр.
>И такой лог не всегда актуален. Тоесть тебе надо будет пролистать
>сначала лог(а если он состоит из 10000 элементов), и если эл.
>не найден - тогда _все_равно_ проводить поиск по дереву директорий.

Если мониторить постоянно то если логе не будет обнаруженна запись о файле то поиск по
дереву каталогов будет не актуальным ибо это все будет цеплятся на новый, пустой винт а
файлов(мелких) будет очень много и я думаю всеже будет быстрее пролистать лог какой бы он ни был...