- Ускоренния поиска, Niam, 10:16 , 20-Июн-07 (1)
>Возникла идея сделать такую вещь... >Перехватывать функцию созданния файла и его >удаленния в указаной директории. >При созданнии файла записывать куда-нибуть (делать лог) >че в директории есть такой файл в случае его удаленния также >удалять запись о его существовании в логе а при поиске >использовать этот лог. > >Понимаю что идея наверно не новая, по этому прошу >может кто-то знает чето подобное, подскажите чеб >не создавать колесо заново. В ядре есть dentry кэш, за счет которого поиск и так быстр. И такой лог не всегда актуален. Тоесть тебе надо будет пролистать сначала лог(а если он состоит из 10000 элементов), и если эл. не найден - тогда _все_равно_ проводить поиск по дереву директорий. Можно использовать БД утилиты locate, перехватывать вызовы open(CREAT) и unlink, и модифицировать БД. Или, если это linux, то юзать inotify.
- Ускоренния поиска, Dark_Evil, 13:30 , 20-Июн-07 (2)
>В ядре есть dentry кэш, за счет которого поиск и так быстр. >И такой лог не всегда актуален. Тоесть тебе надо будет пролистать >сначала лог(а если он состоит из 10000 элементов), и если эл. >не найден - тогда _все_равно_ проводить поиск по дереву директорий. Если мониторить постоянно то если логе не будет обнаруженна запись о файле то поиск по дереву каталогов будет не актуальным ибо это все будет цеплятся на новый, пустой винт а файлов(мелких) будет очень много и я думаю всеже будет быстрее пролистать лог какой бы он ни был...
|