• Fujii Masao's avatar
    Make DROP DATABASE command generate less WAL records. · e6d80695
    Fujii Masao authored
    Previously DROP DATABASE generated as many XLOG_DBASE_DROP WAL records
    as the number of tablespaces that the database to drop uses. This caused
    the scans of shared_buffers as many times as the number of the tablespaces
    during recovery because WAL replay of one XLOG_DBASE_DROP record needs
    that full scan. This could make the recovery time longer especially
    when shared_buffers is large.
    
    This commit changes DROP DATABASE so that it generates only one
    XLOG_DBASE_DROP record, and registers the information of all the tablespaces
    into it. Then, WAL replay of XLOG_DBASE_DROP record needs full scan of
    shared_buffers only once, and which may improve the recovery performance.
    
    Author: Fujii Masao
    Reviewed-by: Kirk Jamison, Simon Riggs
    Discussion: https://postgr.es/m/CAHGQGwF8YwNH0ZaL+2wjZPkj+ji9UhC+Z4ScnG97WKtVY5L9iw@mail.gmail.com
    e6d80695
dbasedesc.c 1.4 KB