pgsql: Replace binaryheap + index with pairingheap in reorderbuffer.c - Mailing list pgsql-committers

From Masahiko Sawada
Subject pgsql: Replace binaryheap + index with pairingheap in reorderbuffer.c
Date
Msg-id E1rupQq-001ZCJ-Fq@gemulon.postgresql.org
Whole thread Raw
List pgsql-committers
Replace binaryheap + index with pairingheap in reorderbuffer.c

A pairing heap can perform the same operations as the binary heap +
index, with as good or better algorithmic complexity, and that's an
existing data structure so that we don't need to invent anything new
compared to v16. This commit makes the new binaryheap functionality
that was added in commits b840508644 and bcb14f4abc unnecessary, but
they will be reverted separately.

Remove the optimization to only build and maintain the heap when the
amount of memory used is close to the limit, becuase the bookkeeping
overhead with the pairing heap seems to be small enough that it
doesn't matter in practice.

Reported-by: Jeff Davis
Author: Heikki Linnakangas
Reviewed-by: Michael Paquier, Hayato Kuroda, Masahiko Sawada
Discussion: https://postgr.es/m/12747c15811d94efcc5cda72d6b35c80d7bf3443.camel%40j-davis.com

Branch
------
master

Details
-------
https://git.postgresql.org/pg/commitdiff/efb8acc0d05894e0c6c20dfc00513b53098780f0

Modified Files
--------------
src/backend/replication/logical/reorderbuffer.c | 191 +++---------------------
src/include/replication/reorderbuffer.h         |   9 +-
2 files changed, 30 insertions(+), 170 deletions(-)


pgsql-committers by date:

Previous
From: Michael Paquier
Date:
Subject: Re: pgsql: Fix race leading to incorrect conflict cause in InvalidatePossib
Next
From: Masahiko Sawada
Date:
Subject: pgsql: Revert indexed and enlargable binary heap implementation.