• Fujii Masao's avatar
    Speedup truncations of relation forks. · 6d05086c
    Fujii Masao authored
    When a relation is truncated, shared_buffers needs to be scanned
    so that any buffers for the relation forks are invalidated in it.
    Previously, shared_buffers was scanned for each relation forks, i.e.,
    MAIN, FSM and VM, when VACUUM truncated off any empty pages
    at the end of relation or TRUNCATE truncated the relation in place.
    Since shared_buffers needed to be scanned multiple times,
    it could take a long time to finish those commands especially
    when shared_buffers was large.
    
    This commit changes the logic so that shared_buffers is scanned only
    one time for those three relation forks.
    
    Author: Kirk Jamison
    Reviewed-by: Masahiko Sawada, Thomas Munro, Alvaro Herrera, Takayuki Tsunakawa and Fujii Masao
    Discussion: https://postgr.es/m/D09B13F772D2274BB348A310EE3027C64E2067@g01jpexmbkw24
    6d05086c
visibilitymap.h 1.8 KB