Camel disksummary branch
There has been recent mention in blogs and elsewhere about this mysterious 'disksummary-branch', this is a development branch in CVS which went out on a limb, trying to fix all of the various performance, memory and design issues in the mail storage interfaces.
Some initial discussions on why this was thought to be a decent idea is covered on the On-disk summaries page, but this page will cover the actual implementation that ensued.
The implementation isn't really finished, but I will cover what was achieved so far, and where I was thinking it might be headed to. There is still significant work remaining, consider this a handover document.
- CamelDS.Folder The simplified folder interface
- CamelDS.FolderSummary The more complex folder summary interface
- CamelDS.Search Some enhancements to the search interface
Because the interfaces are more complex and more abstract, there is a concrete re-usable implementation as well:
- CamelDS.FolderSummaryDisk The libdb based summary implementation
Views are a completely new concept, designed to replace the aging vFolder interfaces and code. They are just automatically updated sub-indices on a per-folder basis, rather than 'saved searches'.
- CamelDS.ViewSummary, manages the list of views for a store and folder.
There are some new utilities required to implement all of this:
- CamelDS.Misc, is where they're described.
- Camel.Iterator, describes the camel iterators, an integral part of the disksummary branch.
- EDSDS.ESexp, the ESexp evaluator has been enhanced over the previous version.
- CamelDS.DataCache, the data-cache object has been enhanced over the previous version.
And then there are the new or radically altered backend implementations: