[Tracker] Slightly better performance comparison between E-D-S and Tracker's RDF store when storing contact data



Hi there,

The last performance analysis that I did* on E-D-S vs. Tracker's RDF
store had some problems:

a. Certain people didn't want Evolution's UI to be running while the
   test takes place.

b. Another problem was that the test was not replacing but always
   appending new contacts.

c. The test for Tracker isn't using QtContacts' API.

d. The Tracker RDF store's test was doing the REPLACE and ORIGINAL in
   one run, the two might interfere each other a bit. The ORIGINAL query
   was also leaving behind traces of nco:Affiliation instances.

So

- To address a. I decided to shut it down and on top of that I decided
  to use an empty addressbook that I fill up with 1000 contacts once.
  Then I start running the tests.

  I did the same thing for Tracker's RDF store. First I make 1000
  contacts and then I start running the tests. No softwares are using
  either of the stores while the tests run.

- To address b. I rewrote the test for E-D-S a bit. You can find both
  tests attached to this E-mail.

- I have not yet addressed c. The QtContacts team have posted an E-mail
  to the Tracker mailing list with some of their numbers:
  http://mail.gnome.org/archives/tracker-list/2011-March/msg00035.html
  I expect more numbers coming from them after they have started using
  Tracker's latest INSERT OR REPLACE feature.

- I rewrote the Tracker RDF store's test to address d. (attached too).
  It has no more indentation of the SPARQL to better mimic what
  QtContacts will generate and the query was further optimized a bit.


Errata:

o. I used the branch "sparql-update" of Tracker

o. I used --disable-tracker-fts on Tracker (with FTS is Tracker's INSERT
   OR REPLACE not expected to be as much faster as with FTS. FTS is
   disabled on Harmattan). Without disabling FTS are in this particular
   test case (due to INSERT OR REPLACE) results going to be different!

   Note that I didn't clarify this last time.

o. I used default CFLAGS (-g -O2 afaik) on Tracker

o. Version in Evolution's about box is 2.30.3 (Debian testing) and E-D-S
   from Debian testing too. This E-D-S uses a addressbook.db and
   a addressbook.db.summary file when I look inside the folder.

I ran both tests several times and then I took the best scores for each:

Evolution Data Server:

$ ./eds-test 
EDS 1000 contacts: 12.449457 (0 not replaced)
$ ./eds-test 
EDS 1000 contacts: 12.388330 (0 not replaced)
$ ./eds-test 
EDS 1000 contacts: 12.967997 (0 not replaced)
$ ./eds-test 
EDS 1000 contacts: 12.391114 (0 not replaced)
$ ./eds-test 
EDS 1000 contacts: 12.553720 (0 not replaced)
$

Tracker's RDF store. All contacts are replaced here:

./test-insert-or-replace
REPLACE: 1000 contacts: 12.579931
$ ./test-insert-or-replace 
REPLACE: 1000 contacts: 12.722786
$ ./test-insert-or-replace 
REPLACE: 1000 contacts: 13.674250
$ ./test-insert-or-replace 
REPLACE: 1000 contacts: 13.083288
$ ./test-insert-or-replace 
REPLACE: 1000 contacts: 13.539822
$ 


*) http://mail.gnome.org/archives/tracker-list/2011-March/msg00033.html


Cheers,

Philip

-- 


Philip Van Hoof
freelance software developer
Codeminded BVBA - http://codeminded.be

Attachment: eds-test.c
Description: Text Data

Attachment: test-insert-or-replace.vala
Description: Text Data



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