jit_provider
Fact — official short description: “JIT provider to use.”
Identity
Lifecycle
| Fact | Value |
|---|---|
| First observed | PG11 |
| Present in | PG11–19 Beta 3 |
| Removed in | No |
| Introduction commit | 432bb9e04da4 — Basic JIT provider and error handling infrastructure. |
| Commit date | 2018-03-21 |
| Discussion | thread 1 |
Default history
| Versions | Raw boot_val |
Unit | Human value |
|---|---|---|---|
| PG11–19 Beta 3 | llvmjit |
— | llvmjit |
How it works
jit_provider selects the JIT provider. The named provider supplies PostgreSQL’s JIT implementation and must be binary-compatible; changing the provider requires a server restart.
jit_provider is a POSTMASTER-context setting: PostgreSQL reads it during server startup, and a configuration reload or session SET cannot activate a new value.
Library discovery and preloading interact with installed binary versions, extension control files, server or backend startup, and the module’s own GUCs.
Tuning advice
Advice. These are workload-specific starting points and must be validated with measurements.
| Workload | Guidance |
|---|---|
| OLTP | Do not switch jit_provider as routine tuning. Keep llvmjit when packaged and supported, and control whether JIT runs with jit and its cost thresholds. |
| OLAP | Evaluate a provider only with representative compilation time, execution speed, memory, package compatibility, and restart testing; provider choice is secondary to JIT thresholds. |
| Small nodes | Keep the packaged provider and usually control JIT use rather than replace its implementation; a missing provider can break startup or JIT execution. |
Pigsty
Values use the fixed 8-vCPU, 32-GiB, 100-GiB SSD fixture and render the current Pigsty templates for PG19 Beta 3; this does not assert current Pigsty support for that historical or beta release.
| Template | Effective value | Versus upstream boot | Source expression |
|---|---|---|---|
| OLTP | Unmodified | — | — |
| OLAP | Unmodified | — | — |
| CRIT | Unmodified | — | — |
| TINY | Unmodified | — | — |
Advice — pending human review. Fact from the current Pigsty template projection: OLTP: PG11–19 Beta 3 unmodified; OLAP: PG11–19 Beta 3 unmodified; CRIT: PG11–19 Beta 3 unmodified; TINY: PG11–19 Beta 3 unmodified. No Pigsty-specific rationale is inferred from an absent override.
Common pitfalls
- Expecting a reload or SET to activate jit_provider, although it requires a controlled server restart.
- Naming a missing or ABI-incompatible module and causing connection failure or a server that cannot start.
- Treating a search or preload path as harmless even though it defines which native code the server trusts.
- Changing jit_provider globally without a rollback plan and a client or operational compatibility test.
Related parameters
shared_preload_libraries · session_preload_libraries · local_preload_libraries · dynamic_library_path · extension_control_path