Re: Move pg_attribute.attcompression to earlier in struct for reduced size?
Michael Paquier <michael@paquier.xyz>
From: Michael Paquier <michael@paquier.xyz>
To: Alvaro Herrera <alvherre@alvh.no-ip.org>
Cc: Tom Lane <tgl@sss.pgh.pa.us>, Robert Haas <robertmhaas@gmail.com>, Dilip Kumar <dilipbalaut@gmail.com>, Andres Freund <andres@anarazel.de>, pgsql-hackers <pgsql-hackers@postgresql.org>
Date: 2021-06-09T03:24:57Z
Lists: pgsql-hackers
On Tue, Jun 08, 2021 at 10:39:24AM -0400, Alvaro Herrera wrote: > My unverified guess is that this code causes too many pipeline stalls > while executing the big per-column loop. Maybe it would be better to > scan the attribute array twice: one to collect all data from > Form_pg_attribute for each column into nicely packed arrays, then in a > second loop process all the recompressions together ... the idea being > that the first loop can run without stalling. You mean for attlen and attcompression, right? I agree that it would help. A extra set of things worth it here would be to move the allocation and memset(0) of values_free from reform_and_rewrite_tuple(), and do the round of pfree() calls if at least one value has been detoasted. > Maybe at this point reverting is the only solution. That's a safe bet at this point. It would be good to conclude this one by beta2 IMO. -- Michael
Commits
-
Remove forced toast recompression in VACUUM FULL/CLUSTER
- dbab0c07e5ba 14.0 landed
-
Rethink definition of pg_attribute.attcompression.
- e6241d8e030f 14.0 landed
-
Fix memory leak when de-toasting compressed values in VACUUM FULL/CLUSTER
- fb0f5f0172ed 14.0 landed
-
Re-order pg_attribute columns to eliminate some padding space.
- f5024d8d7b04 14.0 landed
-
Add more TAP tests for pg_dump with attribute compression
- 63db0ac3f9e6 14.0 cited