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

Write removed dirty page during replacement without holding segment write lock

    XMLWordPrintableJSON

Details

    • Improvement
    • Status: Resolved
    • Major
    • Resolution: Fixed
    • None
    • 2.5
    • persistence
    • None

    Description

      If a dirty page under the checkpoint is found, following is suggested

      • copy it to the local thread buffer,
      • and then after performing all actions in region for evicting the page
      • finish execution allocatePage()/acquirePage()
      • unlock segment to allow other workers to operate
      • perform the pwrite() call based on the data from local buffer

      Now if page eviction started there is possible drops to 0 put/seconds in case a lot of threads are watiting for same segment lock.

      Attachments

        1. chart_holdingLock.png
          26 kB
          Dmitry Pavlov
        2. chart_notHoldingLock.png
          23 kB
          Dmitry Pavlov
        3. chart_notHoldingLock2.png
          22 kB
          Dmitry Pavlov
        4. putdumpAt17second.txt
          15 kB
          Dmitry Pavlov

        Issue Links

          Activity

            People

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

              Dates

                Created:
                Updated:
                Resolved: