← Back to team overview

zeitgeist team mailing list archive

[Bug 695087] Re: Invalid cache access

 

*** This bug is a duplicate of bug 598666 ***
    https://bugs.launchpad.net/bugs/598666

I've just added a new benchmark test to lp:~zeitgeist/zeitgeist/no-
table-cache, test/cache-test.py, which inserts 1000 events with a
different interpretation each (could as well -and more likely in the
real world- be 1000 different mimetypes or actors, but the code is
basically the same for all of them so I just tried with interpretations)
and then retrieves them one by one filtering by their interpretations.

This benchmark shows us that the cache is indeed justified, so now we
know it's worth to fix it :).

Times (in seconds) with current trunk and having removed the cache:
 - Insertion: 0.22 0.34
 - Recovery: 0.19 1.90

Here's the same with 100 events and interpretations instead of 1000:
 - Insertion: 0.02 0.032
 - Recovery: 0.02 0.035

And with 10 events/interpretations:
 - Insertion: 0.0025 0.0035
 - Recovery: 0.0021 0.0022

-- 
You received this bug notification because you are a member of Zeitgeist
Framework Team, which is subscribed to Zeitgeist Framework.
https://bugs.launchpad.net/bugs/695087

Title:
  Invalid cache access

Status in Zeitgeist Framework:
  Triaged

Bug description:
  alagos@alagos-desktop:~$ gnome-activity-journal
  ** Message: pygobject_register_sinkfunc is deprecated (GstObject)
  /usr/share/gnome-activity-journal/src/common.py:747: DeprecationWarning: object.__new__() takes no parameters
    GIO_FILES[subj] = object.__new__(classtype, *args, **kwargs)
  /usr/share/gnome-activity-journal/src/activity_widgets.py:303: GtkWarning: gtk_box_pack: assertion `child->parent == NULL' failed
    self.pack_end(hbox)
  Error from Zeitgeist engine: org.freedesktop.DBus.Python.KeyError: Traceback (most recent call last):
    File "/usr/lib/pymodules/python2.6/dbus/service.py", line 702, in _message_cb
      retval = candidate_method(self, *args, **keywords)
    File "/usr/share/zeitgeist/_zeitgeist/engine/remote.py", line 253, in FindEvents
      event_templates, storage_state, num_events, result_type, sender))
    File "/usr/share/zeitgeist/_zeitgeist/engine/main.py", line 395, in find_events
      return self._find_events(1, *args)
    File "/usr/share/zeitgeist/_zeitgeist/engine/main.py", line 382, in _find_events
      result = self.get_events(ids=[row[0] for row in result], sender=sender)
    File "/usr/share/zeitgeist/_zeitgeist/engine/main.py", line 187, in get_events
      event = self._get_event_from_row(row)
    File "/usr/share/zeitgeist/_zeitgeist/engine/main.py", line 152, in _get_event_from_row
      setattr(event, field, getattr(self, "_" + field).value(row[field]))
    File "/usr/share/zeitgeist/_zeitgeist/engine/sql.py", line 430, in value
      return self._inv_dict[id]
  KeyError: 1



References