Done
Details
Assignee
Laurynas BiveinisLaurynas Biveinis(Deactivated)Reporter
Laurynas BiveinisLaurynas Biveinis(Deactivated)Labels
Time tracking
36m loggedFix versions
Priority
Medium
Details
Details
Assignee
Laurynas Biveinis
Laurynas Biveinis(Deactivated)Reporter
Laurynas Biveinis
Laurynas Biveinis(Deactivated)Labels
Time tracking
36m logged
Fix versions
Priority
Smart Checklist
Smart Checklist
Smart Checklist
Created February 12, 2018 at 4:15 AM
Updated March 2, 2018 at 2:27 PM
Resolved February 20, 2018 at 2:25 PM
https://perconadev.atlassian.net/browse/PS-3360#icft=PS-3360 was developed when LRU flusher was performed by the page cleaners, before its flushing was split to separate threads. Now its logic is outdated and the comment invalid:
diff --git a/storage/innobase/buf/buf0flu.cc b/storage/innobase/buf/buf0flu.cc index c7672a6137e..443740ac200 100644 --- a/storage/innobase/buf/buf0flu.cc +++ b/storage/innobase/buf/buf0flu.cc @@ -3385,7 +3385,13 @@ DECLARE_THREAD(buf_flush_page_cleaner_coordinator)( n_flushed = n_processed_lru; - if (ut_time_ms() > next_loop_time) + if (ut_time_ms() > next_loop_time + && ret_sleep != OS_SYNC_TIME_EXCEEDED) + + /* If our LRU flush took too long, skip the rest only + if the last iteration completed in time, otherwise we'd + be LRU flushing all the time, even if e.g. a sync flush + is waiting. */ ret_sleep = OS_SYNC_TIME_EXCEEDED; else if (ret_sleep != OS_SYNC_TIME_EXCEEDED && srv_flush_sync
Analyze and revert.