[patch 045/129] Merge patch for revision 1833 from InnoDB SVN:
revno: 1833
revision-id: svn-v4:16c675df-0fcb-4bc9-8058-dcc011a37293:branches/zip:5825
parent: svn-v4:16c675df-0fcb-4bc9-8058-dcc011a37293:branches/zip:5822
committer: marko
timestamp: Thu 2009-09-10 09:47:09 +0000
message:
branches/zip: Reduce mutex contention that was introduced when
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
modified:
buf/buf0buf.c 2@16c675df-0fcb-4bc9-8058-dcc011a37293:trunk%2Fbuf%2Fbuf0buf.c
include/buf0buf.h 2@16c675df-0fcb-4bc9-8058-dcc011a37293:trunk%2Finclude%2Fbuf0buf.h
include/buf0buf.ic 2@16c675df-0fcb-4bc9-8058-dcc011a37293:trunk%2Finclude%2Fbuf0buf.ic
diff:
=== modified file 'buf/buf0buf.c'