Cosmo 0.6.1 Performance Notes
Due to all the backend changes in 0.6.1 to support morse code sharing for Chandler's domain model, one of the tasks for 0.7 is to identify possible performance bottlenecks.
Recurring events with event modifications
One of the biggest changes is how cosmo models event modifications. Instead of storing each VEVENT modification in the master event's EventStamp?
, each modification is modeled as a separate item, which is how Chandler models modifications. This means to get all event data for a recurring event with modifications, cosmo must load the master item and query for all modification items and stamps and assemble the entire recurring event. This is different from just reading the entire event from the event stamp, which is what cosmo 0.6 did.
Using morse code, you can synchronize updates to recurring event modifications without having to spool the entire event. Its possible to have modifications on non-events, although there currently isn't a use-case for it.
CalDAV get and cosmo ui event retrieval for recurring events gets slower because of the extra queries involved in loading any event modification items and associated stamps. Event indexing still requires the entire event to be re-indexed, meaning an update to a single modification requires the entire event definition to be re-loaded. Deletion of master item requires deletion of any modification items. Adding an item to a collection requires all modifications to also be added.
- 01 May 2007