[Tracker] Performance testing of various update improvements of this week

Hi there,

Various update performance improvements took place last few days and
weeks. Today JÃrg did a significant performance improvement that affects
SPARQL Update's DELETE. I earlier this week implemented support for OR
REPLACE. We made a test-insert-or-replace.vala which mimics the typical
query for synchronizing an existing contact (that's nco:Contact in the
Nepomukian philosophy and language).

In all tests were the same 1000 contacts preloaded. This means that the
command was run a first time and these first results are discarded each

In practice this means that the test has to overwrite 1000 contacts.
This is important because the first run are none of the deletes deleting
any actual data. The second run they delete practically all existing
data from the exact same contacts.

So we simulate a situation where you can't make a diff of the changes.
This is the least ideal situation, so we test on that situation.

In between each test a tracker-control -r was performed, then preload of
1000 contacts, then run for measuring the time.

Sequence of commands for a typical test run:
 $ tracker-control -r
 $ ./test-insert-or-replace original 1000 # discard results
 $ ./test-insert-or-replace original 1000 # use results
 $ tracker-control -r
 $ ./test-insert-or-replace replace 1000 # discard results
 $ ./test-insert-or-replace replace 1000 # use results

Relevant build environment settings:
o. Relevant compiler CFLAGS were in all cases -O0 -ggdb and
   for ./configure I added --disable-tracker-fts
o. SQLite 3.7.3 (-O0 flags, /opt/sqlite installation)
o. GLib 2.27.2 (-O0 flags, /opt/glib installation)
o. No particular reason for -O0, but all test runs got the same flags
o. Test runs of last week with -O2 gave me < 13s for replace without
   delete improvement

Lenovo x61s, 2 x Intel(R) Core(TM)2 Duo CPU L7500  @ 1.60GHz, ~ 2GB ram

And now the results:

Master without delete improvement:
commit-id: a3d1504d8c3ff35654127bfd037caa1167d9ebec

- ORIGINAL : 1000 contacts: 22.862002
- Master has no REPLACE

Master with delete improvement:
commit-id: 94e8ed7f05da2f4398d82a27519c629b47da21b5

- ORIGINAL : 1000 contacts: 21.733715
- Master has no REPLACE

sparql-update without delete improvement:
commit-id: 3fa0fce9a0d253e277f45b3edec533d266583347 (rebased)

- ORIGINAL : 1000 contacts: 23.366843
- REPLACE  : 1000 contacts: 15.663055

sparql-update with delete improvement (rebase on master):
commit-id: 39e413ceaec1b5b48548d70924afcb262046ca18

- ORIGINAL : 1000 contacts: 19.126042
- REPLACE  : 1000 contacts: 13.713545

With optimization for rdf:type (with delete improvement, sparql-update):
commit-id: 832de90bdec34895ba090e567eb1fd44201210ac

- ORIGINAL : 1000 contacts: 18.897218
- REPLACE  : 1000 contacts: 13.250663


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

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