Title Making Evolution Data Server's calendar smaller and faster
Student Stanislav Slusny
Mentor Federico Mena-Quintero
Abstract
There have been several complaints about memory consumption and speed of Evolution Data (EDS) server recently. Some developers even attempted to completely rewrite it. The ultimate goal is to measure EDS performance, reduce its memory usage and make it faster. The focus will be given to its calendar part. This subtasks will lead to the goal:

* Implementation of interval trees. More effective data structure will improve both speed and memory usage. Now, when searching for events in some time range, all events are scanned. Even really old ones. The better data organization is needed.

* Implementation of logging facility, which allows evaluation of the performance and memory analysis. The data and logs from community will be gathered.

* Analysis of calendar queries and their lifetime.

* Design and implementation of typical scenarios, which will be used to measure both speed and memory usage.

* Performance and memory profiling. Even developers are using rather vague language like "EDS consumes too much memory" now. Careful statistics will be gathered.

* Performance measurement of EDS cache. Every EDS client uses the cache, even clock applet. There have been suggestions, that the cache should be removed. Performance evaluation and optimization will be carried out.

* The results will be processed and presented in a understandable way to the community. Patches, that will fix most serious findings will be prepared.

Electronic calendars are becoming more and more popular these days. As EDS was written during the early days of Evolution, it needs some optimization to make calendar experience as smooth as possible. Currently, EDS has a reputation of process, that consumes too much memory. Software has a rich history of people spending large chunks of their life optimizing things that don't matter. Therefore, before implementing any changes, the profiling process will be carried out.