high-availability again
Ben Carter
bhc+ at pitt.edu
Thu Apr 14 13:44:30 EDT 2005
Dave McMurtrie wrote:
> 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.
>
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.
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
bhc at pitt.edu
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
More information about the Info-cyrus
mailing list