> On 26 Jul 2024, at 14:30, Andreas Karlsson <andr...@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 LSN when the index build completes 
> and while that normally should be the case we will have a almost never 
> exercised code path for 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 index which starts at FirstNormalUnloggedLSN. This would give us 
> slightly less contention plus decrease the risk (for good and 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.

Reply via email to