All of these clever remapping schemes scare me a bit to be honest.
They all seem to imply a non-negligible impact on our query time, and
a considerable amount of logic.

A simpler and more performant scheme, which requires an API break (!),
is to simply add an extra field on our Subject structure
"current_uri". In the DB we represent this as an extra column on the
'event' table which holds the URI id of the current location of the
subject.

Doing it like this would require that the file monitor lives inside
Zeitgeist - and not as an extension, but as a core component, since it
requires a special db structure. The file monitor would then directly
modify the 'current_uri' column of the 'event' table on file events.
This breaks our "events are immutable" invariant - which i'm otherwise
very fond of... So there are many drawbacks to this approach.

Despite all the drawbacks something inside me tells me that something
like this is the right solution.

I very much dislike adding advanced stuff like a file monitor as a
core component, but we could make up for this, by having it be like a
stub, that didn't do anything by default, but would have to be
instrumented by an extension or something... So it requires air fair
deal of thought architecture wise...

-- 
Monitoring Create/Move/Copy Files events
https://bugs.launchpad.net/bugs/602211
You received this bug notification because you are a member of Zeitgeist
Framework Team, which is subscribed to Zeitgeist Framework.

Status in Unity: Triaged
Status in Unity Files Place: Triaged
Status in Zeitgeist Framework: Confirmed
Status in Zeitgeist Datahub: Confirmed

Bug description:
An issue we are facing at the moment is that ppl lose track of there files in a 
timeline if the file was moved around or renamed. I would propose using 
taskview or patch nautilus to actually grab those events and either:
1) Modify the uris in the uris table
2) Create a new table with    | new_id | old_uri_id | event | to map uris to 
their actual ids and the event that allowed the change, this would allow us to 
track a history of renaming or moving a file. It will look a bit like the 
following:

9 | 9 | 48124  # CREATE EVENT
12 | 9 | 48126 # MOVE EVENT

In other words the last row means uri 12 was moved from uri 9 with event 48126

UPDATE:

3) Create a changable_uri table that is a map of the uri table. it gets updated 
upon moved and rename.
We then add new resulttype that allow you to ask for either pureSubject or 
adaptedSubject. depending on which one is chosen we then use the according 
table in the join of the find_events_query :)




_______________________________________________
Mailing list: https://launchpad.net/~zeitgeist
Post to     : zeitgeist@lists.launchpad.net
Unsubscribe : https://launchpad.net/~zeitgeist
More help   : https://help.launchpad.net/ListHelp

Reply via email to