Re: Ensuring hash tuples are properly maxaligned - Mailing list pgsql-hackers

From Andres Freund
Subject Re: Ensuring hash tuples are properly maxaligned
Date
Msg-id 20180103014355.52an4fgwigdzhzxh@alap3.anarazel.de
Whole thread Raw
In response to Re: Ensuring hash tuples are properly maxaligned  (Tom Lane <tgl@sss.pgh.pa.us>)
Responses Re: Ensuring hash tuples are properly maxaligned
List pgsql-hackers
On 2018-01-02 20:40:50 -0500, Tom Lane wrote:
> Andres Freund <andres@anarazel.de> writes:
> > On 2018-01-03 14:29:15 +1300, Thomas Munro wrote:
> >> On Wed, Jan 3, 2018 at 2:20 PM, Tom Lane <tgl@sss.pgh.pa.us> wrote:
> >>> Andres Freund <andres@anarazel.de> writes:
> >>> But note that dsa_pointer can be wider than a regular pointer on
> >>> platforms without atomics support.
> 
> >>> Hm.  I did not get that impression from the comments in dsa.h,
> >>> but if it's true then this approach won't work --- and indeed the
> >>> hash code would be actively broken in such a case, so it's a problem
> >>> we must fix.
> 
> >> Maybe Andres is thinking of dsa_pointer_atomic?  dsa_pointer is
> >> normally the size of a pointer (well, really, the size of size_t),
> >> though it could be *narrower* if you don't have atomics or ask for it
> >> with USE_SMALL_DSA_POINTER
> 
> > Yep, I was.
> 
> OK, then there's not a live bug, but I'm a bit tempted to get rid of
> the data[] member anyway.  It's not clear to me now that keeping it
> results in net cleaner code.  Thoughts?

I like that plan. I don't think the data field buys us anything, and I
personally in most cases find "fully manual" alignment code easier to
reason about than fiddling with padding fields.

Greetings,

Andres Freund


pgsql-hackers by date:

Previous
From: Gerdan Rezende dos Santos
Date:
Subject: Re: CFM for January commitfest?
Next
From: Tom Lane
Date:
Subject: Re: Ensuring hash tuples are properly maxaligned