Hi, On 2024-02-19 13:54:01 -0500, Joe Conway wrote: > On 2/19/24 13:13, Andres Freund wrote: > > On 2024-02-19 09:19:16 -0500, Joe Conway wrote: > > > Couldn't we scale the rounding, e.g. allow small allocations as we do now, > > > but above some number always round? E.g. maybe >= 2GB round to the nearest > > > 256MB, >= 4GB round to the nearest 512MB, >= 8GB round to the nearest 1GB, > > > etc? > > > > That'd make the translation considerably more expensive. Which is important, > > given how common an operation this is. > > > Perhaps it is not practical, doesn't help, or maybe I misunderstand, but my > intent was that the rounding be done/enforced when setting the GUC value > which surely cannot be that often.
It'd be used for something like WhereIsTheChunkOfBuffers[buffer/CHUNK_SIZE]+(buffer%CHUNK_SIZE)*BLCKSZ; If CHUNK_SIZE isn't a compile time constant this gets a good bit more expensive. A lot more, if implemented naively (i.e as actual modulo/division operations, instead of translating to shifts and masks). Greetings, Andres Freund