</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">§</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 BY (David Rowley, Jeff Davis)
<ulink url="&commit_baseurl;adf97c156">§</ulink>
<ulink url="&commit_baseurl;0f5738202">§</ulink>
<ulink url="&commit_baseurl;4d143509c">§</ulink>
<ulink url="&commit_baseurl;a0942f441">§</ulink>
<ulink url="&commit_baseurl;626df47ad">§</ulink>
</para>
<para>
This also improves hash set operations used by EXCEPT, and hash lookups of subplan values.
</para>
</listitem>
<!--
Author: Melanie Plageman <melanieplageman@gmail.com>
2025-02-11 [052026c9b] Eagerly scan all-visible pages to amortize aggressive va
Author: Melanie Plageman <melanieplageman@gmail.com>
2025-03-03 [06eae9e62] Trigger more frequent autovacuums with relallfrozen
-->
<listitem>
<para>
Allow normal vacuums to freeze some pages, even though they are all-visible (Melanie Plageman)
<ulink url="&commit_baseurl;052026c9b">§</ulink>
<ulink url="&commit_baseurl;06eae9e62">§</ulink>
</para>
<para>
This reduces the overhead of later full-relation freezing. The aggressiveness of this can be controlled by server variable and per-table setting vacuum_max_eager_freeze_failure_rate.
Previously vacuum never processed all-visible pages until freezing was required.
</para>
</listitem>
<!--
Author: Nathan Bossart <nathan@postgresql.org>
2025-03-20 [0164a0f9e] Add vacuum_truncate configuration parameter.
-->
<listitem>
<para>
Add server variable vacuum_truncate to control file truncation during VACUUM (Nathan Bossart, Gurjeet Singh)
<ulink url="&commit_baseurl;0164a0f9e">§</ulink>
</para>
<para>
A storage-level parameter with the same name and behavior already existed.
</para>
</listitem>
<!--
Author: Melanie Plageman <melanieplageman@gmail.com>
2025-03-12 [ff79b5b2a] Increase default effective_io_concurrency to 16
Author: Melanie Plageman <melanieplageman@gmail.com>
2025-03-18 [cc6be07eb] Increase default maintenance_io_concurrency to 16
-->
<listitem>
<para>
Increase server variables effective_io_concurrency's and maintenance_io_concurrency's default values to 16 (Melanie Plageman)
<ulink url="&commit_baseurl;ff79b5b2a">§</ulink>
<ulink url="&commit_baseurl;cc6be07eb">§</ulink>
</para>
<para>
This more accurately reflects modern hardware.
</para>
</listitem>
</itemizedlist>
</sect4>
<sect4 id="release-18-monitoring">
<title>Monitoring</title>
<itemizedlist>
<!--
Author: Melanie Plageman <melanieplageman@gmail.com>
2025-03-12 [9219093ca] Modularize log_connections output
-->
<listitem>
<para>
Increase the logging granularity of server variable log_connections (Melanie Plageman)
<ulink url="&commit_baseurl;9219093ca">§</ulink>
</para>
<para>
This server variable was previously only boolean; these options are still supported.
</para>
</listitem>
<!--
Author: Melanie Plageman <melanieplageman@gmail.com>
2025-03-12 [18cd15e70] Add connection establishment duration logging
-->
<listitem>
<para>
Add log_connections option to report the duration of connection stages (Melanie