• Marko Mäkelä's avatar
    MDEV-15529 IMPORT TABLESPACE unnecessarily uses the doublewrite buffer · 112df069
    Marko Mäkelä authored
    fil_space_t::atomic_write_supported: Always set this flag for
    TEMPORARY TABLESPACE and during IMPORT TABLESPACE. The page
    writes during these operations are by definition not crash-safe
    because they are not written to the redo log.
    
    fil_space_t::use_doublewrite(): Determine if doublewrite should
    be used.
    
    buf_dblwr_update(): Add assertions, and let the caller check whether
    doublewrite buffering is desired.
    
    buf_flush_write_block_low(): Disable the doublewrite buffer for
    the temporary tablespace and for IMPORT TABLESPACE.
    
    fil_space_set_imported(), fil_node_open_file(), fil_space_create():
    Initialize or revise the space->atomic_write_supported flag.
    
    buf_page_io_complete(), buf_flush_write_complete(): Add the parameter
    dblwr, to indicate whether doublewrite was used for writes.
    
    buf_dblwr_sync_datafiles(): Remove an unnecessary flush of
    persistent tablespaces when flushing temporary tablespaces.
    (Move the call to buf_dblwr_flush_buffered_writes().)
    112df069
buf0dblwr.cc 36.5 KB