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

WT_SESSION.compact could be more effective.

    Details

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

      Description

      When debugging SERVER-21833:

      test_compact02.py creates a file, removes some rows, reopens the database and compacts the file.

      Previously, the reopen call was a checkpoint, and when it was a checkpoint it failed most of the time on tinderbox and some of the time on AWS/OS X boxes, compaction never happened.

      I first thought it was the existence of dirty pages in the cache, but that's not correct, the checkpoint should have "cleaned" all the pages in the cache.

      There's potentially conflict with cache eviction over the pages being written, but I don't think that's it either.

      Or maybe an already opened handle is preventing the compact operation from switching to a first-fit block allocation algorithm, but a quick test didn't turn up anything there, either.

      If I open the compact handle with WT_DHANDLE_EXCLUSIVE instead, the problem appears to go away, so I think the problem has something to do with an already open handle preventing the checkpoint blocks at the end of the file from being discarded.

      I need to figure this out at some point; even if everything is working correctly, we should change compaction to attempt to acquire the handle exclusively. It can proceed if that acquisition fails, but it's reasonable to try it first if it makes this much of a difference.

        Issue Links

          Activity

          Hide
          sue.loverso Sue LoVerso added a comment -

          Keith Bostic, I've been comparing good and bad runs of the compact test to see where they diverge. It is in the extlists. I'm dumping the extlist for the table in block_extlist_truncate.

          The fh->size of the table, for both runs is 195563520.
          During a good run, when we can successfully truncate, we come into block_extlist_truncate and the extlist looks like this:

          [1450214894:270242][12806:0x7f5dff98d700], test_compact02.test_compact02.test_compact02(file): , file:test_compact02, WT_SESSION.compact: truncate: live.avail: 150347776 bytes, by offset:
          [1450214894:270254][12806:0x7f5dff98d700], test_compact02.test_compact02.test_compact02(file): , file:test_compact02, WT_SESSION.compact:       {39141376/2035712}
          [1450214894:270275][12806:0x7f5dff98d700], test_compact02.test_compact02.test_compact02(file): , file:test_compact02, WT_SESSION.compact:       {41181184/4571136}
          [1450214894:270295][12806:0x7f5dff98d700], test_compact02.test_compact02.test_compact02(file): , file:test_compact02, WT_SESSION.compact:       {45756416/4571136}
          [1450214894:270317][12806:0x7f5dff98d700], test_compact02.test_compact02.test_compact02(file): , file:test_compact02, WT_SESSION.compact:       {50331648/4571136}
          [1450214894:270339][12806:0x7f5dff98d700], test_compact02.test_compact02.test_compact02(file): , file:test_compact02, WT_SESSION.compact:       {54906880/4571136}
          [1450214894:270354][12806:0x7f5dff98d700], test_compact02.test_compact02.test_compact02(file): , file:test_compact02, WT_SESSION.compact:       {59482112/4571136}
          [1450214894:270365][12806:0x7f5dff98d700], test_compact02.test_compact02.test_compact02(file): , file:test_compact02, WT_SESSION.compact:       {64057344/4571136}
          [1450214894:270376][12806:0x7f5dff98d700], test_compact02.test_compact02.test_compact02(file): , file:test_compact02, WT_SESSION.compact:       {68632576/81776640}
          [1450214894:270387][12806:0x7f5dff98d700], test_compact02.test_compact02.test_compact02(file): , file:test_compact02, WT_SESSION.compact:       {156454912/39108608}
          

          NOTE: 15645912 + 39108608 = 195563520, the size of the file, so when we call block_off_srch_last we can truncate.

          During a bad run we end up with 8192 bytes at the end of the file that prevent the truncation. The extlist looks like this:

          [1450214875:366443][12801:0x7fe564894700], test_compact02.test_compact02.test_compact02(file): , file:test_compact02, WT_SESSION.compact: truncate: live.avail: 150347776 bytes, by offset:
          [1450214875:366455][12801:0x7fe564894700], test_compact02.test_compact02.test_compact02(file): , file:test_compact02, WT_SESSION.compact:       {39133184/2043904}
          [1450214875:366475][12801:0x7fe564894700], test_compact02.test_compact02.test_compact02(file): , file:test_compact02, WT_SESSION.compact:       {41181184/4571136}
          [1450214875:366488][12801:0x7fe564894700], test_compact02.test_compact02.test_compact02(file): , file:test_compact02, WT_SESSION.compact:       {45756416/4571136}
          [1450214875:366499][12801:0x7fe564894700], test_compact02.test_compact02.test_compact02(file): , file:test_compact02, WT_SESSION.compact:       {50331648/4571136}
          [1450214875:366510][12801:0x7fe564894700], test_compact02.test_compact02.test_compact02(file): , file:test_compact02, WT_SESSION.compact:       {54906880/4571136}
          [1450214875:366520][12801:0x7fe564894700], test_compact02.test_compact02.test_compact02(file): , file:test_compact02, WT_SESSION.compact:       {59482112/4571136}
          [1450214875:366531][12801:0x7fe564894700], test_compact02.test_compact02.test_compact02(file): , file:test_compact02, WT_SESSION.compact:       {64057344/4571136}
          [1450214875:366542][12801:0x7fe564894700], test_compact02.test_compact02.test_compact02(file): , file:test_compact02, WT_SESSION.compact:       {68632576/81776640}
          [1450214875:366553][12801:0x7fe564894700], test_compact02.test_compact02.test_compact02(file): , file:test_compact02, WT_SESSION.compact:       {156454912/38948864}
          [1450214875:366564][12801:0x7fe564894700], test_compact02.test_compact02.test_compact02(file): , file:test_compact02, WT_SESSION.compact:       {195411968/151552}
          

          NOTE that in addition to the one extra extent at the end, the offset of 156454912+38948864 == 195403776 which is 8192 less than the last extent offset. We truncate that 151552, but no other truncate succeeds because the new last extent at offset 156454912 is always 8k less than the fh->size.

          I will keep digging but if you have ideas about that 8k, let me know.

          Show
          sue.loverso Sue LoVerso added a comment - Keith Bostic , I've been comparing good and bad runs of the compact test to see where they diverge. It is in the extlists. I'm dumping the extlist for the table in block_extlist_truncate . The fh->size of the table, for both runs is 195563520. During a good run, when we can successfully truncate, we come into block_extlist_truncate and the extlist looks like this: [1450214894:270242][12806:0x7f5dff98d700], test_compact02.test_compact02.test_compact02(file): , file:test_compact02, WT_SESSION.compact: truncate: live.avail: 150347776 bytes, by offset: [1450214894:270254][12806:0x7f5dff98d700], test_compact02.test_compact02.test_compact02(file): , file:test_compact02, WT_SESSION.compact: {39141376/2035712} [1450214894:270275][12806:0x7f5dff98d700], test_compact02.test_compact02.test_compact02(file): , file:test_compact02, WT_SESSION.compact: {41181184/4571136} [1450214894:270295][12806:0x7f5dff98d700], test_compact02.test_compact02.test_compact02(file): , file:test_compact02, WT_SESSION.compact: {45756416/4571136} [1450214894:270317][12806:0x7f5dff98d700], test_compact02.test_compact02.test_compact02(file): , file:test_compact02, WT_SESSION.compact: {50331648/4571136} [1450214894:270339][12806:0x7f5dff98d700], test_compact02.test_compact02.test_compact02(file): , file:test_compact02, WT_SESSION.compact: {54906880/4571136} [1450214894:270354][12806:0x7f5dff98d700], test_compact02.test_compact02.test_compact02(file): , file:test_compact02, WT_SESSION.compact: {59482112/4571136} [1450214894:270365][12806:0x7f5dff98d700], test_compact02.test_compact02.test_compact02(file): , file:test_compact02, WT_SESSION.compact: {64057344/4571136} [1450214894:270376][12806:0x7f5dff98d700], test_compact02.test_compact02.test_compact02(file): , file:test_compact02, WT_SESSION.compact: {68632576/81776640} [1450214894:270387][12806:0x7f5dff98d700], test_compact02.test_compact02.test_compact02(file): , file:test_compact02, WT_SESSION.compact: {156454912/39108608} NOTE: 15645912 + 39108608 = 195563520, the size of the file, so when we call block_off_srch_last we can truncate. During a bad run we end up with 8192 bytes at the end of the file that prevent the truncation. The extlist looks like this: [1450214875:366443][12801:0x7fe564894700], test_compact02.test_compact02.test_compact02(file): , file:test_compact02, WT_SESSION.compact: truncate: live.avail: 150347776 bytes, by offset: [1450214875:366455][12801:0x7fe564894700], test_compact02.test_compact02.test_compact02(file): , file:test_compact02, WT_SESSION.compact: {39133184/2043904} [1450214875:366475][12801:0x7fe564894700], test_compact02.test_compact02.test_compact02(file): , file:test_compact02, WT_SESSION.compact: {41181184/4571136} [1450214875:366488][12801:0x7fe564894700], test_compact02.test_compact02.test_compact02(file): , file:test_compact02, WT_SESSION.compact: {45756416/4571136} [1450214875:366499][12801:0x7fe564894700], test_compact02.test_compact02.test_compact02(file): , file:test_compact02, WT_SESSION.compact: {50331648/4571136} [1450214875:366510][12801:0x7fe564894700], test_compact02.test_compact02.test_compact02(file): , file:test_compact02, WT_SESSION.compact: {54906880/4571136} [1450214875:366520][12801:0x7fe564894700], test_compact02.test_compact02.test_compact02(file): , file:test_compact02, WT_SESSION.compact: {59482112/4571136} [1450214875:366531][12801:0x7fe564894700], test_compact02.test_compact02.test_compact02(file): , file:test_compact02, WT_SESSION.compact: {64057344/4571136} [1450214875:366542][12801:0x7fe564894700], test_compact02.test_compact02.test_compact02(file): , file:test_compact02, WT_SESSION.compact: {68632576/81776640} [1450214875:366553][12801:0x7fe564894700], test_compact02.test_compact02.test_compact02(file): , file:test_compact02, WT_SESSION.compact: {156454912/38948864} [1450214875:366564][12801:0x7fe564894700], test_compact02.test_compact02.test_compact02(file): , file:test_compact02, WT_SESSION.compact: {195411968/151552} NOTE that in addition to the one extra extent at the end, the offset of 156454912+38948864 == 195403776 which is 8192 less than the last extent offset. We truncate that 151552, but no other truncate succeeds because the new last extent at offset 156454912 is always 8k less than the fh->size. I will keep digging but if you have ideas about that 8k, let me know.
          Hide
          sue.loverso Sue LoVerso added a comment -

          This is not related to sweep. I ifdef'ed out the sweep server and it still repros sometimes passing and sometimes failing.

          Show
          sue.loverso Sue LoVerso added a comment - This is not related to sweep. I ifdef'ed out the sweep server and it still repros sometimes passing and sometimes failing.
          Hide
          xgen-internal-githook Githook User added a comment -

          Author:

          {u'username': u'keithbostic', u'name': u'Keith Bostic', u'email': u'keith@wiredtiger.com'}

          Message: WT-2290: when re-writing a multi-block page for compaction, with
          the goal of moving the block to a new location in the file, the
          reconciliation code to avoid writing blocks that already exist on
          disk was working correctly, and we were skipping writes, causing
          the compaction to fail.

          Turn the compaction success/failure boolean into three states:
          not-running, running, and running-successfully, then change
          reconciliation to ignore block reuse if compaction is running.
          Branch: develop
          https://github.com/wiredtiger/wiredtiger/commit/6c144b89c56b1fd39c53ca3f1fa878155bc38ef8

          Show
          xgen-internal-githook Githook User added a comment - Author: {u'username': u'keithbostic', u'name': u'Keith Bostic', u'email': u'keith@wiredtiger.com'} Message: WT-2290 : when re-writing a multi-block page for compaction, with the goal of moving the block to a new location in the file, the reconciliation code to avoid writing blocks that already exist on disk was working correctly, and we were skipping writes, causing the compaction to fail. Turn the compaction success/failure boolean into three states: not-running, running, and running-successfully, then change reconciliation to ignore block reuse if compaction is running. Branch: develop https://github.com/wiredtiger/wiredtiger/commit/6c144b89c56b1fd39c53ca3f1fa878155bc38ef8
          Hide
          xgen-internal-githook Githook User added a comment -

          Author:

          {u'username': u'sueloverso', u'name': u'sueloverso', u'email': u'sue@mongodb.com'}

          Message: Merge pull request #2396 from wiredtiger/WT-2290-compact-reuse

          WT-2290: don't reuse previous multi-block write blocks when compacting
          Branch: develop
          https://github.com/wiredtiger/wiredtiger/commit/87d293357ae33ef3641e4ba96239bfcdc386f450

          Show
          xgen-internal-githook Githook User added a comment - Author: {u'username': u'sueloverso', u'name': u'sueloverso', u'email': u'sue@mongodb.com'} Message: Merge pull request #2396 from wiredtiger/ WT-2290 -compact-reuse WT-2290 : don't reuse previous multi-block write blocks when compacting Branch: develop https://github.com/wiredtiger/wiredtiger/commit/87d293357ae33ef3641e4ba96239bfcdc386f450
          Hide
          xgen-internal-githook Githook User added a comment -

          Author:

          {u'username': u'sueloverso', u'name': u'sueloverso', u'email': u'sue@mongodb.com'}

          Message: Merge pull request #2396 from wiredtiger/WT-2290-compact-reuse

          WT-2290: don't reuse previous multi-block write blocks when compacting
          Branch: develop
          https://github.com/wiredtiger/wiredtiger/commit/87d293357ae33ef3641e4ba96239bfcdc386f450

          Show
          xgen-internal-githook Githook User added a comment - Author: {u'username': u'sueloverso', u'name': u'sueloverso', u'email': u'sue@mongodb.com'} Message: Merge pull request #2396 from wiredtiger/ WT-2290 -compact-reuse WT-2290 : don't reuse previous multi-block write blocks when compacting Branch: develop https://github.com/wiredtiger/wiredtiger/commit/87d293357ae33ef3641e4ba96239bfcdc386f450
          Hide
          xgen-internal-githook Githook User added a comment -

          Author:

          {u'name': u'Ramon Fernandez', u'email': u'ramon@mongodb.com'}

          Message: Import wiredtiger-wiredtiger-2.7.0-269-g44463c5.tar.gz from wiredtiger branch mongodb-3.4

          ref: 3c2ad56..44463c5

          SERVER-21833 Compact does not release space to the system with WiredTiger
          WT-2060 Simplify aggregation of statistics
          WT-2099 Seeing memory underflow messages
          WT-2113 truncate01 sometimes fails
          WT-2177 Add a per-thread seed to random number generator
          WT-2198 bulk load and column store appends
          WT-2231 pinned page cursor searches could check parent keys
          WT-2235 wt printlog option without unicode
          WT-2245 WTPERF Truncate has no ability to catch up when it falls behind
          WT-2246 column-store append searches the leaf page; the maximum record number fails CRUD operations
          WT-2256 WTPERFs throttle option fires in bursts
          WT-2257 wtperf doesn't handle overriding workload config
          WT-2259 __wt_evict_file_exclusive_on() should clear WT_BTREE_NO_EVICTION on error
          WT-2260 Workloads evict internal pages unexpectedly
          WT-2262 Random sampling is skewed by tree shape
          WT-2265 Wiredtiger related change in ppc64le specific code block in gcc.h
          WT-2266 Add wtperf config to set if perf thresholds are fatal
          WT-2269 wtperf should dump its config everytime it runs
          WT-2272 Stress test assertion in the sweep server
          WT-2275 broken DB after application crash
          WT-2276 tool to decode checkpoint addr
          WT-2277 Remove WT check against big-endian systems
          WT-2279 Define WT_PAUSE(), WT_FULL_BARRIER(), etc when s390x is defined
          WT-2281 wtperf smoke.sh fails on ppc64le
          WT-2282 error in wt_txn_update_oldest verbose message test
          WT-2283 retry in txn_update_oldest results in a hang
          WT-2285 configure should set BUFFER_ALIGNMENT_DEFAULT to 4kb on linux
          WT-2289 failure in fast key check
          WT-2290 WT_SESSION.compact could be more effective.
          WT-2291 Random cursor walk inefficient in skip list only trees
          WT-2297 Fix off-by-one error in Huffman config file parsing
          WT-2299 upper-level WiredTiger code is reaching into the block manager
          WT-2301 Add reading a range to wtperf
          WT-2303 Build warning in wtperf
          WT-2304 wtperf crash dumping config
          WT-2307 Internal page splits can corrupt cursor iteration
          WT-2311 Support Sparc
          Branch: master
          https://github.com/mongodb/mongo/commit/d845b75e5f0837f801bdf371babd985308a1ad80

          Show
          xgen-internal-githook Githook User added a comment - Author: {u'name': u'Ramon Fernandez', u'email': u'ramon@mongodb.com'} Message: Import wiredtiger-wiredtiger-2.7.0-269-g44463c5.tar.gz from wiredtiger branch mongodb-3.4 ref: 3c2ad56..44463c5 SERVER-21833 Compact does not release space to the system with WiredTiger WT-2060 Simplify aggregation of statistics WT-2099 Seeing memory underflow messages WT-2113 truncate01 sometimes fails WT-2177 Add a per-thread seed to random number generator WT-2198 bulk load and column store appends WT-2231 pinned page cursor searches could check parent keys WT-2235 wt printlog option without unicode WT-2245 WTPERF Truncate has no ability to catch up when it falls behind WT-2246 column-store append searches the leaf page; the maximum record number fails CRUD operations WT-2256 WTPERFs throttle option fires in bursts WT-2257 wtperf doesn't handle overriding workload config WT-2259 __wt_evict_file_exclusive_on() should clear WT_BTREE_NO_EVICTION on error WT-2260 Workloads evict internal pages unexpectedly WT-2262 Random sampling is skewed by tree shape WT-2265 Wiredtiger related change in ppc64le specific code block in gcc.h WT-2266 Add wtperf config to set if perf thresholds are fatal WT-2269 wtperf should dump its config everytime it runs WT-2272 Stress test assertion in the sweep server WT-2275 broken DB after application crash WT-2276 tool to decode checkpoint addr WT-2277 Remove WT check against big-endian systems WT-2279 Define WT_PAUSE(), WT_FULL_BARRIER(), etc when s390x is defined WT-2281 wtperf smoke.sh fails on ppc64le WT-2282 error in wt_txn_update_oldest verbose message test WT-2283 retry in txn_update_oldest results in a hang WT-2285 configure should set BUFFER_ALIGNMENT_DEFAULT to 4kb on linux WT-2289 failure in fast key check WT-2290 WT_SESSION.compact could be more effective. WT-2291 Random cursor walk inefficient in skip list only trees WT-2297 Fix off-by-one error in Huffman config file parsing WT-2299 upper-level WiredTiger code is reaching into the block manager WT-2301 Add reading a range to wtperf WT-2303 Build warning in wtperf WT-2304 wtperf crash dumping config WT-2307 Internal page splits can corrupt cursor iteration WT-2311 Support Sparc Branch: master https://github.com/mongodb/mongo/commit/d845b75e5f0837f801bdf371babd985308a1ad80
          Hide
          xgen-internal-githook Githook User added a comment -

          Author:

          {u'name': u'Ramon Fernandez', u'email': u'ramon@mongodb.com'}

          Message: Import wiredtiger-wiredtiger-2.7.0-559-g07966a4.tar.gz from wiredtiger branch mongodb-3.2

          ref: 3c2ad56..07966a4

          WT-1517 schema format edge cases
          WT-1801 Add a directory sync after rollback of a WT_SESSION::rename operation
          WT-2060 Simplify aggregation of statistics
          WT-2073 metadata cleanups
          WT-2099 Seeing memory underflow messages
          WT-2113 truncate01 sometimes fails
          WT-2142 Connection cleanup in Python tests
          WT-2177 Add an optional per-thread seed to random number generator
          WT-2198 bulk load and column store appends
          WT-2216 simplify row-store search loop slightly
          WT-2225 New split code performance impact
          WT-2231 pinned page cursor searches could check parent keys
          WT-2235 wt printlog option without unicode
          WT-2242 WiredTiger treats dead trees the same as other trees in eviction
          WT-2244 Trigger in-memory splits sooner
          WT-2245 WTPERF Truncate has no ability to catch up when it falls behind
          WT-2246 column-store append searches the leaf page; the maximum record number fails CRUD operations
          WT-2247 variable-length column-store in-memory page splits
          WT-2256 WTPERFs throttle option fires in bursts
          WT-2257 wtperf doesn't handle overriding workload config
          WT-2258 WiredTiger preloads pages even when direct-IO is configured.
          WT-2259 __wt_evict_file_exclusive_on() should clear WT_BTREE_NO_EVICTION on error
          WT-2260 Workloads evict internal pages unexpectedly
          WT-2262 Random sampling is skewed by tree shape
          WT-2265 Wiredtiger related change in ppc64le specific code block in gcc.h
          WT-2266 Add wtperf config to set if perf thresholds are fatal
          WT-2267 Improve wtperf throttling implementation to provide steady load
          WT-2269 wtperf should dump its config everytime it runs
          WT-2272 Stress test assertion in the sweep server
          WT-2275 broken DB after application crash
          WT-2276 tool to decode checkpoint addr
          WT-2277 Remove WT check against big-endian systems
          WT-2279 Define WT_PAUSE(), WT_FULL_BARRIER(), etc when s390x is defined
          WT-2281 wtperf smoke.sh fails on ppc64le
          WT-2282 error in wt_txn_update_oldest verbose message test
          WT-2283 retry in txn_update_oldest results in a hang
          WT-2284 Repeated macro definition
          WT-2285 configure should set BUFFER_ALIGNMENT_DEFAULT to 4kb on linux
          WT-2287 WT_SESSION.rebalance
          WT-2289 failure in fast key check
          WT-2290 WT_SESSION.compact could be more effective.
          WT-2291 Random cursor walk inefficient in skip list only trees
          WT-2295 WT_SESSION.create does a full-scan of the main table
          WT-2296 New log algorithm needs improving for sync/flush settings
          WT-2297 Fix off-by-one error in Huffman config file parsing
          WT-2299 upper-level WiredTiger code is reaching into the block manager
          WT-2301 Add reading a range to wtperf
          WT-2303 Build warning in wtperf
          WT-2304 wtperf crash dumping config
          WT-2305 Fix coverity scan issues on 23/12/2015
          WT-2307 Internal page splits can corrupt cursor iteration
          WT-2308 custom extractor for ref_cursors in join cursor
          WT-2311 Support Sparc
          WT-2312 re-creating a deleted column-store page can corrupt the in-memory tree
          WT-2313 sweep-server: conn_dhandle.c, 610: dhandle != conn->cache->evict_file_next
          WT-2314 page-swap error handling is inconsistent
          WT-2316 stress test failure: WT_CURSOR.prev out-of-order returns
          WT-2320 Only check copyright when cutting releases
          WT-2321 WT-2321: race between eviction and worker threads on the eviction queue
          WT-2326 Change WTPERF to use new memory allocation functions instead of the standard
          WT-2328 schema drop does direct unlink, it should use a block manager interface.
          WT-2331 Checking of search() result for reference cursors before join()
          WT-2332 Bug in logging write-no-sync mode
          WT-2333 Add a flag so drop doesn't block
          WT-2335 NULL pointer crash in config_check_search with invalid configuration string
          WT-2338 Disable using pre-allocated log files when backup cursor is open
          WT-2339 format post-rebalance verify failure (stress run #11586)
          WT-2340 Add logging guarantee assertions, whitespace
          WT-2342 Enhance wtperf to support background create and drop operations
          WT-2344 OS X compiler warning
          WT-2347 Java: schema format edge cases
          WT-2348 xargs -P isn't portable
          WT-2355 Fix minor scratch buffer usage in logging
          SERVER-21833 Compact does not release space to the system with WiredTiger
          SERVER-21887 $sample takes disproportionately long time on newly created collection
          SERVER-22064 Coverity analysis defect 77699: Unchecked return value
          SERVER-21944 WiredTiger changes for 3.2.2
          Branch: v3.2
          https://github.com/mongodb/mongo/commit/5d6532f3d5227ff76f62c4810c98a4ef4d0c8c56

          Show
          xgen-internal-githook Githook User added a comment - Author: {u'name': u'Ramon Fernandez', u'email': u'ramon@mongodb.com'} Message: Import wiredtiger-wiredtiger-2.7.0-559-g07966a4.tar.gz from wiredtiger branch mongodb-3.2 ref: 3c2ad56..07966a4 WT-1517 schema format edge cases WT-1801 Add a directory sync after rollback of a WT_SESSION::rename operation WT-2060 Simplify aggregation of statistics WT-2073 metadata cleanups WT-2099 Seeing memory underflow messages WT-2113 truncate01 sometimes fails WT-2142 Connection cleanup in Python tests WT-2177 Add an optional per-thread seed to random number generator WT-2198 bulk load and column store appends WT-2216 simplify row-store search loop slightly WT-2225 New split code performance impact WT-2231 pinned page cursor searches could check parent keys WT-2235 wt printlog option without unicode WT-2242 WiredTiger treats dead trees the same as other trees in eviction WT-2244 Trigger in-memory splits sooner WT-2245 WTPERF Truncate has no ability to catch up when it falls behind WT-2246 column-store append searches the leaf page; the maximum record number fails CRUD operations WT-2247 variable-length column-store in-memory page splits WT-2256 WTPERFs throttle option fires in bursts WT-2257 wtperf doesn't handle overriding workload config WT-2258 WiredTiger preloads pages even when direct-IO is configured. WT-2259 __wt_evict_file_exclusive_on() should clear WT_BTREE_NO_EVICTION on error WT-2260 Workloads evict internal pages unexpectedly WT-2262 Random sampling is skewed by tree shape WT-2265 Wiredtiger related change in ppc64le specific code block in gcc.h WT-2266 Add wtperf config to set if perf thresholds are fatal WT-2267 Improve wtperf throttling implementation to provide steady load WT-2269 wtperf should dump its config everytime it runs WT-2272 Stress test assertion in the sweep server WT-2275 broken DB after application crash WT-2276 tool to decode checkpoint addr WT-2277 Remove WT check against big-endian systems WT-2279 Define WT_PAUSE(), WT_FULL_BARRIER(), etc when s390x is defined WT-2281 wtperf smoke.sh fails on ppc64le WT-2282 error in wt_txn_update_oldest verbose message test WT-2283 retry in txn_update_oldest results in a hang WT-2284 Repeated macro definition WT-2285 configure should set BUFFER_ALIGNMENT_DEFAULT to 4kb on linux WT-2287 WT_SESSION.rebalance WT-2289 failure in fast key check WT-2290 WT_SESSION.compact could be more effective. WT-2291 Random cursor walk inefficient in skip list only trees WT-2295 WT_SESSION.create does a full-scan of the main table WT-2296 New log algorithm needs improving for sync/flush settings WT-2297 Fix off-by-one error in Huffman config file parsing WT-2299 upper-level WiredTiger code is reaching into the block manager WT-2301 Add reading a range to wtperf WT-2303 Build warning in wtperf WT-2304 wtperf crash dumping config WT-2305 Fix coverity scan issues on 23/12/2015 WT-2307 Internal page splits can corrupt cursor iteration WT-2308 custom extractor for ref_cursors in join cursor WT-2311 Support Sparc WT-2312 re-creating a deleted column-store page can corrupt the in-memory tree WT-2313 sweep-server: conn_dhandle.c, 610: dhandle != conn->cache->evict_file_next WT-2314 page-swap error handling is inconsistent WT-2316 stress test failure: WT_CURSOR.prev out-of-order returns WT-2320 Only check copyright when cutting releases WT-2321 WT-2321 : race between eviction and worker threads on the eviction queue WT-2326 Change WTPERF to use new memory allocation functions instead of the standard WT-2328 schema drop does direct unlink, it should use a block manager interface. WT-2331 Checking of search() result for reference cursors before join() WT-2332 Bug in logging write-no-sync mode WT-2333 Add a flag so drop doesn't block WT-2335 NULL pointer crash in config_check_search with invalid configuration string WT-2338 Disable using pre-allocated log files when backup cursor is open WT-2339 format post-rebalance verify failure (stress run #11586) WT-2340 Add logging guarantee assertions, whitespace WT-2342 Enhance wtperf to support background create and drop operations WT-2344 OS X compiler warning WT-2347 Java: schema format edge cases WT-2348 xargs -P isn't portable WT-2355 Fix minor scratch buffer usage in logging SERVER-21833 Compact does not release space to the system with WiredTiger SERVER-21887 $sample takes disproportionately long time on newly created collection SERVER-22064 Coverity analysis defect 77699: Unchecked return value SERVER-21944 WiredTiger changes for 3.2.2 Branch: v3.2 https://github.com/mongodb/mongo/commit/5d6532f3d5227ff76f62c4810c98a4ef4d0c8c56

            People

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

              Dates

              • Created:
                Updated:
                Resolved: