Re: Let's make PostgreSQL multi-threaded
Hannu Krosing <hannuk@google.com>
From: Hannu Krosing <hannuk@google.com>
To: Andres Freund <andres@anarazel.de>
Cc: "Jonathan S. Katz" <jkatz@postgresql.org>,
Heikki Linnakangas <hlinnaka@iki.fi>, Tom Lane <tgl@sss.pgh.pa.us>, pgsql-hackers <pgsql-hackers@postgresql.org>
Date: 2023-06-08T10:15:58Z
Lists: pgsql-hackers
On Thu, Jun 8, 2023 at 11:54 AM Hannu Krosing <hannuk@google.com> wrote: > > On Wed, Jun 7, 2023 at 11:37 PM Andres Freund <andres@anarazel.de> wrote: > > > > Hi, > > > > On 2023-06-05 13:40:13 -0400, Jonathan S. Katz wrote: > > > 2. While I wouldn't want to necessarily discourage a moonshot effort, I > > > would ask if developer time could be better spent on tackling some of the > > > other problems around vertical scalability? Per some PGCon discussions, > > > there's still room for improvement in how PostgreSQL can best utilize > > > resources available very large "commodity" machines (a 448-core / 24TB RAM > > > instance comes to mind). > > > > I think we're starting to hit quite a few limits related to the process model, > > particularly on bigger machines. The overhead of cross-process context > > switches is inherently higher than switching between threads in the same > > process - and my suspicion is that that overhead will continue to > > increase. Once you have a significant number of connections we end up spending > > a *lot* of time in TLB misses, and that's inherent to the process model, > > because you can't share the TLB across processes. > > > This part was touched in the "AMA with a Linux Kernale Hacker" > Unconference session where he mentioned that the had proposed a > 'mshare' syscall for this. Also, the *static* huge pages already let you solve this problem now by sharing the page tables Cheers Hannu