• Heikki Linnakangas's avatar
    Update FSM on WAL replay. This is a bit limited; the FSM is only updated · e9816533
    Heikki Linnakangas authored
    on non-full-page-image WAL records, and quite arbitrarily, only if there's
    less than 20% free space on the page after the insert/update (not on HOT
    updates, though). The 20% cutoff should avoid most of the overhead, when
    replaying a bulk insertion, for example, while ensuring that pages that
    are full are marked as full in the FSM.
    
    This is mostly to avoid the nasty worst case scenario, where you replay
    from a PITR archive, and the FSM information in the base backup is really
    out of date. If there was a lot of pages that the outdated FSM claims to
    have free space, but don't actually have any, the first unlucky inserter
    after the recovery would traverse through all those pages, just to find
    out that they're full. We didn't have this problem with the old FSM
    implementation, because we simply threw the FSM information away on a
    non-clean shutdown.
    e9816533
heapam.c 137 KB