• marko's avatar
    branches/zip: Replace the constant 3/8 ratio that controls the LRU_old · 0f7895d4
    marko authored
    size with the settable global variable innodb_old_blocks_pct. The
    minimum and maximum values are 5 and 95 per cent, respectively. The
    default is 100*3/8, in line with the old behavior.
    
    ut_time_ms(): New utility function, to return the current time in
    milliseconds. TODO: Is there a more efficient timestamp function, such
    as rdtsc divided by a power of two?
    
    buf_LRU_old_threshold_ms: New variable, corresponding to
    innodb_old_blocks_time. The value 0 is the default behaviour: no
    timeout before making blocks 'new'.
    
    bpage->accessed, bpage->LRU_position, buf_pool->ulint_clock: Remove.
    
    bpage->access_time: New field, replacing bpage->accessed. Protected by
    buf_pool_mutex instead of bpage->mutex. Updated when a page is created
    or accessed the first time in the buffer pool.
    
    buf_LRU_old_ratio, innobase_old_blocks_pct: New variables,
    corresponding to innodb_old_blocks_pct
    
    buf_LRU_old_ratio_update(), innobase_old_blocks_pct_update(): Update
    functions for buf_LRU_old_ratio, innobase_old_blocks_pct.
    
    buf_page_peek_if_too_old(): Compare ut_time_ms() to bpage->access_time
    if buf_LRU_old_threshold_ms && bpage->old.  Else observe
    buf_LRU_old_ratio and bpage->freed_page_clock.
    
    buf_pool_t: Add n_pages_made_young, n_pages_not_made_young,
    n_pages_made_young_old, n_pages_not_made_young, for statistics.
    
    buf_print(): Display buf_pool->n_pages_made_young,
    buf_pool->n_pages_not_made_young.  This function is only for crash
    diagnostics.
    
    buf_print_io(): Display buf_pool->LRU_old_len and quantities derived
    from buf_pool->n_pages_made_young, buf_pool->n_pages_not_made_young.
    This function is invoked by SHOW ENGINE INNODB STATUS.
    
    rb://129 approved by Heikki Tuuri.  This addresses Bug #45015.
    0f7895d4
buf0buf.ic 27.2 KB