Development/Tutorials/Metadata/Nepomuk/FileWatchService: Difference between revisions

From KDE TechBase
(New page: {{TutorialBrowser| series=Nepomuk| name=Nepomuk Ontology Loader Service| pre=Ontology Loader Service| next=Strigi Service| reading...)
 
No edit summary
 
Line 11: Line 11:
The File Watch service monitors the file system for changes. If files are deleted, the corresponding metadata is removed from the Nepomuk store. If files are moved, the URIs (file resources always have their file URL as RDF resource URI) and the file path are updated.
The File Watch service monitors the file system for changes. If files are deleted, the corresponding metadata is removed from the Nepomuk store. If files are moved, the URIs (file resources always have their file URL as RDF resource URI) and the file path are updated.


'''However:''' due to the restrictions of all file watching systems available (systems such as inotify are restricted to 8000 something watches, fam does not support file moving monitoring, etc.) the service mostly relies on KDirNotify. Thus, all operations performed by KDE applications through KIO are monitored while all other operations (such as console commands) are missed.
Currently we use inotify to monitor changes. However, inotify is absolute crap, and does let you monitor file moves unless you are watching both the source and the destination. So, we have to create watches for every single directory, which results in massive IO load when Nepomuk is starting up ( inotify does NOT watch directories recursively )


This is a big problem and needs work, maybe even on the kernel/libc level. '''Help wanted!'''
Someone should improve the file monitoring system in the kernel.
 
Also, FANotify (inotify's successor) is also crap! It does not support move events at all.

Latest revision as of 10:11, 8 November 2011

Nepomuk Ontology Loader Service
Tutorial Series   Nepomuk
Previous   Ontology Loader Service
What's Next   Strigi Service
Further Reading   Nepomuk Services, Nepomuk Server

Nepomuk File Watch Service

The File Watch service monitors the file system for changes. If files are deleted, the corresponding metadata is removed from the Nepomuk store. If files are moved, the URIs (file resources always have their file URL as RDF resource URI) and the file path are updated.

Currently we use inotify to monitor changes. However, inotify is absolute crap, and does let you monitor file moves unless you are watching both the source and the destination. So, we have to create watches for every single directory, which results in massive IO load when Nepomuk is starting up ( inotify does NOT watch directories recursively )

Someone should improve the file monitoring system in the kernel.

Also, FANotify (inotify's successor) is also crap! It does not support move events at all.