Uploaded image for project: 'Ignite'
  1. Ignite
  2. IGNITE-7533

Throttle writting threads according fsync progress and checkpoint writting speed instead of region fill

    XMLWordPrintableJSON

Details

    • Improvement
    • Status: Resolved
    • Major
    • Resolution: Fixed
    • 2.3
    • 2.5
    • persistence
    • 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

        1. image (2).png
          89 kB
          Dmitry Pavlov
        2. imageRatioBased.png
          40 kB
          Dmitry Pavlov
        3. imageSpeedBased.png
          61 kB
          Dmitry Pavlov

        Issue Links

          Activity

            People

              dpavlov Dmitry Pavlov
              dpavlov Dmitry Pavlov
              Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: