• Heikki Linnakangas's avatar
    Remove extra copies of LogwrtResult. · 7714c638
    Heikki Linnakangas authored
    This simplifies the code a little bit. The new rule is that to update
    XLogCtl->LogwrtResult, you must hold both WALWriteLock and info_lck, whereas
    before we had two copies, one that was protected by WALWriteLock and another
    protected by info_lck. The code that updates them was already holding both
    locks, so merging the two is trivial.
    
    The third copy, XLogCtl->Insert.LogwrtResult, was not totally redundant, it
    was used in AdvanceXLInsertBuffer to update the backend-local copy, before
    acquiring the info_lck to read the up-to-date value. But the value of that
    seems dubious; at best it's saving one spinlock acquisition per completed
    WAL page, which is not significant compared to all the other work involved.
    And in practice, it's probably not saving even that much.
    7714c638
xlog.c 313 KB