Le Mon, 07 Mar 2011 22:40:10 +0100,
Philip Van Hoof <phi...@codeminded.be> a écrit :

> On Mon, 2011-03-07 at 08:09 -0800, Arjan van de Ven wrote:
> 
> Hi Arjan,
> 
> > PIM storage
> > ===========
> > The Address book, Calendar data and Email are currently stored in a 
> > tracker database, and accessed (officially) via a QtMobility API
> > set. There are a range of issues with this implementation, starting
> > with the complexity of adding privacy controls, the performance and
> > scalability as well as the completeness for doing a proper syncml
> > sync.
> 
> That's great!
> 
> Can you explain us, how does EDS improve privacy control compared to
> Tracker's RDF store? Does EDS have a way to represent different graphs
> (part of Tracker's future plans to do per-resource privacy control)?
> 
>       How in EDS do you say that data (about) x isn't to be made
>       available to queries made by application y? It's the first
> time that I hear that EDS has such a privacy related capabilities.
> 
> Can you also go a bit deeper into how EDS's performance compares to
> Tracker's RDF store for comparable data entry operations? Have you
> guys done measurements on this? Can the results of these measurements
> and the method to reproduce be publicized? Are the queries you used
> available somewhere? Where?
> 
> What do you mean with scalability? Scalable over multiple application
> domains other than PIM? Or scalable to more data? And what kind of
> data? I wonder how EDS is or can be more scalable when the underlying
> database technology (SQLite, apparently) is identical.
> 
> In Tracker is each class stored in a decomposed table. This means that
> contact and E-mail data are each in separate tables. Although
> decomposed typically makes INSERT a bit slower, SELECT is a lot
> faster. How will or does EDS make SELECT equally 'scalable' with
> equally complex queries?
> 
> Also note that the Tracker team optimizes both INSERT and SELECT
> use-cases on a use-case per use-case basis, using its domainindexes
> and indexes. Have you contacted the Tracker team about the scalability
> problems (if any)?
> 
> Or is EDS only more scalable during data entry?
> 
> > Because of all these items and the available expertise, we have
> > decided to start replacing PIM storage with the Evolution Data
> > Server.
> 
> Ah, I see.
> 
> > This change will land together with the SyncEvolution change (due
> > to the intimate relationship between the storage and sync of PIM
> > data). This change should largely be invisible to applications
> > since applications are supposed to access this data via the
> > appropriate QtMobility APIs.
> 
> That's not entirely true. Many applications are nowadays accessing
> said data through the QSparql API of Harmattan. QtMobility isn't
> always the ideal access-layer. Especially not for more complex
> use-cases.
> 
> Are you planning to support or implement a QSparql backend for EDS?
> 
> I'd be thrilled to have a query language like or as powerful as SPARQL
> in EDS! In what timeframe can we expect this? Are you planning to use
> existing SPARQL endpoint technology for this? Which?
> 
> > But to avoid setting precedents, the lower level components will 
> > be removed from the architecture diagrams effective immediately.
> > 
> > To be clear, this does not mean that "tracker" is completely
> > removed; tracker is still being used (together with tumbler) for
> > indexing media on the device. At this point we are seeing serious
> > issues (performance/stability) with this solution, but the first
> > attempt will be to fix the
> > deficiencies rather than a replacement.
> 
> At this moment is Tracker (via QSparql and earlier but deprecated
> libqttracker) used on Harmattan within quite a wide variety of
> (horizontal) applications.
> 
> Are the plans to only use Tracker for indexing? That's a fairly small
> use-case of Tracker on Harmattan nowadays. Fremantle's metadata
> solution of course had an almost exclusive focus on file metadata
> (indexing). But that's not the case on Harmattan. What's the plan for
> those apps?
> 
> 
> 
> Cheers!
> 
> Philip
> 

Just to complement Philip's message, here's my take on the subject:

Comparing Tracker and EDS is a bit like comparing a hitch-hiker's
backpack and a purse. The backpack can definitely store your credit
card, and the purse too. It is probably easier to put the card in your
purse than to take off the backpack, open the good pocket etc.
Now the question is, do you need a purse or a backpack?

If we go on the technical field, Tracker as a solution for contacts is
still a solution that is evolving a lot (you might argue that then it's
not stable/mature, I won't contradict you if you say it's still under
development). With our current versions, we fetch 5000 contacts (when I
say contact, I mean a full blown contact, many phone numbers, mail
addresses etc.) in around 15 seconds, and store them in around 80
seconds. That is not lightning fast. You can do better with a SQLite
database. But then we're getting back to the backpack and the purse.

Now, here are various cases that we resolved with Tracker:
1. Storing any detail any symbian phone can invent. You might laugh at
   that one, look at the complexity of our contact schema and you'll
   understand :) If we reduce the scope of our schema, we obviously get
   faster.
2. Storing contacts from many sources and differentiating them: we
   store contacts from local address book, from various services (mail
   for exchange etc.). Sync services are able to sync back only
   meaningful contacts.
3. Lossless merging and unmerging of contacts: we can track the origin
   of fields in a very fine grained way (useful when merging
   local/IM/service contacts)
4. Schema flexibility: Tracker handles ontology changes at no cost
4. Robustness: If the DB gets corrupted, Tracker has a journal, like a
   filesystem, and can replay it.

Here are some things we half solved:
1. IM contacts handling: we can save, merge, edit etc. IM contacts. IM
   contacts are handled the same way as local contacts, in a unified
   way. That makes showing a roster super easy.
   On the not so good side, the way we handle transient data (presence
   etc.) is maybe currently not optimal (stored on disk in the Tracker
   DB). Some people have been presenting folks as an alternative: while
   I think folks in an interesting project, it separates the
   information in two sources, so you can't query information in a
   unified way anymore.
2. Restricted access to data: so far we need a separate DB, that sucks.
   That has not been investigated seriously yet in Tracker.

Synchronization is a solved problem, mind you, our mail for exchange
plugin does a pretty good job at saving contacts in a slow way. Using
APIs the right way, it could sync 500 contacts in 80 seconds, as
mentioned above.

Now for the last part, supposing you had the courage to read the above
blurb: here are several valid hypothetical reasons I see to **pick EDS
over Tracker**

1. Tracker is not a mainstream technology, and all its expertise is
   concentrated in Nokia. Given Nokia's "commitment" to the future of
   MeeGo, choosing Tracker is a risk unless you recruit skilled people
   to work on it
2. Horizontality is not in your requirements: you don't care about
   crossing data from different domains. That is an architecture
   decision, and is perfectly valid.
3. MeeGo has never received the love it should have received from
   Nokia, so the contacts backend state in MeeGo has always been poor.
   For having been asked to play the firefighters in that domain, I
   know how poor it was. Rare updates, low reactivity on bugs, etc.
   Only recently (two or three months ago) did Nokia deem worth putting
   a real team on MeeGo work. I chatted with Patrick Oulry (not sure of
   your last name Patrick, my apologies if I butchered it) at FOSDEM,
   and he told me how frustrated he was with the state of things. I
   understand him. I am ashamed of the behaviour of Nokia there.

After the last part logically comes the conclusion: this mail is not a
plea for Tracker in MeeGo. It is a sad assessment that Nokia, in spite
of the good will of some of its people, failed at properly
collaborating on MeeGo. Collaborating did not mean drawing powerpoints,
and dropping code and letting it rot. It meant maintaining MeeGo in a
proactive way, which I have not seen (in contacts).

Now I'm also a bit worried of the affirmative nature of the original
message of this thread. To me it sounds like "the Intel architects
decided that MeeGo will be that way". I don't exactly how this kind of
decision is supposed to be taken, and while I understand you can't
ask everybody's opinion for all decisions, I see little transparency
there. Hopefully somebody will enlighten me!
I also hope in the future MeeGo architects will ask the right people
when they have questions on a software piece.

Regards

Adrien
_______________________________________________
MeeGo-dev mailing list
MeeGo-dev@meego.com
http://lists.meego.com/listinfo/meego-dev
http://wiki.meego.com/Mailing_list_guidelines

Reply via email to