Thread

  1. Re: Disabling Heap-Only Tuples

    Thom Brown <thom@linux.com> — 2023-07-19T13:13:41Z

    On Wed, 19 Jul 2023, 13:58 Laurenz Albe, <laurenz.albe@cybertec.at> wrote:
    
    > On Thu, 2023-07-06 at 22:18 +0200, Matthias van de Meent wrote:
    > > On Wed, 5 Jul 2023 at 19:55, Thom Brown <thom@linux.com> wrote:
    > > >
    > > > On Wed, 5 Jul 2023 at 18:05, Matthias van de Meent
    > > > <boekewurm+postgres@gmail.com> wrote:
    > > > > So what were you thinking of? A session GUC? A table option?
    > > >
    > > > Both.
    > >
    > > Here's a small patch implementing a new table option max_local_update
    > > (name very much bikesheddable). Value is -1 (default, disabled) or the
    > > size of the table in MiB that you still want to allow to update on the
    > > same page. I didn't yet go for a GUC as I think that has too little
    > > control on the impact on the system.
    > >
    > > I decided that max_local_update would be in MB because there is no
    > > reloption value that can contain MaxBlockNumber and -1/disabled; and 1
    > > MiB seems like enough granularity for essentially all use cases.
    > >
    > > The added regression tests show how this feature works, that the new
    > > feature works, and validate that lock levels are acceptable
    > > (ShareUpdateExclusiveLock, same as for updating fillfactor).
    >
    > I have looked at your patch, and I must say that I like it.  Having
    > a size limit is better than my original idea of just "on" or "off".
    > Essentially, it is "try to shrink the table if it grows above a limit".
    >
    > The patch builds fine and passes all regression tests.
    >
    > Documentation is missing.
    >
    > I agree that the name "max_local_update" could be improved.
    > Perhaps "avoid_hot_above_size_mb".
    >
    
    Or "hot_table_size_threshold" or "hot_update_limit"?
    
    Thom