Changes

Jump to: navigation, search

MailNews:Minimizing Bandwidth Usage

2,535 bytes added, 09:08, 15 December 2008
Added Implementation, Incommunicado and Other concerns sections
'''''NOTE:''''' ''Effectively this means that messages with large MIME parts (i.e. attachments) are not cached and not available offline. They have to be downloaded each time they are viewed.''
 
== Implementation ==
=== What Needs To Be Done ===
 
Although poor handling of MIME parts is a major obstacle to minimising bandwidth usage in TB it is also the most difficult to address. To get immediate results a low-hanging fruit approach is proposed, in rough order of priority:
 
1) Add on/off/on-demand features to auto-sync so that user can have full control of when sync takes place
 
2) User configurable auto-syncs strategies to prioritise and include/exclude messages downloaded by auto-sync
 
3) Better handling of MIME parts so they are only downloaded once
: a) Caching of large MIME parts e.g. attachments
: b) Support for offline storage of MIME parts
 
=== How To Do It ===
 
With the exception of on-demand sync 1) and 2) can be implemented using strategies. These features and more will be supported in an extension, 'Incommunicado' (see below).
 
On-demand sync however requires some development. [[User:Emre]] has proposed the following implementation:
* Add a new operation mode (lets say on-demand) to nsAutoSyncManager.
* Add new method to nsAutoSyncManager to explicitly tell to re-prioritize the queue.
* When running in on-demand mode, it should ignore idle events.
* When running in this mode, nsAutoSyncManager should keep downloading all pending messages until either it is all done, or the user explicitly says STOP.
 
For 3) modifying the cache implementation and offline storage to better support MIME parts is non-trivial. This will be tackled at a later stage, in the meantime it may be possible to avoid current problems by increasing the cache size and configuring it to save to disk rather than memory ({{bug|439731}} comment #12).
 
== Incommunicado Extension ==
 
=== Target Features ===
 
Target features for first release of the Incommunicado extension in rough priority order
 
* Simple auto-sync strategy (see nsIAutoSyncManager)
** only download messages greater than MAX_SIZE on user request
* User interface
** add column showing state of message, i.e. o - header only, x - downloaded
** icon to toggle offline/online plus support for additional states (below)
* Priority folders
** user can select which folders are highest sync priority
* Incommunicado state
** user can select 'incommunicado' in addition to online/offline
** custom auto-sync strategy
*** only download messages greater than MAX_SIZE on user request
*** only priority folders are downloaded
 
== Other Concerns ==
 
Some other features/behaviour of TB that may need to be investigated to have complete control over bandwidth usage:
 
* Auto-update
* Junk mail
113
edits

Navigation menu