Re: Improve eviction algorithm in ReorderBuffer
Masahiko Sawada <sawada.mshk@gmail.com>
From: Masahiko Sawada <sawada.mshk@gmail.com>
To: Amit Kapila <amit.kapila16@gmail.com>
Cc: Dilip Kumar <dilipbalaut@gmail.com>, PostgreSQL Hackers <pgsql-hackers@lists.postgresql.org>
Date: 2023-12-20T01:19:02Z
Lists: pgsql-hackers
On Tue, Dec 19, 2023 at 8:02 PM Amit Kapila <amit.kapila16@gmail.com> wrote: > > On Tue, Dec 19, 2023 at 8:31 AM Masahiko Sawada <sawada.mshk@gmail.com> wrote: > > > > On Sun, Dec 17, 2023 at 11:40 AM Amit Kapila <amit.kapila16@gmail.com> wrote: > > > > > > > > > The individual transactions shouldn't cross > > > 'logical_decoding_work_mem'. I got a bit confused by your proposal to > > > maintain the lists: "...splitting it into two lists: transactions > > > consuming 5% < and 5% >= of the memory limit, and checking the 5% >= > > > list preferably.". In the previous sentence, what did you mean by > > > transactions consuming 5% >= of the memory limit? I got the impression > > > that you are saying to maintain them in a separate transaction list > > > which doesn't seems to be the case. > > > > I wanted to mean that there are three lists in total: the first one > > maintain the transactions consuming more than 10% of > > logical_decoding_work_mem, > > > > How can we have multiple transactions in the list consuming more than > 10% of logical_decoding_work_mem? Shouldn't we perform serialization > before any xact reaches logical_decoding_work_mem? Well, suppose logical_decoding_work_mem is set to 64MB, transactions consuming more than 6.4MB are added to the list. So for example, it's possible that the list has three transactions each of which are consuming 10MB while the total memory usage in the reorderbuffer is still 30MB (less than logical_decoding_work_mem). Regards, -- Masahiko Sawada Amazon Web Services: https://aws.amazon.com
Commits
-
Revert indexed and enlargable binary heap implementation.
- 810f64a01567 17.0 landed
-
Replace binaryheap + index with pairingheap in reorderbuffer.c
- efb8acc0d058 17.0 landed
-
Improve eviction algorithm in ReorderBuffer using max-heap for many subtransactions.
- 5bec1d6bc5e3 17.0 landed
-
Add functions to binaryheap for efficient key removal and update.
- b84050864415 17.0 landed
-
Make binaryheap enlargeable.
- bcb14f4abca0 17.0 landed