Development since last week continues to focus on performance, stability, and usability before returning to new functionality; however, we have managed to sneak in one highly requested feature and several minor tweaks.

Performance

Performance is already great for most single helpdesk installations, but every day we’re monitoring hundreds of helpdesks from our Cerb4 On-Demand service.  We find several bottlenecks from deploying Cerb4 on that scale that will speed up all installations.

The big performance improvements pending QA testing for the next stable release are:

  • SMTP connections are now persistent for functionality that sends a lot of mail; specifically e-mail notifications and auto-replies.  This is a lot more efficient.
  • Message content can now be searched using MySQL’s FULLTEXT indexes, including phrases, booleans, boosting and wildcards.  Before we went MySQL4+ specific, our previous approach used the MUCH slower and less flexible “LIKE” syntax.
  • Added support for persistent MySQL connections.
  • Added more objects to the cache manager: worker preferences, ticket fields, group memberships.  This saves a lot of needless queries to the database from most pages.
  • Fixed the cache manager when using disk-based caching (the default).  It was invalidating the caches too often, causing unnecessary I/O work and database queries.
  • Improved how Devblocks (the platform) renders plugin-provided pages (which is basically all of them).  Less work required to render pages means faster load times.
  • Drastically improved the performance of the nightly maintenance task.  We added a new “cron.maint” event that triggers after deleted tickets are purged.  It gives each plugin a chance to perform their own cleanup — which, for the main app, means cleaning up any orphaned data in the database (e.g. messages with deleted parent tickets, etc).  Previously the maintenance task was running an event for every deleted ticket.

New Functionality

  • Timezone support has been added on a per-worker basis.  Workers can click “My Account” and select a timezone which will control date input and output.  This was badly needed to get the most out of our flexible date entry (”5pm” or “+2 hrs”, etc).  If I enter a date of “5pm” in Los Angeles time, another worker would see “8pm” in New York time.
[Slashdot] [Digg] [Reddit] [del.icio.us] [Facebook] [Technorati] [Google] [StumbleUpon]


2 Comments to “Cerb4 Dev Diary: Mon, 23 Jun 2008 (Performance, Timezones)”

  1. Cerberus Helpdesk - Blog » Blog Archive » Cerb4 Dev Diary: Tues, 24 Jun 2008 (Time Tracking, Roadmap, QA) | June 24th, 2008 at 9:51 pm

    […] & Joe spent the day doing a full QA on Build 639 so we can push the latest changes into the stable branch.  They found a couple minor things just by being incredibly comprehensive, […]

  2. Cerberus Helpdesk - Blog » Blog Archive » 4.0 Build 642 is the New Stable Release | June 25th, 2008 at 4:17 pm

    […] latest stable release includes the functionality I blogged about going through QA testing on Monday.  There are several performance tweaks.  Support was also added for per-worker timezones and […]

Leave a Comment