• unknown's avatar
    WL#3071 Maria checkpoint · 7199c905
    unknown authored
    - cleanups, simplifications
    - moving the construction of the "dirty pages table" into the
    pagecache where it belongs (because it's the pagecache which knows
    dirty pages). TODO: do the same soon for the "transactions table".
    - fix for a small bug in the pagecache (decrementation of "changed_blocks")
    
    
    include/pagecache.h:
      prototype
    mysys/mf_pagecache.c:
      m_string.h moves up for LEX_STRING to be known for pagecache.h.
      In pagecache_delete_page(), we must decrement "blocks_changed" even
      if we just delete the page without flushing it.
      A new function pagecache_collect_changed_blocks_with_LSN()
      (used by the Checkpoint module), which stores information about the
      changed blocks (a.k.a. "the dirty pages table") into a LEX_STRING.
      This function is not tested now, it will be when there is a Checkpoint.
    storage/maria/ma_checkpoint.c:
      refining the checkpoint code: factoring functions, moving the
      construction of the "dirty pages table" into mf_pagecache.c
      (I'll do the same with the construction of the "transactions table"
      once Serg tells me what's the best way to do it).
    storage/maria/ma_least_recently_dirtied.c:
      Simplifying the thread which does background flushing of
      least-recently-dirtied pages:
      - in first version that thread will not flush, just do checkpoints
      - in 2nd version, flushing should re-use existing page cache functions
      like flush_pagecache_blocks().
    unittest/mysys/test_file.h:
      m_string.h moves up for LEX_STRING to be known in pagecache.h
    7199c905
ma_least_recently_dirtied.c 4.04 KB