Re: [Tracker] How do all the components fit together

On 19.08.2011 04:50, James Hurford wrote:

I've just discovered tracker recently, and am interested in how all
the components work together.

Correct me where I get this wrong.

I understand that tracker is run as a daemon, which starts up when the
user logs in to the desktop.  It reads the config files found in
$HOME/.config/tracker and starts up the appropriate miners mentioned
there.  This is where I get confused.  I understand the miners are
standalone applications, which find data and  writes this to the
store.  However how are the extractors invoked, and can they be
written in anything other than C?

Also What is the role of the tracker-writeback?  The only mention I
get so far is it writes back meta data to files. Which files, and how
does it work?

I appreciate any feedback anyone can give me on this.

Hi James,

Tracker is composed of the database daemon itself, tracker-store, the
miners and the extractor (and the writeback process). The store can
be started when needed since it's DBus activated, the miners are usually
started with the session. When the filesystem miner finds a file, it'll
call tracker-extract on it. Tracker-extract will look for the most
appropriate module, and return some SPARQL to the FS miner, which will
complete it and run the query against tracker-store. The writeback is
a different mechanism, where modification in tracker-store are written
back in the original file when possible (for example, ID3 metadata for
a MP3 file). I can't remember right now if its modules are compiled in
or dynamically loaded. Writeback only happens for the properties
annotated with tracker:writeback=true in the ontology.
Extractor modules can be written in any language (since you could
actually spawn an external process to get the data), however just using
a shared module and not spawning a process is usually faster.

I hope this clarifies it a bit, you can also have a look at for a few
presentations introducing Tracker.



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]