Monday, June 12, 2006

Benchmarks: Evolution Calendar Loading

Harish has been so kind as to put in some experimental Evolution code for testing purposes to resolve one of our issues. We have some users with thousands of appointments that go all the way out to 2008. The old version of Evolution would find all of the meetings and load them in reverse order from 2008. The power users were having to wait 2-3 minutes before the UI would load the current date.

I have configured a test of doing a preload of +- 21 days. This loads 3 weeks into the future and then 3 weeks into the past initially and then does the rest of the calendar after it's finished. The shot below shows how the new code loads appointments:

I tested with a stopwatch the user that has the most appointments in the entire City, easily thousands of them and got the following benchmarks:

I have been able to draw the following conclusions:
  • The normal load time should be approximately 6-7 seconds.
  • There is a latency/threading/timing issue between Evolution and Evolution-Data-Server which greatly alters the results. It seems like sometimes EDS is not quite ready for a query at startup and then Evolution waits a few seconds and tries again. This possibly could be because of the speed of our server and/or threading issues on 4 CPUs that isn't normally seen on a laptop or workstation. When the two are in sync, it loads in 6 seconds. When they are off, the timeout adds about 6 seconds.
  • It seems possible to drop into code which doesn't use the environmental variable for setting the 21 day PRELOAD. Sample #4 followed the old code logic and loaded the calendar in reverse order and took over a minute.
  • It seems possible for eds to never sync with Evolution in rare circumstances. In sample #10 data was never returned from GroupWise.
I think we are on the right path with this new code, once these issues are resolved.

No comments: