I've just been merged wip/carlosg/resource-leak-fix on master. For
some background, the URNs generated in the Resource table had no clear
lifetime, so Tracker has been leaking those "on purpose" for quite
some time now.

After a clumsy try that had to be reverted, some months ago I tried to
address this using referential integrity across tracker tables. It
turned out correct, but too slow on certain situations (eg. deletes)
as checking that a resource could be deleted had to hit many columns
without an index.

Philip OTOH suggested using a refcount and garbage collection
approach, which is what this branch implemented. I opted for managing
the refcount through triggers that increment or decrement the refcount
in the Resources table, all these extra updates happen on rowid
matches, so it's significantly faster and more O(1)y than the previous

This branch has been lingering for some weeks now, but I've been
testing it since with no hiccups, and also caters for updating
existing databases. I think it's in good shape for merging before the
freeze :).

tracker-list mailing list

Reply via email to