Re: Make tuple deformation faster
Andres Freund <andres@anarazel.de>
From: Andres Freund <andres@anarazel.de>
To: Jeff Davis <pgsql@j-davis.com>
Cc: James Hunter <james.hunter.pg@gmail.com>, David Rowley <dgrowleyml@gmail.com>,
Matthias van de Meent <boekewurm+postgres@gmail.com>, PostgreSQL Developers <pgsql-hackers@lists.postgresql.org>
Date: 2025-03-05T21:17:25Z
Lists: pgsql-hackers
Hi, On 2025-03-05 12:15:57 -0800, Jeff Davis wrote: > On Wed, 2025-03-05 at 11:33 -0800, James Hunter wrote: > > For a bitfield, however, the CPU has to read from or write to the > > byte > > that contains the bit, but then it also has to mask out the *other* > > bits in that bitfield. This is a data dependency, so it stalls the > > CPU > > pipeline. > > Here the bits aren't changing, so we're only talking about mask-and- > test, right? My intuition is that wouldn't cause much of a problem. FWIW, I am fairly certain that I looked at this at an earlier state of the patch, and at least for me the issue wasn't that it was inherently slower to use the bitmask, but that it was hard to convince the compiler not generate worse code. IIRC the compiler generated more complicated address gathering instructions which are slower on some older microarchitectures, but this is a vague memory. Greetings, Andres
Commits
Same data as JSON:
GET /api/v1/messages/:b64id/commits
the thread's linked commits as JSON, with link sources.
API reference →
-
Fix possible Assert failure in verify_compact_attribute()
- 33b06a20016d 18.0 landed
-
Speedup tuple deformation with additional function inlining
- 58a359e585d0 18.0 landed
-
Fix race condition in TupleDescCompactAttr assert code
- 6f3820f37aba 18.0 landed
-
Optimize alignment calculations in tuple form/deform
- db448ce5ad36 18.0 landed
-
Remove pg_attribute.attcacheoff column
- 02a8d0c45253 18.0 landed
-
Introduce CompactAttribute array in TupleDesc, take 2
- 5983a4cffc31 18.0 landed
-
Introduce CompactAttribute array in TupleDesc
- d28dff3f6cd6 18.0 landed
-
Use TupleDescAttr macro consistently
- 65b71dec2d57 18.0 landed