Re: OpenBSD versus semaphores
От | Thomas Munro |
---|---|
Тема | Re: OpenBSD versus semaphores |
Дата | |
Msg-id | CA+hUKGJVSjiDjbJpHwUrvA1TikFnJRfyJanrHofAWhnqcDJayQ@mail.gmail.com обсуждение исходный текст |
Ответ на | Re: OpenBSD versus semaphores (Tom Lane <tgl@sss.pgh.pa.us>) |
Список | pgsql-hackers |
On Fri, Apr 2, 2021 at 9:42 AM Tom Lane <tgl@sss.pgh.pa.us> wrote: > Thomas Munro <thomas.munro@enterprisedb.com> writes: > > On Tue, Jan 8, 2019 at 7:14 PM Tom Lane <tgl@sss.pgh.pa.us> wrote: > >> So I looked around for an alternative, and found out that modern > >> OpenBSD releases support named POSIX semaphores (though not unnamed > >> ones, at least not shared unnamed ones). What's more, it appears that > >> in this implementation, named semaphores don't eat open file descriptors > >> as they do on macOS, removing our major objection to using them. > > > No OpenBSD here, but I was curious enough to peek at their > > implementation. Like others, they create a tiny file under /tmp for > > each one, mmap() and close the fd straight away. > > Oh, yeah, I can see a bunch of tiny mappings with procmap. I wonder > whether that scales any better than an open FD per semaphore, when > it comes to forking a bunch of child processes that will inherit > all those mappings or FDs. I've not tried to benchmark child process > launch as such --- as I said, I'm not running this on hardware that > would support serious benchmarking. I also have no ability to benchmark on a real OpenBSD system, but once a year or so when I spin up a little OpenBSD VM to test some patch or other, it annoys me that our tests fail out of the box and then I have to look up how to change the sysctls, so here's a patch. I also checked the release notes to confirm that 5.5 is the right release to look for[1]; by now that's EOL and probably not even worth bothering with the test but doesn't cost much to be cautious about that. 4.x is surely too old to waste electrons on. I guess the question for OpenBSD experts is whether having (say) a thousand tiny mappings is bad. On the plus side, we know from other Oses that having semas spread out is good for reducing false sharing on large systems. [1] https://www.openbsd.org/55.html
Вложения
В списке pgsql-hackers по дате отправления: