[Date Prev][Date Next] [Chronological] [Thread] [Top]

Re: (ITS#3394) slapd select->poll for >1024 connections

vl@sernet.de wrote:

>Full_Name: Volker Lendecke
>Version: 2.2.18
>OS: SuSE Linux 8.2
>URL: ftp://ftp.openldap.org/incoming/
>Submission from: (NULL) (
>slapd standard compile does not support more than about 1000 client connections,
>as it uses the select system call. volker-lendecke-041114.diff in
>ftp.openldap.org/incoming is a patch to convert the main slapd loop from select
>to poll. With this patch slapd does not need to take care of FD_SETSIZE
Just following up to this ITS for completeness' sake.

On most systems select() and poll() have the same underlying 
implementation. (E.g., on Linux poll() is implemented using select(), on 
Solaris select() is implemented using poll().) So there's no incentive 
to add support for poll() in slapd when select() already works. As for 
the FD_SETSIZE issue, if you compile with -DOPENLDAP_FD_SETSIZE=xxxx you 
can use as many descriptors as you want.

CVS HEAD has been patched to support Linux epoll(), which also has no 
FD_SETSIZE limitations and is supposed to scale better, but my current 
results show that it performs more slowly than select() (On SuSE 9.1). I 
suspect that the previously published studies have a traffic mix that is 
not representative of normal LDAP traffic. At any rate, it bears further 
study, and it's worthwhile to continue the ongoing discussion on the 
openldap-devel mailing list.

I am now closing this ITS.

  -- Howard Chu
  Chief Architect, Symas Corp.       Director, Highland Sun
  http://www.symas.com               http://highlandsun.com/hyc
  Symas: Premier OpenSource Development and Support