[Kolab-devel] Introducing freebusyd: Solve freebusy performance problems

Gunnar Wrobel wrobel at pardus.de
Thu Mar 20 16:33:06 CET 2008


Hi Thomas,

Thomas Jarosch <thomas.jarosch at intra2net.com> writes:

> ----------------------------------------------------------------
> From: https://www.intevation.de/roundup/kolab/issue2554
> All the files can be found in the issue tracker. Dunno why
> it didn't generate an automatic email to kolab-devel.
> ----------------------------------------------------------------
>
> Hello together,
>
> last week I started to deeply analyze why the current freebusy performance
> is so horrible for large calendar folders. Gunnar and I developed
> simple patches that halved the memory and CPU usage of pfb.php.
> Deleting an event (=IMAP mail) in a calendar folder takes less
> than a second now on a 3 Ghz P4. That was a great improvement.
>
> But this was only one part of the problem. I could easily kill modern
> hardware by moving around calendar folders. The other part gets
> fixed by "freebusyd". I tested it with importing/moving and deleting
> 10.000 calendar entries and everything felt really smooth.
> Here's the introduction section from the README file:
>
> ------------------------------------------------------
> ###########################################################
> # freebusyd - control daemon for Kolab's freebusy pfb.php #
> ###########################################################
>
> Kolab provides server sided freebusy information for calendar folders.
> A script called pfb.php connects to the IMAP server and processes the data.
> Every change in a calendar folder will trigger a new session of pfb.php,
> which results in many parallel running pfb.phps.
> This easily kills even modern hardware.
>
> freebusyd is a daemon to make sure the generation of freebusy data
> doesn't eat all your CPU/memory on your server: All requests
> for pfb.php will be queued and executed in a controlled manner.
>
> Features:
> * Only one pfb.php is running at a time per owner/folder combination.
> * Global maximum concurrent job limit to relieve the system load.
> * Persistent request queue. Never lose a request by server reboot etc.
> * Requests for folders that get triggered too often in a configurable
>   time period get delayed for some minutes. Speeds up large imports
>   or move of calendar data between folders.
> * Good logging facilities and runs without root privileges.
>
> Optional features:
> * A special patch for the cyrus imap server will notify freebusyd
>   about deleted or renamed IMAP folders. freebusyd will then remove
>   the cached freebusy data for you. No more freebusy ghost entries.
>
> Technical details:
> * Written in C++ and should be able to handle 1.000+ users.
> * Very CPU friendly: The daemon usually sleeps and will only wake
>   up when there is a new request in the queue (uses inotify).
> * Tested with large (10.000 events) calendar folders
> * Fully doxygen documented
> ------------------------------------------------------
>
> Intra2net decided to release the daemon as GPL and it should
> be very Kolab server compatible. It will need some tweaking
> to the paths and users rights, but that should be no big deal.
>
> If you decide to integrate the cyrus folder delete patch,
> there'll be some work needed to support a separated
> freebusy and IMAP server. The patch fixes
> a Kolab bug that is around since 2005:
> https://www.intevation.de/roundup/kolab/issue614

wow, thanks a lot for providing all this stuff. I didn't have much
time to look at this so far but I hope I find the time soon to give
some more feedback and to start incorporating the things. in any case
it sounds really nice.

Cheers,

Gunnar

>
> Enjoy,
> Thomas Jarosch
>
> _______________________________________________
> Kolab-devel mailing list
> Kolab-devel at kolab.org
> https://kolab.org/mailman/listinfo/kolab-devel

-- 
______ http://kdab.com _______________ http://kolab-konsortium.com _

p at rdus Kolab work is funded in part by KDAB and the Kolab Konsortium

____ http://www.pardus.de _________________ http://gunnarwrobel.de _
E-mail : p at rdus.de                                 Dr. Gunnar Wrobel
Tel.   : +49 700 6245 0000                          Bundesstrasse 29
Fax    : +49 721 1513 52322                          D-20146 Hamburg
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   >> Mail at ease - Rent a kolab groupware server at p at rdus <<                 
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~




More information about the devel mailing list