Thursday, October 25, 2007

Healthcare CIO pats Evolution/Exchange 2.12.0

Skip Paul, a Novell mate working for the Open Platform Services (OPS) Sales for the East Coast of United States, forwarded me a message from one of our pilot customers, John Halamka - CIO of Caregroup. John, in his mail said:
Could you pass this along to your developers -

Today I installed Evolution 2.12.0 as part of the Ubuntu Gusty release.

Every issue I have had with Evolution is now resolved. Performance is spectacular, caching is perfect and I no longer have to use OWA to ensure reliability.

John has been piloting various operating systems for more than a year now and when he tried SLED 10, he quoted saying:
My concern is that Evolution/Exchange connector is such a negative experience that it threatens the success of the entire SLED platform.
He shared the same in a article, saying:
The Evolution e-mail client presented the biggest problem. Every time he launched the application, he had to wait five minutes to use it, until it synced with CareGroup’s Microsoft Exchange server. If he deleted an e-mail before the entire store of deleted e-mails had synced, or if he tried sending an e-mail before all stored e-mails had synced, the application would crash.
As Evolution-Exchange maintainer, I teamed up with Skip and provided him various levels of optimization fixes and all of it were released as part of Evolution/Exchange 2.12.0. Skip front ended the efforts by ensuring timely delivery of patches and his feedbacks both ways. As mentioned in my blog, the performance was greatly improved by these patches and the same is appreciated by John in his recent blog, saying:
Congrats to the folks at Canonical who maintain Ubuntu and to the folks at Novell who have significantly upgraded their Evolution email client to meet the needs of Microsoft Exchange users.
It feels great to see your efforts/work gets directly appreciated by the users.

John: Thank you for your honest reviews and Skip - for the wonderful support provided both ways.

Update: Fixed some font weirdness.

Tuesday, October 23, 2007

Moved from Evolution/Exchange

After the release of Evolution/Exchange 2.12, I moved to one of the highly motivated, determined and focussed teams that extends the cutting edge technologies from other platforms to Linux.

using System;

class HelloWorld
public static void Main()
Console.WriteLine("Hello World !!!");
Yes, I am a proud Mono hacker now and will be working in ADO.NET. Presently, I am just finding my ways to understand the requirements and roadmaps of the component with the help of, my mentor and the maintainer of ADO.NET, Nagappan.

I will continue to be available in #evolution channel and answer any Evolution/Exchange related queries. Thanks to everyone that supported me during the development of Evolution/Exchange 2.12.0.

Monday, September 24, 2007

Exchange Connector & Evolution 2.12

Another milestone in the journey of Evolution mail client - 2.12 is released. This is srag's (Srinivasa Ragavan - Hope I got your name right, this time - Srini) maiden release and it rocks. Good job, Srini. A preview of what it provides is here.

This release is special, personally, as:

This is the best release made after the initial 1.x days of Ximian Connector. It all started from the days of SLED Betas - getting Beta customers to test and report issues, fix and provide packages to reverify. Exchange connector has become quite stable and just like other softwares, with some bugs. Connector has a better summary support, optimized n/w bandwidth usage, majorly rewritten folder loading/refreshing techniques, on-demand-public folder loading and newly implemented mail/calendar delegation feature that enables your colleague to handle your mail/appointments when you are away from office .

Thanks to all the customers/community users who provided test accounts to debug complex issues that are otherwise not possible to debug and fix. Remarkable improvement has gone into Connector in this release, especially in a state where people started recommending to use IMAP to access their Exchange mails instead of Connector.

Special thanks to Dan Winship for his time and help in answering my libsoup and connector related questions.

Okay. I haven't yet mentioned why this is a special release to me. ;-) This is my maiden release as Exchange Connector Maintainer. I took up the task with solving performance and stability issues as number-one-priorty than adding features and with much pride I declare this to be one of the best releases of Exchange Connector.

Some of the performance work that has gone into this release, for your joy.
[1] - Folder loading optimization
[2] - On demand loading of folders (esp. public folders)
Watch out for more optimization work to be done in Exchange connector module.

Onething, I tried hard to accomplish is the Exchange 2007 support - which will be a part of 2.14 release of Evolution.

Monday, July 02, 2007

Hack week

Last week was Hack week at Novell. At the beginning of the week, I started working on my idea of a out-of-the-box backup/restore/archive manager application for Evolution. Due to some family occasion, I was out of station and hack-week, for three days. When I came back, I took up another idea - a continuation of my Evolution Exchange Performance work. Evolution exchange starts up in just 3 seconds (approx.) now. Patch is in nascent stage and more to come in another couple of days. Stay tuned!

Thursday, June 28, 2007

Evolution Exchange Performance Series - Chapter 3 - Folder loading from 480 secs to < 1 sec

Close to a month now, have been working on squeezing Connector to save some time while it loads the folders. Remember Chapter-1 of my Evolution Exchange Performance Series blog - Yes, I based my optimization work from it. In the attached image, as you can see most of the folder loading time is spent in camel_exchange_folder_construct(). Construction of exchange folder objects does two major things:
  • Scanning the entire folder for any changes since last evolution session and
  • Fetch messages to keep things in sync
These two operations contributed to a big level in connector folder loading time. Fix doesn't refresh if summary is available and scanning for changes, since last evolution session, is moved to a separate thread with appropriate threading-etiquettes.

Here comes the supporting fact for my blog: :)

(2.11.x timing may vary depending upon production servers - response from my test servers are quite quick)

With this fix, Exchange Connector catches up with Microsoft Outlook w.r.t folder loading time. Outlook users will love Evolution 2.11.5 - watch out for more performance hacks. This fixes 442186, part of 341214 and 421091.

Wednesday, April 04, 2007

EDS + Hibernate = 100% CPU

There has been issues reported by GW users that Evolution hangs/suspends for a while when composing mails. We weren't able to reproduce the issue and respective gdb traces didn't give enough information. Lately, I started hibernating my laptop and when I resume from hibernation, I noticed that EDS started taking 100% CPU and when gdb is attached to the process... voila!!!.. EDS was running with 264 threads and most of it are waiting to update GW addressbook and rest are waiting to update GW calendars.

A little further investigation revealed that it was because of the combination of g_timeout_add()+hibernation. GLib stores the last processed time for g_timeout_add and when hibernated, the memory image is stored and restored, when resumed from hibernation. When restored, callbacks registered with g_timeout_add() gets called - as the difference in time during hibernation and resume satisfies the g_timeout_add() timeout value and that too in multiples of 100. Harinath (of Mono fame) helped me understand the GLib part and the fixes have gone in for GW and webcal provider.

Wednesday, March 14, 2007

Microsoft ISA server support

Today I came across a E2K_DEBUG trace forwarded to me from a Beta customer that had OWA url like and after some googling found out that, when a Mailbox server is behind a Microsoft ISA proxy server, the OWA url gets redirected to the above link. Evolution-exchange now will support Microsoft ISA server as well.