[Tracker] Support for caching metadata on removable devices



Hi there, hackers, code-crackers, slackers,

Today I finished the support for metadata caching on removable devices.

It's not yet merged back to trunk, I hope to merge this either after the
first-next release, or late next week.

The more people test this, the more confident I'll be about its
stability. Testing this feature would be a great contribution if you
care about Tracker's quality.

The feature promises for example to persist user-data between different
computers when moving data between them using removable media. User data
and non-user meta-data like tags and other metadata collected by and set
through Tracker.

The support is following this specification which I wrote and which I
have now prototyped with Tracker. Tracker is indeed the first to
implement this: http://live.gnome.org/MetadataOnRemovableDevices

The reasoning for choosing this format is explained on that page, in
summary it comes down to:

* With XML you can't append
* With <insert your most likely favorite format here> you can't append
* For example: Google's protocol-buffers are prepend (and yes, I know
  you love Google's protocol-buffers, sadly they are prepend)
* Turtle is already specified by w3 as the store for RDF triples
* Append is important to avoid dataloss for users (arg!) who forcefully
  take out their USB sticks, without unmounting (the format must be a
  journal)
* cLucene sounded too complex
* Sidekick .xmp files have a filename conflict for situations like:
  /media/USBStick/mydata.txt /media/USBStick/mydata.doc
  and /media/USBStick/mydata.jpeg (how will you call the .xmp file?)
* Sideckick .xmp files would massively mess up your directory structure
* Embedded XMP data ain't related, you can still do this if you are ok
  with changing your user's USB-stick's data. Embedded XMP ain't
  possible for all formats, and you can't support clearing predicates
  and removing resources (so you end up comparing all values, which is
  precisely what we wanted to avoid to gain some performance).

I had to add a few special cases like "removing an entire resource",
"clearing the value of a predicate of a resource" and "the moving of a
resource to another URI on the same removable device". These cases are
implemented and specified on the wiki page too.

So again, I can use your magic testing powers and help. Please check
this out and help me getting it stable by trying it:

http://svn.gnome.org/svn/tracker/branches/turtle/

The file that you can tail is:

tail -f /media/USBStick/.cache/metadata/metadata.ttl


It's All About the Pentiums baby!

-- 
Philip Van Hoof, freelance software developer
home: me at pvanhoof dot be 
gnome: pvanhoof at gnome dot org 
http://pvanhoof.be/blog
http://codeminded.be




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