-
Shaohua Wang authored
Analysis: We have a checkpoint at the end of bulk load to flush all dirty pages to disk, because we disable redo logging for bulk load. It works well for big table, but not for small table in heavy work load. Solution: Only flush the dirty pages modified by the bulk load. the main idea is to set a flush observer to these dirty pages when committing mtr during a bulk load. When a page is submitted to flush or a page is flushed to disk, it notifies the observer. We scan flush list in buffer pool and flush dirty pages with the observer at the end of the bulk load, and wait for all the flushes to finish. Reviewed-by:
Jimmy Yang <jimmy.yang@oracle.com> RB: 8238
Shaohua Wang authoredAnalysis: We have a checkpoint at the end of bulk load to flush all dirty pages to disk, because we disable redo logging for bulk load. It works well for big table, but not for small table in heavy work load. Solution: Only flush the dirty pages modified by the bulk load. the main idea is to set a flush observer to these dirty pages when committing mtr during a bulk load. When a page is submitted to flush or a page is flushed to disk, it notifies the observer. We scan flush list in buffer pool and flush dirty pages with the observer at the end of the bulk load, and wait for all the flushes to finish. Reviewed-by:
Jimmy Yang <jimmy.yang@oracle.com> RB: 8238
Loading