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. The amount of duplicated code we have to deal with due to to the process model is quite substantial. We have local memory, statically allocated shared memory and dynamically allocated shared memory variants for some things. And that's just going to continue. > I'm purposely giving a nonanswer on whether it's a worthwhile goal, but > rather I'd be curious where it could stack up against some other efforts to > continue to help PostgreSQL improve performance and handle very large > workloads. There's plenty of things we can do before, but in the end I think tackling the issues you mention and moving to threads are quite tightly linked. Greetings, Andres Freund