Home Explore Blog CI



postgresql

6th chunk of `doc/src/sgml/release-18.sgml`
16c02ef735dd0d85dcf28aa43d82ad7655bd2d23ceb560090000000100000fa2

Allow GIN indexes to be created in parallel (Tomas Vondra, Matthias van de Meent)
<ulink url="&commit_baseurl;8492feb98">&sect;</ulink>
</para>
</listitem>

<!--
Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
2025-04-02 [e9e7b6604] Add GiST and btree sortsupport routines for range types
-->

<listitem>
<para>
Allow values to be sorted to speed rangetype GiST and btree index builds (Bernd Helmle)
<ulink url="&commit_baseurl;e9e7b6604">&sect;</ulink>
</para>
</listitem>

     </itemizedlist>

    </sect4>

    <sect4 id="release-18-performance">
     <title>General Performance</title>

     <itemizedlist>

<!--
Author: Andres Freund <andres@anarazel.de>
2025-03-17 [02844012b] aio: Basic subsystem initialization
Author: Andres Freund <andres@anarazel.de>
2025-03-17 [da7226993] aio: Add core asynchronous I/O infrastructure
Author: Andres Freund <andres@anarazel.de>
2025-03-18 [55b454d0e] aio: Infrastructure for io_method=worker
Author: Andres Freund <andres@anarazel.de>
2025-03-18 [247ce06b8] aio: Add io_method=worker
Author: Thomas Munro <tmunro@postgresql.org>
2025-03-19 [10f664684] Introduce io_max_combine_limit.
Author: Thomas Munro <tmunro@postgresql.org>
2025-03-19 [06fb5612c] Increase io_combine_limit range to 1MB.
Author: Andres Freund <andres@anarazel.de>
2025-03-26 [c325a7633] aio: Add io_method=io_uring
Author: Andres Freund <andres@anarazel.de>
2025-03-29 [50cb7505b] aio: Implement support for reads in smgr/md/fd
Author: Andres Freund <andres@anarazel.de>
2025-03-30 [047cba7fa] bufmgr: Implement AIO read support
Author: Andres Freund <andres@anarazel.de>
2025-03-30 [12ce89fd0] bufmgr: Use AIO in StartReadBuffers()
Author: Andres Freund <andres@anarazel.de>
2025-03-30 [2a5e709e7] Enable IO concurrency on all systems
-->

<listitem>
<para>
Add an asynchronous I/O subsystem (Andres Freund, Thomas Munro, Nazir Bilal Yavuz, Melanie Plageman)
<ulink url="&commit_baseurl;02844012b">&sect;</ulink>
<ulink url="&commit_baseurl;da7226993">&sect;</ulink>
<ulink url="&commit_baseurl;55b454d0e">&sect;</ulink>
<ulink url="&commit_baseurl;247ce06b8">&sect;</ulink>
<ulink url="&commit_baseurl;10f664684">&sect;</ulink>
<ulink url="&commit_baseurl;06fb5612c">&sect;</ulink>
<ulink url="&commit_baseurl;c325a7633">&sect;</ulink>
<ulink url="&commit_baseurl;50cb7505b">&sect;</ulink>
<ulink url="&commit_baseurl;047cba7fa">&sect;</ulink>
<ulink url="&commit_baseurl;12ce89fd0">&sect;</ulink>
<ulink url="&commit_baseurl;2a5e709e7">&sect;</ulink>
</para>

<para>
This feature allows backends to queue multiple read requests, which allows for more efficient sequential scans, bitmap heap scans, vacuums, etc.
This is enabled by server variable io_method, with server variables io_combine_limit and io_max_combine_limit added to control it.  This also enables
effective_io_concurrency and maintenance_io_concurrency values greater than zero for systems without fadvise() support.  The new system view pg_aios shows the file handles being used
for asynchronous I/O.
</para>
</listitem>

<!--
Author: Tomas Vondra <tomas.vondra@postgresql.org>
2024-09-21 [c4d5cb71d] Increase the number of fast-path lock slots
-->

<listitem>
<para>
Improve the locking performance of queries that access many relations (Tomas Vondra)
<ulink url="&commit_baseurl;c4d5cb71d">&sect;</ulink>
</para>
</listitem>

<!--
Author: David Rowley <drowley@postgresql.org>
2024-08-20 [adf97c156] Speed up Hash Join by making ExprStates support hashing
Author: David Rowley <drowley@postgresql.org>
2024-12-11 [0f5738202] Use ExprStates for hashing in GROUP BY and SubPlans
Author: Jeff Davis <jdavis@postgresql.org>
2025-03-24 [4d143509c] Create accessor functions for TupleHashEntry.
Author: Jeff Davis <jdavis@postgresql.org>
2025-03-24 [a0942f441] Add ExecCopySlotMinimalTupleExtra().
Author: Jeff Davis <jdavis@postgresql.org>
2025-03-24 [626df47ad] Remove 'additional' pointer from TupleHashEntryData.
-->

<listitem>
<para>
Improve the performance and reduce memory usage of hash joins and GROUP

Title: PostgreSQL 18: Indexing and General Performance Enhancements - GIN Indexes, AIO Subsystem, Locking, and Hash Join Improvements
Summary
PostgreSQL 18 introduces several performance enhancements, including allowing parallel creation of GIN indexes and enabling values to be sorted to speed up rangetype GiST and btree index builds. A new asynchronous I/O (AIO) subsystem is added to improve sequential scans, bitmap heap scans, and vacuums. Locking performance is improved for queries accessing many relations. Hash join performance is enhanced, and memory usage is reduced.