Indexing on Linux not ready yet

Beagle Tracker

On the Linux Desktop there are at least 2 ongoing efforts to try to bring indexing support to the platform. That is, a way to quickly search for files spread around the user’s home directory. One is Beagle and the other is tracker.

But both projects have a major flaw: they can’t properly track file changes. To do that, they use Linux’ inotify feature which allows to watch directories and files. Although you can watch the content of a directory, notifications do not recurse, which means that you have to watch every single directory of your home.

So what happens? Upon startup watches have to be put on every directory and that requires quite a significant filesystem activity. Beagle seems to defer this when the system is in an idle state so it is less noticeable.

The proper solution would be that the Linux kernel provides an inotify that does recurse. This shouldn’t be a performance problem as indexing softwares would only need one watch then.