Re: [BUG] Failed Assertion in ReorderBufferChangeMemoryUpdate()

Dilip Kumar <dilipbalaut@gmail.com>

From: Dilip Kumar <dilipbalaut@gmail.com>
To: "Drouvot, Bertrand" <bdrouvot@amazon.com>
Cc: Amit Kapila <amit.kapila16@gmail.com>, PostgreSQL Hackers <pgsql-hackers@lists.postgresql.org>
Date: 2021-09-06T15:43:50Z
Lists: pgsql-hackers
On Mon, Sep 6, 2021 at 8:54 PM Drouvot, Bertrand <bdrouvot@amazon.com>
wrote:

> Thanks for your feedback!
>
> That seems indeed more logical, so I see 3 options to do so:
>
>  1) Add a new API say ReorderBufferChangeMemorySubstractSize() (with a
> Size as one parameter) and make use of it in ReorderBufferToastReplace()
>
>  2) Add a new "Size" parameter to ReorderBufferChangeMemoryUpdate(), so
> that if this parameter is > 0 then it would be used instead of "sz =
> ReorderBufferChangeSize(change)"
>
>  3) Do the substraction directly into ReorderBufferToastReplace() without
> any API
>
> I'm inclined to go for option 2), what do you think?
>
Yet another option could be to create a new API say
ReorderBufferReplaceChangeMemoryUpdate(), which takes, 2 parameters,
oldchange, and newchange as inputs, it will compute the difference and
add/subtract that size.  Logically, that is what we are actually trying to
do right? i.e. replacing old change with the new change.

-- 
Regards,
Dilip Kumar
EnterpriseDB: http://www.enterprisedb.com

Commits

  1. Fix reorder buffer memory accounting for toast changes.