Details
-
Improvement
-
Status: Resolved
-
Major
-
Resolution: Fixed
-
2.3
-
None
Description
Throttling implemented under IGNITE-6334 is based on region fill percentage (ditry pages ratio) and current checkpoint progress.
But actual progress of writting is based on write operation complete, but not on fsync() complete.
Suppose following stage of CP is currently running: most of data is being written and fsync is started. Fsync on experiments requires more time than write, but throttling is disabled for that stage. There is enough time to unthrottled grid to fill remaining 16% of clear pages to get sufficient 75% of dirty pages and writes stops.
Fsync progress is to be included in checkpoint progress, but actual fsync progress reported by OS is irregular both on Linux and Windows. See picture, green line is fsync progress, and yellow is write complete.
Because fsync progress reported is not regular (the differences are 3-4 orders of magnitude) it is suggested to implement new speed based throttling policy.
Attachments
Attachments
Issue Links
- is related to
-
IGNITE-7584 Smooth decrease WAL write speed if low work segments left
- Resolved
- relates to
-
IGNITE-7175 Throttling is not applied to page allocation
- Resolved
-
IGNITE-6334 Throttle writing threads during ongoing checkpoint with token bucket algorithm
- Resolved
- links to