From: | John Naylor <john(dot)naylor(at)enterprisedb(dot)com> |
---|---|
To: | Quan Zongliang <quanzongliang(at)yeah(dot)net> |
Cc: | pgsql-hackers <pgsql-hackers(at)postgresql(dot)org> |
Subject: | Re: Improving the heapgetpage function improves performance in common scenarios |
Date: | 2023-09-05 08:15:55 |
Message-ID: | CAFBsxsHd1NajmezF8rReBoPfxxgi2GuyObni4kWmo8gWKPm3mg@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
On Thu, Aug 24, 2023 at 5:55 PM Quan Zongliang <quanzongliang(at)yeah(dot)net>
wrote:
> In the function heapgetpage. If a table is not updated very frequently.
> Many actions in tuple loops are superfluous. For all_visible pages,
> loctup does not need to be assigned, nor does the "valid" variable.
> CheckForSerializableConflictOutNeeded from
> HeapCheckForSerializableConflictOut function, it only need to inspect at
Thanks for submitting! A few weeks before this, there was another proposal,
which specializes code for all paths, not just one. That patch also does so
without duplicating the loop:
https://www.postgresql.org/message-id/20230716015656.xjvemfbp5fysjiea@awork3.anarazel.de
> the beginning of the cycle only once. Using vtune you can clearly see
> the result (attached heapgetpage.jpg).
>
> So by splitting the loop logic into two parts, the vtune results show
> significant improvement (attached heapgetpage-allvis.jpg).
For future reference, it's not clear at all from the screenshots what the
improvement will be for the user. In the above thread, the author shares
testing methodology as well as timing measurements. This is useful for
reproducibilty, as well as convincing others that the change is important.
--
John Naylor
EDB: http://www.enterprisedb.com
From | Date | Subject | |
---|---|---|---|
Next Message | tender wang | 2023-09-05 08:52:35 | Should consider materializing the cheapest inner path in consider_parallel_nestloop() |
Previous Message | Dilip Kumar | 2023-09-05 08:15:28 | Re: persist logical slots to disk during shutdown checkpoint |