• marko's avatar
    branches/zip: Reduce mutex contention that was introduced when · 3bd1a9fb
    marko authored
    addressing Bug #45015 (Issue #316), in r5703.
    
    buf_page_set_accessed_make_young(): New auxiliary function, called by
    buf_page_get_zip(), buf_page_get_gen(),
    buf_page_optimistic_get_func(). Call ut_time_ms() outside of
    buf_pool_mutex. Use cached access_time.
    
    buf_page_set_accessed(): Add the parameter time_ms, so that
    ut_time_ms() need not be called while holding buf_pool_mutex.
    
    buf_page_optimistic_get_func(), buf_page_get_known_nowait(): Read
    buf_page_t::access_time without holding buf_pool_mutex. This should be
    OK, because the field is only used for heuristic purposes.
    
    buf_page_peek_if_too_old(): If buf_pool->freed_page_clock == 0, return
    FALSE, so that we will not waste time moving blocks in the LRU list in
    the warm-up phase or when the workload fits in the buffer pool.
    
    rb://156 approved by Sunny Bains
    3bd1a9fb
buf0buf.c 107 KB