Re: kqueue
Alvaro Herrera <alvherre@2ndquadrant.com>
From: Alvaro Herrera <alvherre@2ndquadrant.com>
To: Robert Haas <robertmhaas@gmail.com>
Cc: Andres Freund <andres@anarazel.de>, Thomas Munro <thomas.munro@enterprisedb.com>, Pg Hackers <pgsql-hackers@postgresql.org>, Noah Misch <noah@leadboat.com>
Date: 2016-04-21T19:31:13Z
Lists: pgsql-hackers
Robert Haas wrote: > On Thu, Apr 21, 2016 at 2:22 PM, Andres Freund <andres@anarazel.de> wrote: > > On 2016-04-21 14:15:53 -0400, Robert Haas wrote: > >> On Tue, Mar 29, 2016 at 7:53 PM, Thomas Munro > >> <thomas.munro@enterprisedb.com> wrote: > >> > On the WaitEventSet thread I posted a small patch to add kqueue > >> > support[1]. Since then I peeked at how some other software[2] > >> > interacts with kqueue and discovered that there are platforms > >> > including NetBSD where kevent.udata is an intptr_t instead of a void > >> > *. Here's a version which should compile there. Would any NetBSD > >> > user be interested in testing this? (An alternative would be to make > >> > configure to test for this with some kind of AC_COMPILE_IFELSE > >> > incantation but the steamroller cast is simpler.) > >> > >> Did you code this up blind or do you have a NetBSD machine yourself? > > > > RMT, what do you think, should we try to get this into 9.6? It's > > feasible that the performance problem 98a64d0bd713c addressed is also > > present on free/netbsd. > > My personal opinion is that it would be a reasonable thing to do if > somebody can demonstrate that it actually solves a real problem. > Absent that, I don't think we should rush it in. My first question is whether there are platforms that use kqueue on which the WaitEventSet stuff proves to be a bottleneck. I vaguely recall that MacOS X in particular doesn't scale terribly well for other reasons, and I don't know if anybody runs *BSD in large machines. On the other hand, there's plenty of hackers running their laptops on MacOS X these days, so presumably any platform dependent problem would be discovered quickly enough. As for NetBSD, it seems mostly a fringe platform, doesn't it? We would discover serious dependency problems quickly enough on the buildfarm ... except that the only netbsd buildfarm member hasn't reported in over two weeks. Am I mistaken in any of these points? (Our coverage of the BSD platforms leaves much to be desired FWIW.) -- Álvaro Herrera http://www.2ndQuadrant.com/ PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services
Commits
-
Add kqueue(2) support to the WaitEventSet API.
- 815c2f0972c8 13.0 landed
-
Add WL_EXIT_ON_PM_DEATH pseudo-event.
- cfdf4dc4fc96 12.0 cited
-
Be conservative about alignment requirements of struct epoll_event.
- a3b30763cc86 9.6.0 cited
-
Make idle backends exit if the postmaster dies.
- ac1d7945f866 9.6.0 cited