This page captures the stream of thoughts related to ways to improve content management on MeeGo.
The primary goal is to provide a responsive user experience for applications which are consuming content. This means that content must be inspected and had meta data extracted from it (including thumbnails) prior to the application requesting the content. A consequence of that requirement means that on-the-fly indexing is a dead end as you can not guarantee that indexing will be complete when the application is launched.
The best time to perform the indexing and scanning of content is at the time of content acquisition; the user is already expecting to wait for content to copy/save to the system--a minor delay in an already anticipated delay is much better than a delay at a time when the user does not expect a delay.
A side benefit of performing index-at-acquisition is that we no longer have to perform any background indexing or thumb nailing on the system -- which has frequently introduced sporadic responsiveness to the UI as the system can inadvertently lock system resources while an index is occurring.
Since MeeGo provides a posix interface to the file system, it would be problematic to enforce a requirement that all applications use a specific API for reading and writing to the content storage locations. An alternative approach is to use a file system in user space (FUSE). The FUSE file system would be mounted to the various locations in the user's home directory where content must be placed for it to be accessible from the content management applications.
The FUSE implementation would block the final close of a file within the mounted file system until indexing, thumb nailing, and meta data extraction is complete. A benefit to this approach is that the content being written to disk is (in most cases) present in RAM and more easily accessed for whatever processing is required. This means that in addition to the benefits already mentioned, the cost of indexing and thumb nailing at index-at-acquisition time is less than the cost of on-demand/on-the-fly indexing.