Re: First draft of the PG 15 release notes (sorting)

Bruce Momjian <bruce@momjian.us>

From: Bruce Momjian <bruce@momjian.us>
To: David Rowley <dgrowleyml@gmail.com>
Cc: Justin Pryzby <pryzby@telsasoft.com>, PostgreSQL-development <pgsql-hackers@postgresql.org>
Date: 2022-05-12T00:53:25Z
Lists: pgsql-hackers
On Thu, May 12, 2022 at 10:38:42AM +1200, David Rowley wrote:
> On Wed, 11 May 2022 at 14:38, Justin Pryzby <pryzby@telsasoft.com> wrote:
> > I wonder if this is also relevant.
> >
> > 65014000b35 Replace polyphase merge algorithm with a simple balanced k-way merge.
> 
> Thanks for highlighting that. It very much is relevant. In fact, it
> seems to account for most of the 25% I mentioned.  That particular
> test was sorting 10 million tuples with 4MB of work_mem.
> 
> I think that "Improve sorting performance (Heikki Linnakangas)" should
> be moved out from "E.1.3.1.2. Indexes" and put below "E.1.3.1.4.
> General Performance"

Yes, good point, moved.

> The text likely should include the words "disk-based" so that it's
> clear that it's not the same as the other line about "in-memory
> sorts".  I'd also be open to just having a single line too. I'd vote
> to put Heikki's name first if we did that.
> 
> Maybe:
> 
> * Improve performance of sorting tuples (Heikki Linnakangas, Ronan
> Dunklau, David Rowley, Thomas Munro)
> 
> This improves the merging performance of individual on-disk sort
> batches, reduces memory consumption for in-memory sorts and reduces
> CPU overheads for certain in-memory sorts.

I kept separate entries:

	<!--
	Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
	2021-10-18 [65014000b] Replace polyphase merge algorithm with a simple balanced
	Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
	2021-10-25 [166f94377] Clarify the logic in a few places in the new balanced me
	-->
	
	<listitem>
	<para>
	Improve performance for sorts that exceed work_mem (Heikki Linnakangas)
	</para>
	
	<para>
	Specifically, switch to a batch sorting algorithm that uses more
	output streams internally.
	</para>
	</listitem>
	
	<!--
	Author: David Rowley <drowley@postgresql.org>
	2021-07-22 [91e9e89dc] Make nodeSort.c use Datum sorts for single column sorts
	Author: David Rowley <drowley@postgresql.org>
	2022-04-04 [40af10b57] Use Generation memory contexts to store tuples in sorts
	Author: John Naylor <john.naylor@postgresql.org>
	2022-04-02 [697492434] Specialize tuplesort routines for different kinds of abb
	-->
	
	<listitem>
	<para>
	Improve performance and reduce memory consumption of in-memory
	sorts (Ronan Dunklau, David Rowley, Thomas Munro)
	</para>
	</listitem>

-- 
  Bruce Momjian  <bruce@momjian.us>        https://momjian.us
  EDB                                      https://enterprisedb.com

  Indecision is a decision.  Inaction is an action.  Mark Batterson




Commits

  1. Doc: last minute adjustment to the release notes

  2. Doc: more tweaking of v15 release notes.

  3. Doc: further adjust notes about pg_upgrade_output.d.

  4. Doc: add list of major features to the v15 release notes.

  5. relnotes: update item about public schema permission change

  6. relnotes: update ordered partition scan item

  7. relnotes: add Heikki to UTF8 item

  8. relnotes: improve UTF8 text item in relation to ASCII

  9. relnotes: add null logical replication item

  10. relnotes: adjust several logical replication items and FK text

  11. relnotes: mention non-exclusive backup mode was deprecated

  12. relnotes: add author to in-memory sorts item

  13. relnotes: update for non-exclusive backup mode removal

  14. relnote: improve sorting entries

  15. relnotes: adjustments from Álvaro Herrera

  16. relnotes: update foreign key partition and add sort items

  17. relnotes: more adjustments

  18. relnotes: logical replication permissions checked by subscrib.

  19. relnotes: adjustments

  20. relnotes: remove sequence replication and update 'postgres -C'

  21. relnote: extensive updates

  22. relnotes: "training" -> "trailing"

  23. Standardize references to Zstandard as <productname>

  24. pgstat: Update docs to match the shared memory stats reality.

  25. Raise a WARNING for missing publications.

  26. Skip empty transactions for logical replication.

  27. Optionally disable subscriptions on error.

  28. Allow root-owned SSL private keys in libpq, not only the backend.

  29. Use COPY FREEZE in pgbench for faster benchmark table population.