r2 - 26 Apr 2007 - 03:19:08 - RandyLetnessYou are here: OSAF >  Journal Web  >  ContributorNotes > RandyLetnessNotes > CosmoZeroPointSixOneConfiguration

Cosmo 0.6.1 Configuration Notes

Cosmo 0.6.1 introduces a new sharing protocol, morse code. Chandler clients are expected to transition from the old dav-based sharing to morse code. One of the differences between dav sharing and morse code is that the operations are streamlined into fewer requests. For example a dav based sharing of 100 events requires 200+ requests to the server vs 1 request in morse code. Updating 5 events required 10 requests in dav and a single request in morse code.

Because there are fewer requests made to the server, the server is doing more work per-request, and since each request is essentially a transaction, the transactions become longer when using morse code. Longer transactions increase the possibility of database deadlocks. I have noticed that the default MySQL configuration is prone to deadlocks when more than a couple users are accessing the system. The deadlocks almost always occur during the creation/updating of event/timerange indexes due to the large number of rows being inserted/updated/deleted. This may not be a problem when we re-factor time-range/property indexes for 0.7, but we will have to live with the possibility for deadlocks for 0.6.1.

The default MySQL config does some aggressive locking. We can relax this aggressive locking if we aren't using replication by setting innodb_locks_unsafe_for_binlog to 1 in the MySQL config file my.ini. This disables next-key locking (http://dev.mysql.com/doc/refman/5.0/en/innodb-next-key-locking.html). The side effects shouldn't affect cosmo. The goal is to eventually re-factor enough of cosmo to not have to use this option, but for now it should be ok to use.

-- RandyLetness - 26 Apr 2007

Edit | WYSIWYG | Attach | Printable | Raw View | Backlinks: Web, All Webs | History: r2 < r1 | More topic actions
Open Source Applications Foundation
Except where otherwise noted, this site and its content are licensed by OSAF under an Creative Commons License, Attribution Only 3.0.
See list of page contributors for attributions.