Disabling JIT is the way to go for OLTP workloads.
Disabling JIT is the way to go for OLTP workloads.
In particular:
> The immediate goal is to be able to generate JITed code/LLVM-IR that doesn't > contain any absolute pointer values. If the generated code doesn't change > regardless of any of the other contents of ExprEvalStep, we can still cache > the JIT optimization / code emission steps - which are the expensive bits.
A colleague is working on getting this patch into shape. So we might see some caching work get done after the relative pointer work is in.
You can share stuff with a multiprocess architecture just fine (either through IPC or just plain shared memory + synchronization)
It's true that threads share memory by default, but processes can opt into sharing memory if they wish. And it appears that Postgres already makes use of shared memory for some things
https://www.instaclustr.com/blog/postgresql-docker-and-share...
https://stackoverflow.com/questions/32930787/understanding-p...
(random links from Google just to illustrate the point)
Seems like these will get cached at some point.
MSSQL caches plans globally and can be used across sessions and connections if the statement text is the same.