From: | Thomas Munro <thomas(dot)munro(at)gmail(dot)com> |
---|---|
To: | Andrew Dunstan <andrew(at)dunslane(dot)net> |
Cc: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>, Heikki Linnakangas <hlinnaka(at)iki(dot)fi>, pgsql-hackers <pgsql-hackers(at)postgresql(dot)org> |
Subject: | Re: Let's make PostgreSQL multi-threaded |
Date: | 2023-06-06 22:26:07 |
Message-ID: | CA+hUKG+kfGGT5DTSFse1+v+bcuUtTD4szNnvruTDscDXaF39Pw@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
On Tue, Jun 6, 2023 at 6:52 AM Andrew Dunstan <andrew(at)dunslane(dot)net> wrote:
> If we were starting out today we would probably choose a threaded implementation. But moving to threaded now seems to me like a multi-year-multi-person project with the prospect of years to come chasing bugs and the prospect of fairly modest advantages. The risk to reward doesn't look great.
>
> That's my initial reaction. I could be convinced otherwise.
Here is one thing I often think about when contemplating threads.
Take a look at dsa.c. It calls itself a shared memory allocator, but
really it has two jobs, the second being to provide software emulation
of virtual memory. That’s behind dshash.c and now the stats system,
and various parts of the parallel executor code. It’s slow and
complicated, and far from the state of the art. I wrote that code
(building on allocator code from Robert) with the expectation that it
was a transitional solution to unblock a bunch of projects. I always
expected that we'd eventually be deleting it. When I explain that
subsystem to people who are not steeped in the lore of PostgreSQL, it
sounds completely absurd. I mean, ... it is, right? My point is
that we’re doing pretty unreasonable and inefficient contortions to
develop new features -- we're not just happily chugging along without
threads at no cost.
From | Date | Subject | |
---|---|---|---|
Next Message | Florents Tselai | 2023-06-06 22:30:55 | Re: Improving FTS for Greek |
Previous Message | Evan Jones | 2023-06-06 21:43:57 | Re: [PATCH] pg_regress.c: Fix "make check" on Mac OS X: Pass DYLD_LIBRARY_PATH |