• Marko Mäkelä's avatar
    MDEV-22110 InnoDB unnecessarily writes unmodified pages · 05fa4558
    Marko Mäkelä authored
    At least since commit 6a7be48b
    InnoDB appears to be invoking buf_flush_note_modification() on pages
    that were exclusively latched but not modified in a mini-transaction.
    
    MTR_MEMO_MODIFY, mtr_t::modify(): Define not only in debug code,
    but also in release code. We will set the MTR_MEMO_MODIFY flag
    on the earliest mtr_t::m_memo entry that we find.
    
    MTR_LOG_NONE: Only use this mode in cases where the previous
    mode will be restored before anything is modified in the mini-transaction.
    
    MTR_MEMO_PAGE_X_MODIFY, MTR_MEMO_PAGE_SX_MODIFY: The allowed flag
    combinations that include MTR_MEMO_MODIFY.
    
    ReleaseBlocks: Only invoke buf_flush_note_modification()
    on those buffer pool blocks on which mtr_t::set_modified()
    and mtr_t::modify() were invoked.
    05fa4558
mtr0mtr.h 25.2 KB