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.


Russell said...

You are officially my hero. The slow exchange response is the number one problem with the exchange connector currently. I can't wait to see your patches in action!

Veerapuram Varadhan said...

@russel: Thanks and Yep, it will be hitting the 2.11.5 release tarball.

Nat said...

Wow, incredible improvement Varadhan! Nice work!

m said...

This was Brilliant!


James Ward said...

This is really fantastic news! Thanks for all your hard work. I'm very excited about 2.11.5!

Bur[N]er said...

You're my hero! 2.11.5 just landed in Gutsy and the speed difference is astronomical!

Remo said...

You mean to tell me your copy of Evolution actually connects to Exchange? On an AD network?

Hmph. I'd never believe it unless I saw it for myself.


Veerapuram Varadhan said...

@burner: Thanks for trying 2.11.5! We have plans to further optimize it.

@remo: Facing issues in Exchange connectivity using Evolution?