[Info-Ingres] Ingres on Itanium, not to good
Michael Touloumtzis
miket262 at hotmail.com
Mon Dec 10 09:39:10 CST 2007
No one is "blaming" Linux for epoll() having to be used instead of
poll(). It's a "better" version of poll(), if you will, just a little
non-standard.
That Ingres used the (deprecated in Linux) select() vs. poll() is just
an accident of history. When the port of Ingres to Linux was done it
was not noticed for some time that the default based on the #ifdefs in
the Ingres code was select(). Since it worked on Linux (and this was
in 1997, so probably it didn't matter at that point which call was
used) it did not pop up as an important to-do item. In looking at the
fd limit later on I noticed this oversight and fixed it. The LRU logic
for fds made the 1024 limit reasonable for small and medium
installations, but as Linux has matured our target audience has come
to include much larger installations. Now the 1024 limit is really
hurting.
Karl's "hack" is only a "hack" in the sense that he is violating the
intent of the Linux kernel hackers and the glibc folks, who intended
to cap poll() at 1024 and use epoll() above that. But it is safe and
sane and works, at the cost of a big-O growth that is not optimal.
The simple extension of fd_set is obviously back-portable, and the
change to epoll() would likely be too. It is up to the Ingres support
group to decide what is prudent and supportable in the field.
Obviously anyone building from source can decide for him or herself
which path to take.
MikeT
More information about the Info-Ingres
mailing list