Dave McMurtrie wrote:
Actually, the important code change for any active/active cluster configuration is to make sure the stage./ files used during LMTP delivery have unique filenames across the cluster.Amos wrote:
What sort of changes did you have to make?
We just had to change map_refresh() to call mmap() with MAP_PRIVATE instead of MAP_SHARED. Since mmap() is being called with PROT_READ anyway, this doesn't affect the operation of the application since the mapped region can never be updated. Veritas CFS was not very efficient about maintaining cache coherency across all cluster nodes when we were using MAP_SHARED. Everything worked, but under heavy load it became extremely slow.
There are some other setup differences related to this same issue such as symlinking /var/imap/proc, /var/imap/socket, and if you care /var/imap/log to local filesystem space on each cluster node. You could make these filenames unique across the cluster with code changes if you want to make the code changes for these also.
We added a "clusternode" parameter to imapd.conf to accomplish this for the LMTP stage./ files.
Otherwise, it just worked.
Ben
--
Ben Carter University of Pittsburgh/CSSD [EMAIL PROTECTED] 412-624-6470
--- Cyrus Home Page: http://asg.web.cmu.edu/cyrus Cyrus Wiki/FAQ: http://cyruswiki.andrew.cmu.edu List Archives/Info: http://asg.web.cmu.edu/cyrus/mailing-list.html