Uploaded image for project: 'WiredTiger'
  1. WiredTiger
  2. WT-2127

Occasional slow operations due to waiting for page

    Details

    • Type: Bug
    • Status: Resolved
    • Priority: Major - P3
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: WT2.7.0
    • Labels:
      None
    • # Replies:
      14
    • Last comment by Customer:
      true

      Description

      In a workload that spreads many updates in a random fashion across tables in different databases, I'm seeing occasional slow search operations from WiredTiger. The definition of slow here is more than a second.

      What I'm seeing is that a thread that is co-opted into doing an eviction ends up waiting in __split_parent to add the newly split pages into the in-memory internal page.

      1. t.c
        2 kB
        Keith Bostic

        Issue Links

          Activity

          Hide
          alexander.gorrod Alexander Gorrod added a comment -

          when it passes WT_SPLIT_DEEPEN_MIN_CHILD_DEF entries, but maybe there's something else going on here

          The old code would only split once the page had both exceeded the minimum child constraint and exceeded memory page max.

          An append-only workload makes it hard to split evenly without rebalancing the tree; there's some magic in the split_deepen code to try and fight that off, but there's only so much you can do

          Ack. I've attempted to understand that code without much luck. I'll need to dig deeper to see why it isn't working as I expect.

          Show
          alexander.gorrod Alexander Gorrod added a comment - when it passes WT_SPLIT_DEEPEN_MIN_CHILD_DEF entries, but maybe there's something else going on here The old code would only split once the page had both exceeded the minimum child constraint and exceeded memory page max. An append-only workload makes it hard to split evenly without rebalancing the tree; there's some magic in the split_deepen code to try and fight that off, but there's only so much you can do Ack. I've attempted to understand that code without much luck. I'll need to dig deeper to see why it isn't working as I expect.
          Hide
          alexander.gorrod Alexander Gorrod added a comment -

          I was confused about the output, the 860,000 is the page size. The root page has around 75,000 entries when it splits. Which is still a lot, but an order of magnitude less concerning.

          Show
          alexander.gorrod Alexander Gorrod added a comment - I was confused about the output, the 860,000 is the page size. The root page has around 75,000 entries when it splits. Which is still a lot, but an order of magnitude less concerning.
          Hide
          xgen-internal-githook Githook User added a comment -

          Author:

          {u'username': u'agorrod', u'name': u'Alex Gorrod', u'email': u'alexg@wiredtiger.com'}

          Message: WT-2127 Back out some of a change to split internal pages sooner.

          We aren't doing an awesome job of balancing trees built via append
          workloads, especially when splitting the root. Avoid splitting the
          root until it grows large.

          The work in WT-2182 should help with our tree shape.
          Branch: develop
          https://github.com/wiredtiger/wiredtiger/commit/915d7ee3ad2a9ef07828797ff426cbf3e4d71536

          Show
          xgen-internal-githook Githook User added a comment - Author: {u'username': u'agorrod', u'name': u'Alex Gorrod', u'email': u'alexg@wiredtiger.com'} Message: WT-2127 Back out some of a change to split internal pages sooner. We aren't doing an awesome job of balancing trees built via append workloads, especially when splitting the root. Avoid splitting the root until it grows large. The work in WT-2182 should help with our tree shape. Branch: develop https://github.com/wiredtiger/wiredtiger/commit/915d7ee3ad2a9ef07828797ff426cbf3e4d71536
          Hide
          xgen-internal-githook Githook User added a comment -

          Author:

          {u'username': u'michaelcahill', u'name': u'Michael Cahill', u'email': u'michael.cahill@mongodb.com'}

          Message: Merge pull request #2276 from wiredtiger/backout-split-sooner

          WT-2127 Back out some of a change to split internal pages sooner.
          Branch: develop
          https://github.com/wiredtiger/wiredtiger/commit/04da9bbc5b5db4dc2e16dfdf11281c6b1ccd26f1

          Show
          xgen-internal-githook Githook User added a comment - Author: {u'username': u'michaelcahill', u'name': u'Michael Cahill', u'email': u'michael.cahill@mongodb.com'} Message: Merge pull request #2276 from wiredtiger/backout-split-sooner WT-2127 Back out some of a change to split internal pages sooner. Branch: develop https://github.com/wiredtiger/wiredtiger/commit/04da9bbc5b5db4dc2e16dfdf11281c6b1ccd26f1
          Hide
          michael.cahill Michael Cahill added a comment -

          The original issue has been fixed, lots of followup work including WT-2182.

          Show
          michael.cahill Michael Cahill added a comment - The original issue has been fixed, lots of followup work including WT-2182 .

            People

            • Votes:
              0 Vote for this issue
              Watchers:
              4 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved:
                Days since reply:
                1 year, 28 weeks, 1 day ago
                Date of 1st Reply: