Details

    • Type: Improvement
    • Status: Resolved
    • Priority: Major - P3
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: WT2.7.0
    • Labels:
      None

      Description

      Currently, when pages become too large, we split down the tree, that is, a too-large WiredTiger internal page splits into two levels, with the current page becoming the parent of a new set of internal pages. A better approach (for internal pages other than the root), is to split up the tree, where a too-large internal page would split into N pages, inserted into the current page's parent.

      1. after_split.jpg
        809 kB
      2. before_split.jpg
        788 kB

        Issue Links

          Activity

          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 #2272 from wiredtiger/wt-2182-split-up-the-tree-2

          WT-2182: when internal pages grow large enough, split them into their parents
          Branch: develop
          https://github.com/wiredtiger/wiredtiger/commit/be412b524fa55782e4c9029b330c9bdec5706bfe

          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 #2272 from wiredtiger/wt-2182-split-up-the-tree-2 WT-2182 : when internal pages grow large enough, split them into their parents Branch: develop https://github.com/wiredtiger/wiredtiger/commit/be412b524fa55782e4c9029b330c9bdec5706bfe
          Hide
          xgen-internal-githook Githook User added a comment -

          Author:

          {u'name': u'Ramon Fernandez', u'email': u'rfmnyc@gmail.com'}

          Message: Import wiredtiger-wiredtiger-mongodb-3.2.0-rc3-177-g9d375e3.tar.gz from wiredtiger branch mongodb-3.2

          ref: d9ec1ff..9d375e3

          16c0a1a WT-1315 Fix some leaks with join cursors.
          59857f9 WT-2222 Add statistics for named snapshots.
          4368d39 WT-1315 Cursor join implementation
          a72ddb7 WT-2218 Add truncate stats
          fb9cebe WT-2224 Track which deleted refs are discarded by a split.
          e2f1130 WT-2220 Split WT_TIMEDIFF macro into unit specific macros.
          be412b5 WT-2182 when internal pages grow large enough, split them into their parents
          ce8c091 WT-2219 Enhancements to in-memory testing
          347d922 WT-2220 time_t cleanup.
          08c0fcd WT-2217 change WT_CURSOR.insert to clear "set" key/value on return
          d1b5e7f WT-2135 Fix log_only setting for backup cursor. Fix initialization.
          78bd4ac WT-2210 raw compression fails if row-store recovery precedes column-store recovery
          c1b2634 WT-2182 fixes for splitting up the tree.
          0a1ee34 WT-2199 Fix transaction sync inconsistency.
          ee31bb2 WT-2182 Simplify the split deepen logic.
          c360d53 WT-2212 Add a "use_environment" config to "wiredtiger_open"
          3f132a4 WT-2182 detect internal page split races.
          Branch: master
          https://github.com/mongodb/mongo/commit/a0771ea5ec1b44537d3c409e3d712db24fd8e6bb

          Show
          xgen-internal-githook Githook User added a comment - Author: {u'name': u'Ramon Fernandez', u'email': u'rfmnyc@gmail.com'} Message: Import wiredtiger-wiredtiger-mongodb-3.2.0-rc3-177-g9d375e3.tar.gz from wiredtiger branch mongodb-3.2 ref: d9ec1ff..9d375e3 16c0a1a WT-1315 Fix some leaks with join cursors. 59857f9 WT-2222 Add statistics for named snapshots. 4368d39 WT-1315 Cursor join implementation a72ddb7 WT-2218 Add truncate stats fb9cebe WT-2224 Track which deleted refs are discarded by a split. e2f1130 WT-2220 Split WT_TIMEDIFF macro into unit specific macros. be412b5 WT-2182 when internal pages grow large enough, split them into their parents ce8c091 WT-2219 Enhancements to in-memory testing 347d922 WT-2220 time_t cleanup. 08c0fcd WT-2217 change WT_CURSOR.insert to clear "set" key/value on return d1b5e7f WT-2135 Fix log_only setting for backup cursor. Fix initialization. 78bd4ac WT-2210 raw compression fails if row-store recovery precedes column-store recovery c1b2634 WT-2182 fixes for splitting up the tree. 0a1ee34 WT-2199 Fix transaction sync inconsistency. ee31bb2 WT-2182 Simplify the split deepen logic. c360d53 WT-2212 Add a "use_environment" config to "wiredtiger_open" 3f132a4 WT-2182 detect internal page split races. Branch: master https://github.com/mongodb/mongo/commit/a0771ea5ec1b44537d3c409e3d712db24fd8e6bb
          Hide
          xgen-internal-githook Githook User added a comment -

          Author:

          {u'name': u'Ramon Fernandez', u'email': u'rfmnyc@gmail.com'}

          Message: Import wiredtiger-wiredtiger-mongodb-3.2.0-rc3-177-g9d375e3.tar.gz from wiredtiger branch mongodb-3.2

          ref: d9ec1ff..9d375e3

          16c0a1a WT-1315 Fix some leaks with join cursors.
          59857f9 WT-2222 Add statistics for named snapshots.
          4368d39 WT-1315 Cursor join implementation
          a72ddb7 WT-2218 Add truncate stats
          fb9cebe WT-2224 Track which deleted refs are discarded by a split.
          e2f1130 WT-2220 Split WT_TIMEDIFF macro into unit specific macros.
          be412b5 WT-2182 when internal pages grow large enough, split them into their parents
          ce8c091 WT-2219 Enhancements to in-memory testing
          347d922 WT-2220 time_t cleanup.
          08c0fcd WT-2217 change WT_CURSOR.insert to clear "set" key/value on return
          d1b5e7f WT-2135 Fix log_only setting for backup cursor. Fix initialization.
          78bd4ac WT-2210 raw compression fails if row-store recovery precedes column-store recovery
          c1b2634 WT-2182 fixes for splitting up the tree.
          0a1ee34 WT-2199 Fix transaction sync inconsistency.
          ee31bb2 WT-2182 Simplify the split deepen logic.
          c360d53 WT-2212 Add a "use_environment" config to "wiredtiger_open"
          3f132a4 WT-2182 detect internal page split races.
          Branch: master
          https://github.com/mongodb/mongo/commit/a0771ea5ec1b44537d3c409e3d712db24fd8e6bb

          Show
          xgen-internal-githook Githook User added a comment - Author: {u'name': u'Ramon Fernandez', u'email': u'rfmnyc@gmail.com'} Message: Import wiredtiger-wiredtiger-mongodb-3.2.0-rc3-177-g9d375e3.tar.gz from wiredtiger branch mongodb-3.2 ref: d9ec1ff..9d375e3 16c0a1a WT-1315 Fix some leaks with join cursors. 59857f9 WT-2222 Add statistics for named snapshots. 4368d39 WT-1315 Cursor join implementation a72ddb7 WT-2218 Add truncate stats fb9cebe WT-2224 Track which deleted refs are discarded by a split. e2f1130 WT-2220 Split WT_TIMEDIFF macro into unit specific macros. be412b5 WT-2182 when internal pages grow large enough, split them into their parents ce8c091 WT-2219 Enhancements to in-memory testing 347d922 WT-2220 time_t cleanup. 08c0fcd WT-2217 change WT_CURSOR.insert to clear "set" key/value on return d1b5e7f WT-2135 Fix log_only setting for backup cursor. Fix initialization. 78bd4ac WT-2210 raw compression fails if row-store recovery precedes column-store recovery c1b2634 WT-2182 fixes for splitting up the tree. 0a1ee34 WT-2199 Fix transaction sync inconsistency. ee31bb2 WT-2182 Simplify the split deepen logic. c360d53 WT-2212 Add a "use_environment" config to "wiredtiger_open" 3f132a4 WT-2182 detect internal page split races. Branch: master https://github.com/mongodb/mongo/commit/a0771ea5ec1b44537d3c409e3d712db24fd8e6bb
          Hide
          xgen-internal-githook Githook User added a comment -

          Author:

          {u'name': u'Ramon Fernandez', u'email': u'rfmnyc@gmail.com'}

          Message: Import wiredtiger-wiredtiger-mongodb-3.2.0-rc3-177-g9d375e3.tar.gz from wiredtiger branch mongodb-3.2

          ref: d9ec1ff..9d375e3

          16c0a1a WT-1315 Fix some leaks with join cursors.
          59857f9 WT-2222 Add statistics for named snapshots.
          4368d39 WT-1315 Cursor join implementation
          a72ddb7 WT-2218 Add truncate stats
          fb9cebe WT-2224 Track which deleted refs are discarded by a split.
          e2f1130 WT-2220 Split WT_TIMEDIFF macro into unit specific macros.
          be412b5 WT-2182 when internal pages grow large enough, split them into their parents
          ce8c091 WT-2219 Enhancements to in-memory testing
          347d922 WT-2220 time_t cleanup.
          08c0fcd WT-2217 change WT_CURSOR.insert to clear "set" key/value on return
          d1b5e7f WT-2135 Fix log_only setting for backup cursor. Fix initialization.
          78bd4ac WT-2210 raw compression fails if row-store recovery precedes column-store recovery
          c1b2634 WT-2182 fixes for splitting up the tree.
          0a1ee34 WT-2199 Fix transaction sync inconsistency.
          ee31bb2 WT-2182 Simplify the split deepen logic.
          c360d53 WT-2212 Add a "use_environment" config to "wiredtiger_open"
          3f132a4 WT-2182 detect internal page split races.
          Branch: master
          https://github.com/mongodb/mongo/commit/a0771ea5ec1b44537d3c409e3d712db24fd8e6bb

          Show
          xgen-internal-githook Githook User added a comment - Author: {u'name': u'Ramon Fernandez', u'email': u'rfmnyc@gmail.com'} Message: Import wiredtiger-wiredtiger-mongodb-3.2.0-rc3-177-g9d375e3.tar.gz from wiredtiger branch mongodb-3.2 ref: d9ec1ff..9d375e3 16c0a1a WT-1315 Fix some leaks with join cursors. 59857f9 WT-2222 Add statistics for named snapshots. 4368d39 WT-1315 Cursor join implementation a72ddb7 WT-2218 Add truncate stats fb9cebe WT-2224 Track which deleted refs are discarded by a split. e2f1130 WT-2220 Split WT_TIMEDIFF macro into unit specific macros. be412b5 WT-2182 when internal pages grow large enough, split them into their parents ce8c091 WT-2219 Enhancements to in-memory testing 347d922 WT-2220 time_t cleanup. 08c0fcd WT-2217 change WT_CURSOR.insert to clear "set" key/value on return d1b5e7f WT-2135 Fix log_only setting for backup cursor. Fix initialization. 78bd4ac WT-2210 raw compression fails if row-store recovery precedes column-store recovery c1b2634 WT-2182 fixes for splitting up the tree. 0a1ee34 WT-2199 Fix transaction sync inconsistency. ee31bb2 WT-2182 Simplify the split deepen logic. c360d53 WT-2212 Add a "use_environment" config to "wiredtiger_open" 3f132a4 WT-2182 detect internal page split races. Branch: master https://github.com/mongodb/mongo/commit/a0771ea5ec1b44537d3c409e3d712db24fd8e6bb
          Hide
          xgen-internal-githook Githook User added a comment -

          Author:

          {u'name': u'Ramon Fernandez', u'email': u'rfmnyc@gmail.com'}

          Message: Import wiredtiger-wiredtiger-mongodb-3.2.0-rc3-177-g9d375e3.tar.gz from wiredtiger branch mongodb-3.2

          ref: d9ec1ff..9d375e3

          16c0a1a WT-1315 Fix some leaks with join cursors.
          59857f9 WT-2222 Add statistics for named snapshots.
          4368d39 WT-1315 Cursor join implementation
          a72ddb7 WT-2218 Add truncate stats
          fb9cebe WT-2224 Track which deleted refs are discarded by a split.
          e2f1130 WT-2220 Split WT_TIMEDIFF macro into unit specific macros.
          be412b5 WT-2182 when internal pages grow large enough, split them into their parents
          ce8c091 WT-2219 Enhancements to in-memory testing
          347d922 WT-2220 time_t cleanup.
          08c0fcd WT-2217 change WT_CURSOR.insert to clear "set" key/value on return
          d1b5e7f WT-2135 Fix log_only setting for backup cursor. Fix initialization.
          78bd4ac WT-2210 raw compression fails if row-store recovery precedes column-store recovery
          c1b2634 WT-2182 fixes for splitting up the tree.
          0a1ee34 WT-2199 Fix transaction sync inconsistency.
          ee31bb2 WT-2182 Simplify the split deepen logic.
          c360d53 WT-2212 Add a "use_environment" config to "wiredtiger_open"
          3f132a4 WT-2182 detect internal page split races.
          Branch: master
          https://github.com/mongodb/mongo/commit/a0771ea5ec1b44537d3c409e3d712db24fd8e6bb

          Show
          xgen-internal-githook Githook User added a comment - Author: {u'name': u'Ramon Fernandez', u'email': u'rfmnyc@gmail.com'} Message: Import wiredtiger-wiredtiger-mongodb-3.2.0-rc3-177-g9d375e3.tar.gz from wiredtiger branch mongodb-3.2 ref: d9ec1ff..9d375e3 16c0a1a WT-1315 Fix some leaks with join cursors. 59857f9 WT-2222 Add statistics for named snapshots. 4368d39 WT-1315 Cursor join implementation a72ddb7 WT-2218 Add truncate stats fb9cebe WT-2224 Track which deleted refs are discarded by a split. e2f1130 WT-2220 Split WT_TIMEDIFF macro into unit specific macros. be412b5 WT-2182 when internal pages grow large enough, split them into their parents ce8c091 WT-2219 Enhancements to in-memory testing 347d922 WT-2220 time_t cleanup. 08c0fcd WT-2217 change WT_CURSOR.insert to clear "set" key/value on return d1b5e7f WT-2135 Fix log_only setting for backup cursor. Fix initialization. 78bd4ac WT-2210 raw compression fails if row-store recovery precedes column-store recovery c1b2634 WT-2182 fixes for splitting up the tree. 0a1ee34 WT-2199 Fix transaction sync inconsistency. ee31bb2 WT-2182 Simplify the split deepen logic. c360d53 WT-2212 Add a "use_environment" config to "wiredtiger_open" 3f132a4 WT-2182 detect internal page split races. Branch: master https://github.com/mongodb/mongo/commit/a0771ea5ec1b44537d3c409e3d712db24fd8e6bb

            People

            • Assignee:
              keith.bostic Keith Bostic
              Reporter:
              keith.bostic Keith Bostic
            • Votes:
              0 Vote for this issue
              Watchers:
              4 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: