> On 26 Jul 2024, at 14:30, Andreas Karlsson <andreas@proxel.se> wrote:
>
> I feel the tricky part about doing that is that we need to make sure the fake LSNs are all less than the current real
LSNwhen the index build completes and while that normally should be the case we will have a almost never exercised code
pathfor when the fake LSN becomes bigger than the real LSN which may contain bugs. Is that really worth it to optimize.
>
> But if we are going to use fake LSN: since the index being built is not visible to any scans we do not have to use
GetFakeLSNForUnloggedRel()but could use an own counter in shared memory in the GISTShared struct for this specific
indexwhich starts at FirstNormalUnloggedLSN. This would give us slightly less contention plus decrease the risk (for
goodand bad) of the fake LSN being larger than the real LSN.
+1 for atomic counter in GISTShared.
BTW we can just reset LSNs to GistBuildLSN just before doing log_newpage_range().
Best regards, Andrey Borodin.