Re: Proposed module: tracker
- From: Jamie McCracken <jamiemcc blueyonder co uk>
- To: Joe Shaw <joeshaw novell com>
- Cc: desktop-devel-list gnome org
- Subject: Re: Proposed module: tracker
- Date: Wed, 10 Jan 2007 18:22:33 +0000
Joe Shaw wrote:
Hi,
On Wed, 2007-01-10 at 16:26 +0000, Jamie McCracken wrote:
Joe Shaw wrote:
[snipped my concerns about Tracker]
all these also apply to EDS too yet no one complains?
Some of them apply. EDS isn't a general data store; it has APIs and
backends that are very specific to the types of data it stores. Also,
very few applications (none other than Evolution, I believe) actually
store info in EDS. They're all read only, consuming EDS's data.
it does have the ability to write to but unlike text files its actually
safe to have multiple writers with a db
Tracker is object to object with key values as properties so it can do
more complex stuff (like a playlist object is a collection of music
files).
Sorry, I don't understand what you mean by "object to object with key
values as properties."
It can store relational hierarchy - its not just a flat key-value
storage mechanism. So object to object relationships can be managed
(Email->EmailAttachemnt, album->track, history->bookmarks etc)
For your playlist example, I have a hard time believing that Tracker can
offer a more optimized storage strategy than one that is tailored for
the application.
trackers one would be both extensible and shareable - more flexible than
something set in stone or that only one process could write to at a time
If we ever want first class objects or semantic web style functionality
then stores like tracker/EDS are needed.
I agree that things like EDS are needed. For a music player, it should
absolutely expose its data to the desktop; I said exactly that in my
last email.
And same for photos, documents etc
They are not slower - in many cases they result in far fewer disk seeks.
The key is to get stuff in bulk (like get all the properties in one call
as opposed to getting each individual ones separately). This
eliminates the IPC overhead (something GConf needs too)
You either have IPC round-trip overhead, or you have memory overhead in
sending these large messages. If you're sending them through the D-Bus
bus, message passing overhead is very high, because it validates every
message.
its a question of getting the balance right - you would request chunks
of data but the optimal size of the chunk would be subject to
experimentation.
If you get close in the above, the overheads become negligible - X is a
good example here too of how it manages to offset the IPC overhead
It's not uncommon for music libraries to have in excess of 10,000 songs.
Since this is often thrown around as a potential use case, I think it's
basically a requirement to see this implemented (even prototyped) using
Tracker before its suitability can be determined.
smart apps download data as they need them (this is the whole point of
client/server database apps)
However we are planning to support persistent live queries where speed
is essential and the client wishes to get all results. In these cases
the result set is held in a separate sqlite db (its persistent because
it will last across sessions and survive system shutdowns). This
query/db will be a flattened table in the most optimised format
available so I am pretty confident we can match or even beat any other
system in performance and apps can read it in-process if they wish (its
like a snapshot but with added benefit of having live updates). EG it
could be a query for all music files with a list of metadata.
And one API is easier to learn than a multitude for different metadata
and keyword systems (honestly how many systems do we need to do tagging
and metadata?).
Again, no one has articulated what the "metadata problem" is. Tagging
is a pretty easy one to solve, and we can solve it with one API.
Leaftag could be that API, or something else could be that API. It
doesn't really matter.
Tagging in fspot does not use leaftag afaik. Their metadata system
appears to be based around something called semweb. Nautilus metadata is
all xml based and not really shareable system wide.
THeres no question we need a metadata server to sort out all this mess
so apps can interoperate with it.
Some examples of how tracker can improve the desktop :
These are fine ideas, but let's see them prototyped first, so we can
make an informed decision about whether it's practical and works, rather
than accepting it prima facie.
thats why I am not asking for "tracker the database" to be considered at
this time. We do need these implemented and I will get round to them.
--
Mr Jamie McCracken
http://jamiemcc.livejournal.com/
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]