Hi! The current BTL/TCP and OOB/TCP code contains separate sockets for IPv4 and IPv6. Though it has never been a problem for me, this might cause an out-of-FDs-error in large clusters. (IIRC, rhc has already pointed out this issue)
A possible way to reduce FD consumption would be the use of IPv4 mapped IPv6 addresses. These addresses let one use a single AF_INET6 socket for both, IPv4 and IPv6. One year ago, I've chosen not to employ these addresses for mainly two reasons: - Windows XP doesn't support them - OpenBSD has disabled them, but the system administrator can enable them at runtime These limitions are also mentioned here: http://en.wikipedia.org/wiki/IPv4_mapped_address#Limitations Nowadays, Vista (and the Windows Server line) has support for IPv4-mapped IPv6 addresses. If disabled on OpenBSD systems, the code wouldn't be able to do IPv4, but as already mentioned, the admin could easily fix this. Should we consider moving towards these mapped addresses? The implications: - less code, only one socket to handle - better FD consumption - breaks WinXP support, but not Vista/Longhorn or later - requires non-default kernel runtime setting on OpenBSD for IPv4 connections FWIW, FD consumption is the only real issue to consider. -- Cluster and Metacomputing Working Group Friedrich-Schiller-Universität Jena, Germany private: http://adi.thur.de