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

track checkpoint I/O separately from eviction I/O

    Details

    • Type: Improvement
    • Status: Resolved
    • Priority: Minor - P4
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: WT2.9.0, 3.3.11, 3.2.10
    • Labels:
      None
    • # Replies:
      9
    • Last comment by Customer:
      true

      Description

      Alexander Gorrod writes:

      Something I've been interested in a number of times is knowing how much I/O is done in service of checkpoints versus "normal" eviction. I've always chickened out, since the information isn't available down in __wt_block_write_off where we know how much is being written. The checkpoint I/O smoothing project (WT-2389) would be easier to handle if we tracked the information, so I took a look today.

      How would you feel if I made a change to __wt_block_write so that it takes a set of flags, rather than a bool. At the moment those flags would be:
      WT_BLOCK_WRITE_CKSUM
      WT_BLOCK_WRITE_CALLER_LOCKED
      WT_BLOCK_WRITE_FOR_CHECKPOINT

      I'd also need to pass a flag from __sync_file through reconciliation, indicating that the operation is being done in service of a checkpoint.

      There are other alternatives. For example we could add a check for a (new) checkpointing flag in a session handle down in the block manager.

      1. image.png
        28 kB

        Issue Links

          Activity

          Hide
          keith.bostic Keith Bostic added a comment -

          Ideally, the block manager wouldn't know about checkpoints where we can avoid it. (I'm not saying we shouldn't do it, just that it's going to make the layering worse to do it in the block manager.)

          Maybe we could do it in bt_io.c:__wt_bt_write() (that's the Btree function that calls __wt_block_write()).

          Maybe __sync_file doesn't need a new flag: we could use the existing WT_SESSION flag WT_SESSION_LOCKED_CHECKPOINT flag. (That wouldn't work if we had more than one thread doing checkpoints though.)

          Reconciliation has the WT_EVICTING flag set when it's called to do eviction, isn't everything else a checkpoint?

          Based on a few minutes of thought, I'd try passing the WT_EVICTING flag from reconciliation to __wt_bt_write() and it would update the appropriate statistics before it returns.

          I'll push a branch for us to talk about.

          Show
          keith.bostic Keith Bostic added a comment - Ideally, the block manager wouldn't know about checkpoints where we can avoid it. (I'm not saying we shouldn't do it, just that it's going to make the layering worse to do it in the block manager.) Maybe we could do it in bt_io.c:__wt_bt_write() (that's the Btree function that calls __wt_block_write()). Maybe __sync_file doesn't need a new flag: we could use the existing WT_SESSION flag WT_SESSION_LOCKED_CHECKPOINT flag. (That wouldn't work if we had more than one thread doing checkpoints though.) Reconciliation has the WT_EVICTING flag set when it's called to do eviction, isn't everything else a checkpoint? Based on a few minutes of thought, I'd try passing the WT_EVICTING flag from reconciliation to __wt_bt_write() and it would update the appropriate statistics before it returns. I'll push a branch for us to talk about.
          Hide
          alexander.gorrod Alexander Gorrod added a comment -

          On the pull request we have been having a conversation about why it is interesting to see statistics from the block manager, and not just the cache management layer. I've pulled together a graph showing block manager vs cache vs cache for checkpoint bytes written. It can be seen that there is a correlation between block manager and cache, but it isn't easily inferable, and can vary. It is useful to track both of those metrics, and it would be useful to track both with relation to data written for checkpoint as well.

          In the pull request Keith Bostic you said:

          Regardless, we can know the disk-block write size in bt_io.c (and in fact, we have to figure it out there, for compressed and encrypted blocks), that's what the bm->write_size() call does.

          I don't believe that's true. That will tell us rounding to block size, but won't tell us how compressed the data is.

          I generated the above graph from statistics generated running the following wtperf workload:

          # wtperf options file: Stress checkpoint data volume
          conn_config="cache_size=10GB,log=(enabled=false),checkpoint=(wait=60),statistics=[fast,clear],statistics_log=(wait=1)"
          table_config="leaf_page_max=32k,internal_page_max=16k,allocation_size=4k,split_pct=90,type=file"
          # Enough data to fill the cache. 100 million 1k records results in two ~6GB tables
          icount=100000000
          create=true
          compression="snappy"
          populate_threads=1
          checkpoint_interval=60
          checkpoint_threads=0
          report_interval=1
          run_time=600
          # MongoDB always has multiple tables, and checkpoints behave differently when
          # there is more than a single table.
          table_count=2
          threads=((count=6,updates=1))
          value_sz=1000
          

          Show
          alexander.gorrod Alexander Gorrod added a comment - On the pull request we have been having a conversation about why it is interesting to see statistics from the block manager, and not just the cache management layer. I've pulled together a graph showing block manager vs cache vs cache for checkpoint bytes written. It can be seen that there is a correlation between block manager and cache, but it isn't easily inferable, and can vary. It is useful to track both of those metrics, and it would be useful to track both with relation to data written for checkpoint as well. In the pull request Keith Bostic you said: Regardless, we can know the disk-block write size in bt_io.c (and in fact, we have to figure it out there, for compressed and encrypted blocks), that's what the bm->write_size() call does. I don't believe that's true. That will tell us rounding to block size, but won't tell us how compressed the data is. I generated the above graph from statistics generated running the following wtperf workload: # wtperf options file: Stress checkpoint data volume conn_config="cache_size=10GB,log=(enabled=false),checkpoint=(wait=60),statistics=[fast,clear],statistics_log=(wait=1)" table_config="leaf_page_max=32k,internal_page_max=16k,allocation_size=4k,split_pct=90,type=file" # Enough data to fill the cache. 100 million 1k records results in two ~6GB tables icount=100000000 create=true compression="snappy" populate_threads=1 checkpoint_interval=60 checkpoint_threads=0 report_interval=1 run_time=600 # MongoDB always has multiple tables, and checkpoints behave differently when # there is more than a single table. table_count=2 threads=((count=6,updates=1)) value_sz=1000
          Hide
          keith.bostic Keith Bostic added a comment -

          Alexander Gorrod

          That will tell us rounding to block size, but won't tell us how compressed the data is.

          I'm sorry, but I'm just missing something obvious, let's talk this through the next time we're both on-line.

          My understanding is that in bt_io.c:__wt_bt_write(), we have WT_ITEM.size which is the unaligned number of bytes to write. That WT_ITEM is passed to block_write.c:__wt_block_write_off(), which writes the header into the buffer, aligns to the block allocation size, clears any unused bytes, checksums and writes the block.

          I had not thought you might want to compare against the system's iostat numbers, that makes sense to me and argues for I/O based numbers. We could track WT_ITEM.size (aligned to the block-allocation size) in bt_io.c:__wt_bt_write(), I expect that to track with the iostat values.

          Show
          keith.bostic Keith Bostic added a comment - Alexander Gorrod That will tell us rounding to block size, but won't tell us how compressed the data is. I'm sorry, but I'm just missing something obvious, let's talk this through the next time we're both on-line. My understanding is that in bt_io.c:__wt_bt_write() , we have WT_ITEM.size which is the unaligned number of bytes to write. That WT_ITEM is passed to block_write.c:__wt_block_write_off() , which writes the header into the buffer, aligns to the block allocation size, clears any unused bytes, checksums and writes the block. I had not thought you might want to compare against the system's iostat numbers, that makes sense to me and argues for I/O based numbers. We could track WT_ITEM.size (aligned to the block-allocation size) in bt_io.c:__wt_bt_write() , I expect that to track with the iostat values.
          Hide
          keith.bostic Keith Bostic added a comment -

          And, all that said, I went ahead and drilled the holes into the block manager so it knows which I/Os are in service of checkpoint.

          That way we get slightly more accurate numbers, we don't violate layering by making alignment checks in the Btree layer, and it will work if/when we want to tune a pluggable filesystem.

          Show
          keith.bostic Keith Bostic added a comment - And, all that said, I went ahead and drilled the holes into the block manager so it knows which I/Os are in service of checkpoint. That way we get slightly more accurate numbers, we don't violate layering by making alignment checks in the Btree layer, and it will work if/when we want to tune a pluggable filesystem.
          Hide
          xgen-internal-githook Githook User added a comment -

          Author:

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

          Message: WT-2746 Add a new statistic tracking I/O for checkpoints (#2853)

          Separate cache write statistics into checkpoint and non-checkpoint I/O.
          Branch: develop
          https://github.com/wiredtiger/wiredtiger/commit/c33bc33a9afb6f1e980e95cc581b4ba474eb3573

          Show
          xgen-internal-githook Githook User added a comment - Author: {u'username': u'keithbostic', u'name': u'Keith Bostic', u'email': u'keith.bostic@mongodb.com'} Message: WT-2746 Add a new statistic tracking I/O for checkpoints (#2853) Separate cache write statistics into checkpoint and non-checkpoint I/O. Branch: develop https://github.com/wiredtiger/wiredtiger/commit/c33bc33a9afb6f1e980e95cc581b4ba474eb3573
          Hide
          xgen-internal-githook Githook User added a comment -

          Author:

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

          Message: WT-2746 Add a new statistic tracking I/O for checkpoints (#2853)

          Separate cache write statistics into checkpoint and non-checkpoint I/O.
          Branch: mongodb-3.4
          https://github.com/wiredtiger/wiredtiger/commit/c33bc33a9afb6f1e980e95cc581b4ba474eb3573

          Show
          xgen-internal-githook Githook User added a comment - Author: {u'username': u'keithbostic', u'name': u'Keith Bostic', u'email': u'keith.bostic@mongodb.com'} Message: WT-2746 Add a new statistic tracking I/O for checkpoints (#2853) Separate cache write statistics into checkpoint and non-checkpoint I/O. Branch: mongodb-3.4 https://github.com/wiredtiger/wiredtiger/commit/c33bc33a9afb6f1e980e95cc581b4ba474eb3573
          Hide
          xgen-internal-githook Githook User added a comment -

          Author:

          {u'username': u'agorrod', u'name': u'Alex Gorrod', u'email': u'alexander.gorrod@mongodb.com'}

          Message: Import wiredtiger-wiredtiger-2.8.0-589-ga9e9696.tar.gz from wiredtiger branch mongodb-3.4

          ref: d8fb874..a9e9696
          for: 3.3.11

          SERVER-24971 Excessive memory held by sessions when application threads do evictions
          WT-1162 Add latency to Jenkins wtperf tests and plots
          WT-2026 Maximum pages size at eviction too large
          WT-2239 Make sure LSM cursors read up to date dsk_gen, it was racing with compact
          WT-2353 Failure to create async threads as part of a wiredtiger_open call will cause a hang
          WT-2380 Make scripts fail if code doesn't match style
          WT-2486 Update make check so that it runs faster
          WT-2578 remove write barriers from the TAILQ_INSERT_XXX macros
          WT-2648 cache-line alignment for new ports
          WT-2665 Limit allocator fragmentation in WiredTiger
          WT-2693 Check open_cursor error paths for consistent handling
          WT-2708 split child-update race with reconciliation/eviction
          WT-2711 Change statistics log configuration options
          WT-2728 Don't re-read log file headers during log_flush
          WT-2729 Focus eviction walks in largest trees
          WT-2730 cursor next/prev can return the wrong key/value pair when crossing a page boundary
          WT-2731 Raw compression can create pages that are larger than expected
          WT-2732 Coverity analysis defect 99665: Redundant test
          WT-2737 Scrub dirty pages rather than evicting them
          WT-2738 Remove the ability to change the default checkpoint name
          WT-2739 pluggable file systems documentation cleanups
          WT-2743 Thread count statistics always report 0
          WT-2744 partial line even with line buffering set
          WT-2746 track checkpoint I/O separately from eviction I/O
          WT-2751 column-store statistics incorrectly calculates the number of entries
          WT-2752 Fixes to zipfian wtperf workload config
          WT-2755 flexelint configuration treats size_t as 4B type
          WT-2756 Upgrade the autoconf archive package to check for swig 3.0
          WT-2757 Column tables behave differently when column names are provided
          WT-2759 Releasing the hot-backup lock doesn't require the schema lock.
          WT-2760 Fix a bug in backup related to directory sync. Change the filesystem API to make durable the default
          WT-2762 wtstats tool fails if checkpoint runs
          WT-2763 Unit test test_intpack failing on OSX
          WT-2764 Optimize checkpoints to reduce throughput disruption
          WT-2765 wt dump: indices need to be shown in the dump output
          WT-2767 test suite needs way to run an individual scenario
          WT-2769 Update documentation to reflect correct limits of memory_page_max
          WT-2770 Add statistics tracking schema operations
          WT-2772 Investigate log performance testing weirdness
          WT-2773 search_near in indexes does not find exact matches
          WT-2774 minor cleanups/improvements
          WT-2778 Python test suite: make scenario initialization consistent
          WT-2779 Raw compression created unexpectedly large pages on disk
          WT-2781 Enhance bulk cursor option with an option to return immediately on contention
          WT-2782 Missing a fs_directory_list_free in ex_file_system.c
          WT-2785 Scrub dirty pages rather than evicting them: single-page reconciliation
          WT-2791 Enhance OS X Evergreen unit test
          WT-2793 wtperf config improvements
          WT-2796 Memory leak in reconciliation uncovered by stress testing
          WT-2798 Crash vulnerability with nojournal after create during checkpoint
          WT-2800 Illegal file format in test/format on PPC
          WT-2801 Crash vulnerability from eviction of metadata during checkpoint
          WT-2802 Transaction commit causes heap-use-after free
          WT-2803 Add verbose functionality to WT Evergreen tests
          WT-2804 Don't read values in a tree without a snapshot
          WT-2805 Infinite recursion if error streams fail
          WT-2806 wtperf allocation size off-by-one
          Branch: master
          https://github.com/mongodb/mongo/commit/c4612847ed88c5e0500f0e9ecb2ecdcb49621cf1

          Show
          xgen-internal-githook Githook User added a comment - Author: {u'username': u'agorrod', u'name': u'Alex Gorrod', u'email': u'alexander.gorrod@mongodb.com'} Message: Import wiredtiger-wiredtiger-2.8.0-589-ga9e9696.tar.gz from wiredtiger branch mongodb-3.4 ref: d8fb874..a9e9696 for: 3.3.11 SERVER-24971 Excessive memory held by sessions when application threads do evictions WT-1162 Add latency to Jenkins wtperf tests and plots WT-2026 Maximum pages size at eviction too large WT-2239 Make sure LSM cursors read up to date dsk_gen, it was racing with compact WT-2353 Failure to create async threads as part of a wiredtiger_open call will cause a hang WT-2380 Make scripts fail if code doesn't match style WT-2486 Update make check so that it runs faster WT-2578 remove write barriers from the TAILQ_INSERT_XXX macros WT-2648 cache-line alignment for new ports WT-2665 Limit allocator fragmentation in WiredTiger WT-2693 Check open_cursor error paths for consistent handling WT-2708 split child-update race with reconciliation/eviction WT-2711 Change statistics log configuration options WT-2728 Don't re-read log file headers during log_flush WT-2729 Focus eviction walks in largest trees WT-2730 cursor next/prev can return the wrong key/value pair when crossing a page boundary WT-2731 Raw compression can create pages that are larger than expected WT-2732 Coverity analysis defect 99665: Redundant test WT-2737 Scrub dirty pages rather than evicting them WT-2738 Remove the ability to change the default checkpoint name WT-2739 pluggable file systems documentation cleanups WT-2743 Thread count statistics always report 0 WT-2744 partial line even with line buffering set WT-2746 track checkpoint I/O separately from eviction I/O WT-2751 column-store statistics incorrectly calculates the number of entries WT-2752 Fixes to zipfian wtperf workload config WT-2755 flexelint configuration treats size_t as 4B type WT-2756 Upgrade the autoconf archive package to check for swig 3.0 WT-2757 Column tables behave differently when column names are provided WT-2759 Releasing the hot-backup lock doesn't require the schema lock. WT-2760 Fix a bug in backup related to directory sync. Change the filesystem API to make durable the default WT-2762 wtstats tool fails if checkpoint runs WT-2763 Unit test test_intpack failing on OSX WT-2764 Optimize checkpoints to reduce throughput disruption WT-2765 wt dump: indices need to be shown in the dump output WT-2767 test suite needs way to run an individual scenario WT-2769 Update documentation to reflect correct limits of memory_page_max WT-2770 Add statistics tracking schema operations WT-2772 Investigate log performance testing weirdness WT-2773 search_near in indexes does not find exact matches WT-2774 minor cleanups/improvements WT-2778 Python test suite: make scenario initialization consistent WT-2779 Raw compression created unexpectedly large pages on disk WT-2781 Enhance bulk cursor option with an option to return immediately on contention WT-2782 Missing a fs_directory_list_free in ex_file_system.c WT-2785 Scrub dirty pages rather than evicting them: single-page reconciliation WT-2791 Enhance OS X Evergreen unit test WT-2793 wtperf config improvements WT-2796 Memory leak in reconciliation uncovered by stress testing WT-2798 Crash vulnerability with nojournal after create during checkpoint WT-2800 Illegal file format in test/format on PPC WT-2801 Crash vulnerability from eviction of metadata during checkpoint WT-2802 Transaction commit causes heap-use-after free WT-2803 Add verbose functionality to WT Evergreen tests WT-2804 Don't read values in a tree without a snapshot WT-2805 Infinite recursion if error streams fail WT-2806 wtperf allocation size off-by-one Branch: master https://github.com/mongodb/mongo/commit/c4612847ed88c5e0500f0e9ecb2ecdcb49621cf1
          Hide
          xgen-internal-githook Githook User added a comment -

          Author:

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

          Message: WT-2746 Add a new statistic tracking I/O for checkpoints (#2853)

          Separate cache write statistics into checkpoint and non-checkpoint I/O.
          Branch: mongodb-3.2
          https://github.com/wiredtiger/wiredtiger/commit/c33bc33a9afb6f1e980e95cc581b4ba474eb3573

          Show
          xgen-internal-githook Githook User added a comment - Author: {u'username': u'keithbostic', u'name': u'Keith Bostic', u'email': u'keith.bostic@mongodb.com'} Message: WT-2746 Add a new statistic tracking I/O for checkpoints (#2853) Separate cache write statistics into checkpoint and non-checkpoint I/O. Branch: mongodb-3.2 https://github.com/wiredtiger/wiredtiger/commit/c33bc33a9afb6f1e980e95cc581b4ba474eb3573
          Hide
          xgen-internal-githook Githook User added a comment -

          Author:

          {u'username': u'agorrod', u'name': u'Alex Gorrod', u'email': u'alexander.gorrod@mongodb.com'}

          Message: Import wiredtiger: 911c940adab547d36ac305fc627a79e637fa3c40 from branch mongodb-3.2

          ref: dddca65..911c940ada
          for: 3.2.10

          SERVER-24971 Excessive memory held by sessions when application threads do evictions
          SERVER-25843 Coverity analysis defect 99856: Redundant test
          SERVER-25845 Coverity analysis defect 99859: Explicit null dereferenced
          SERVER-25846 Coverity analysis defect 99861: Dereference after null check
          WT-1162 Add latency to Jenkins wtperf tests and plots
          WT-2026 Maximum pages size at eviction too large
          WT-2221 Document which statistics are available via a "fast" configuration vs. an "all" configuration
          WT-2233 Investigate changing when the eviction server switches to aggressive mode.
          WT-2239 Make sure LSM cursors read up to date dsk_gen, it was racing with compact
          WT-2323 Allocate a transaction id at the beginning of join cursor iteration
          WT-2353 Failure to create async threads as part of a wiredtiger_open call will cause a hang
          WT-2380 Make scripts fail if code doesn't match style
          WT-2486 Update make check so that it runs faster
          WT-2555 make format run on Windows
          WT-2578 remove write barriers from the TAILQ_INSERT_XXX macros
          WT-2631 nullptr is passed for parameters marked with attribute non-null
          WT-2638 ftruncate may not be supported
          WT-2645 wt dump: push the complexity of collecting metadata into a dump cursor
          WT-2648 cache-line alignment for new ports
          WT-2665 Limit allocator fragmentation in WiredTiger
          WT-2678 The metadata should not imply that an empty value is true
          WT-2688 configure --enable-python doesn't check for availability of swig
          WT-2693 Check open_cursor error paths for consistent handling
          WT-2695 Integrate s390x accelerated crc32c support
          WT-2708 split child-update race with reconciliation/eviction
          WT-2711 Change statistics log configuration options
          WT-2719 add fuzz testing for WiredTiger options and reconfiguration.
          WT-2728 Don't re-read log file headers during log_flush
          WT-2729 Focus eviction walks in largest trees
          WT-2730 cursor next/prev can return the wrong key/value pair when crossing a page boundary
          WT-2731 Raw compression can create pages that are larger than expected
          WT-2732 Coverity analysis defect 99665: Redundant test
          WT-2734 Improve documentation of eviction behavior
          WT-2737 Scrub dirty pages rather than evicting them
          WT-2738 Remove the ability to change the default checkpoint name
          WT-2739 pluggable file systems documentation cleanups
          WT-2743 Thread count statistics always report 0
          WT-2744 partial line even with line buffering set
          WT-2746 track checkpoint I/O separately from eviction I/O
          WT-2751 column-store statistics incorrectly calculates the number of entries
          WT-2752 Fixes to zipfian wtperf workload config
          WT-2755 flexelint configuration treats size_t as 4B type
          WT-2756 Upgrade the autoconf archive package to check for swig 3.0
          WT-2757 Column tables behave differently when column names are provided
          WT-2759 Releasing the hot-backup lock doesn't require the schema lock.
          WT-2760 Fix a bug in backup related to directory sync. Change the filesystem API to make durable the default
          WT-2762 wtstats tool fails if checkpoint runs
          WT-2763 Unit test test_intpack failing on OSX
          WT-2764 Optimize checkpoints to reduce throughput disruption
          WT-2765 wt dump: indices need to be shown in the dump output
          WT-2766 Don't count eviction of lookaside file pages for the purpose of checking stuck cache
          WT-2767 test suite needs way to run an individual scenario
          WT-2769 Update documentation to reflect correct limits of memory_page_max
          WT-2770 Add statistics tracking schema operations
          WT-2772 Investigate log performance testing weirdness
          WT-2773 search_near in indexes does not find exact matches
          WT-2774 minor cleanups/improvements
          WT-2778 Python test suite: make scenario initialization consistent
          WT-2779 Raw compression created unexpectedly large pages on disk
          WT-2781 Enhance bulk cursor option with an option to return immediately on contention
          WT-2782 Missing a fs_directory_list_free in ex_file_system.c
          WT-2783 wtperf multi-btree.wtperf dumps core on Mac
          WT-2785 Scrub dirty pages rather than evicting them: single-page reconciliation
          WT-2787 Include src/include/wiredtiger_ext.h is problematic
          WT-2788 Java: freed memory overwrite during handle close can cause JNI crash
          WT-2791 Enhance OS X Evergreen unit test
          WT-2793 wtperf config improvements
          WT-2795 Update documentation around read-only configuration
          WT-2796 Memory leak in reconciliation uncovered by stress testing
          WT-2798 Crash vulnerability with nojournal after create during checkpoint
          WT-2800 Illegal file format in test/format on PPC
          WT-2801 Crash vulnerability from eviction of metadata during checkpoint
          WT-2802 Transaction commit causes heap-use-after free
          WT-2803 Add verbose functionality to WT Evergreen tests
          WT-2804 Don't read values in a tree without a snapshot
          WT-2805 Infinite recursion if error streams fail
          WT-2806 wtperf allocation size off-by-one
          WT-2807 Switch Jenkins performance tests to tcmalloc
          WT-2811 Reconciliation asserts that transaction time has gone backwards
          WT-2812 Error when reconfiguring cache targets
          WT-2813 small cache usage stuck even with large cache
          WT-2814 Enhance wtperf to support single-op truncate mode
          WT-2816 Improve WiredTiger eviction performance
          WT-2817 Investigate performance regression in develop, add workload to wtperf/runners
          WT-2818 The page visibility check when queuing pages for eviction is overly restrictive
          WT-2820 add gcc warn_unused_result attribute
          WT-2822 panic mutex and other functions that cannot fail
          WT-2823 support file handles without a truncate method
          WT-2824 wtperf displays connection and table create configurations twice
          WT-2826 clang38 false positive on uninitialized variable.
          WT-2827 checkpoint log_size configuration improvements
          WT-2828 Make long wtperf tests reflect mongoDB usage
          WT-2829 Switch automated testing to use enable-strict configure option
          WT-2832 Python test uses hard-coded temporary directory
          WT-2834 Join cursor: discrepancy with bloom filters
          WT-2835 WT_CONNECTION.leak-memory can skip memory map and cache cleanup
          WT-2838 Don't free session handles on close if leak memory is configured
          WT-2839 lint: Ignoring return value of function
          WT-2840 clang analysis: garbage values
          WT-2841 Jenkins Valgrind runner is reporting errors in test wt2719_reconfig
          WT-2842 split wtperf's configuration into per-database and per-run parts
          WT-2843 Fix a bug in recovery if there is no filesystem truncate support
          WT-2846 Several bugs related to reconfiguring eviction server at runtime
          WT-2847 Merge fair locks into read/write locks.
          WT-2850 clang 4.1 attribute warnings when building
          WT-2853 Multi threaded reader writer example shows temporary slowdown or lockup
          WT-2857 POSIX ftruncate calls should be #ifdef'd HAVE_FTRUNCATE
          WT-2862 Fix lint error in test case for forced eviction with multiple cursors
          WT-2863 Support UTF-8 paths on Windows
          WT-2865 eviction thread error failure
          WT-2866 Eviction server algorithm tuning
          WT-2867 Review and fix barrier usage in __lsm_tree_close
          WT-2868 Add sample_interval to checkpoint-stress wtperf config
          WT-2869 Performance regression on secondaries
          WT-2870 Rename wtperf checkpoint schema jobs
          WT-2871 __wt_verbose has the wrong GCC format attributes
          WT-2872 Recent stuck cache test/stress failures.
          WT-2873 Refactor CRC32 code
          WT-2875 Test test_wt2853_perf can run too long under valgrind
          WT-2876 Extend wtperf to support a log like table
          WT-2878 Verbose changes affected performance
          WT-2881 Add -Wpedantic to clang compiler warning flags
          WT-2883 wiredtiger_open with verbose=handleops recursive loop
          WT-2885 __wt_checkpoint_signal lint
          WT-2886 Decide how in-memory configuration and eviction_dirty_target interact
          WT-2888 Switch functions to return void where possible
          WT-2892 hot backup can race with block truncate
          WT-2896 Coverity #1362535: resource leak
          WT-2897 Checkpoints can become corrupted on failure
          WT-2901 Add option to disable checkpoint dirty stepdown phase
          WT-2903 Reduce the impact of checkpoint scrubbing on applications
          Branch: v3.2
          https://github.com/mongodb/mongo/commit/7d2acd6395ec84beca34718a75371bc11f0c9f60

          Show
          xgen-internal-githook Githook User added a comment - Author: {u'username': u'agorrod', u'name': u'Alex Gorrod', u'email': u'alexander.gorrod@mongodb.com'} Message: Import wiredtiger: 911c940adab547d36ac305fc627a79e637fa3c40 from branch mongodb-3.2 ref: dddca65..911c940ada for: 3.2.10 SERVER-24971 Excessive memory held by sessions when application threads do evictions SERVER-25843 Coverity analysis defect 99856: Redundant test SERVER-25845 Coverity analysis defect 99859: Explicit null dereferenced SERVER-25846 Coverity analysis defect 99861: Dereference after null check WT-1162 Add latency to Jenkins wtperf tests and plots WT-2026 Maximum pages size at eviction too large WT-2221 Document which statistics are available via a "fast" configuration vs. an "all" configuration WT-2233 Investigate changing when the eviction server switches to aggressive mode. WT-2239 Make sure LSM cursors read up to date dsk_gen, it was racing with compact WT-2323 Allocate a transaction id at the beginning of join cursor iteration WT-2353 Failure to create async threads as part of a wiredtiger_open call will cause a hang WT-2380 Make scripts fail if code doesn't match style WT-2486 Update make check so that it runs faster WT-2555 make format run on Windows WT-2578 remove write barriers from the TAILQ_INSERT_XXX macros WT-2631 nullptr is passed for parameters marked with attribute non-null WT-2638 ftruncate may not be supported WT-2645 wt dump: push the complexity of collecting metadata into a dump cursor WT-2648 cache-line alignment for new ports WT-2665 Limit allocator fragmentation in WiredTiger WT-2678 The metadata should not imply that an empty value is true WT-2688 configure --enable-python doesn't check for availability of swig WT-2693 Check open_cursor error paths for consistent handling WT-2695 Integrate s390x accelerated crc32c support WT-2708 split child-update race with reconciliation/eviction WT-2711 Change statistics log configuration options WT-2719 add fuzz testing for WiredTiger options and reconfiguration. WT-2728 Don't re-read log file headers during log_flush WT-2729 Focus eviction walks in largest trees WT-2730 cursor next/prev can return the wrong key/value pair when crossing a page boundary WT-2731 Raw compression can create pages that are larger than expected WT-2732 Coverity analysis defect 99665: Redundant test WT-2734 Improve documentation of eviction behavior WT-2737 Scrub dirty pages rather than evicting them WT-2738 Remove the ability to change the default checkpoint name WT-2739 pluggable file systems documentation cleanups WT-2743 Thread count statistics always report 0 WT-2744 partial line even with line buffering set WT-2746 track checkpoint I/O separately from eviction I/O WT-2751 column-store statistics incorrectly calculates the number of entries WT-2752 Fixes to zipfian wtperf workload config WT-2755 flexelint configuration treats size_t as 4B type WT-2756 Upgrade the autoconf archive package to check for swig 3.0 WT-2757 Column tables behave differently when column names are provided WT-2759 Releasing the hot-backup lock doesn't require the schema lock. WT-2760 Fix a bug in backup related to directory sync. Change the filesystem API to make durable the default WT-2762 wtstats tool fails if checkpoint runs WT-2763 Unit test test_intpack failing on OSX WT-2764 Optimize checkpoints to reduce throughput disruption WT-2765 wt dump: indices need to be shown in the dump output WT-2766 Don't count eviction of lookaside file pages for the purpose of checking stuck cache WT-2767 test suite needs way to run an individual scenario WT-2769 Update documentation to reflect correct limits of memory_page_max WT-2770 Add statistics tracking schema operations WT-2772 Investigate log performance testing weirdness WT-2773 search_near in indexes does not find exact matches WT-2774 minor cleanups/improvements WT-2778 Python test suite: make scenario initialization consistent WT-2779 Raw compression created unexpectedly large pages on disk WT-2781 Enhance bulk cursor option with an option to return immediately on contention WT-2782 Missing a fs_directory_list_free in ex_file_system.c WT-2783 wtperf multi-btree.wtperf dumps core on Mac WT-2785 Scrub dirty pages rather than evicting them: single-page reconciliation WT-2787 Include src/include/wiredtiger_ext.h is problematic WT-2788 Java: freed memory overwrite during handle close can cause JNI crash WT-2791 Enhance OS X Evergreen unit test WT-2793 wtperf config improvements WT-2795 Update documentation around read-only configuration WT-2796 Memory leak in reconciliation uncovered by stress testing WT-2798 Crash vulnerability with nojournal after create during checkpoint WT-2800 Illegal file format in test/format on PPC WT-2801 Crash vulnerability from eviction of metadata during checkpoint WT-2802 Transaction commit causes heap-use-after free WT-2803 Add verbose functionality to WT Evergreen tests WT-2804 Don't read values in a tree without a snapshot WT-2805 Infinite recursion if error streams fail WT-2806 wtperf allocation size off-by-one WT-2807 Switch Jenkins performance tests to tcmalloc WT-2811 Reconciliation asserts that transaction time has gone backwards WT-2812 Error when reconfiguring cache targets WT-2813 small cache usage stuck even with large cache WT-2814 Enhance wtperf to support single-op truncate mode WT-2816 Improve WiredTiger eviction performance WT-2817 Investigate performance regression in develop, add workload to wtperf/runners WT-2818 The page visibility check when queuing pages for eviction is overly restrictive WT-2820 add gcc warn_unused_result attribute WT-2822 panic mutex and other functions that cannot fail WT-2823 support file handles without a truncate method WT-2824 wtperf displays connection and table create configurations twice WT-2826 clang38 false positive on uninitialized variable. WT-2827 checkpoint log_size configuration improvements WT-2828 Make long wtperf tests reflect mongoDB usage WT-2829 Switch automated testing to use enable-strict configure option WT-2832 Python test uses hard-coded temporary directory WT-2834 Join cursor: discrepancy with bloom filters WT-2835 WT_CONNECTION.leak-memory can skip memory map and cache cleanup WT-2838 Don't free session handles on close if leak memory is configured WT-2839 lint: Ignoring return value of function WT-2840 clang analysis: garbage values WT-2841 Jenkins Valgrind runner is reporting errors in test wt2719_reconfig WT-2842 split wtperf's configuration into per-database and per-run parts WT-2843 Fix a bug in recovery if there is no filesystem truncate support WT-2846 Several bugs related to reconfiguring eviction server at runtime WT-2847 Merge fair locks into read/write locks. WT-2850 clang 4.1 attribute warnings when building WT-2853 Multi threaded reader writer example shows temporary slowdown or lockup WT-2857 POSIX ftruncate calls should be #ifdef'd HAVE_FTRUNCATE WT-2862 Fix lint error in test case for forced eviction with multiple cursors WT-2863 Support UTF-8 paths on Windows WT-2865 eviction thread error failure WT-2866 Eviction server algorithm tuning WT-2867 Review and fix barrier usage in __lsm_tree_close WT-2868 Add sample_interval to checkpoint-stress wtperf config WT-2869 Performance regression on secondaries WT-2870 Rename wtperf checkpoint schema jobs WT-2871 __wt_verbose has the wrong GCC format attributes WT-2872 Recent stuck cache test/stress failures. WT-2873 Refactor CRC32 code WT-2875 Test test_wt2853_perf can run too long under valgrind WT-2876 Extend wtperf to support a log like table WT-2878 Verbose changes affected performance WT-2881 Add -Wpedantic to clang compiler warning flags WT-2883 wiredtiger_open with verbose=handleops recursive loop WT-2885 __wt_checkpoint_signal lint WT-2886 Decide how in-memory configuration and eviction_dirty_target interact WT-2888 Switch functions to return void where possible WT-2892 hot backup can race with block truncate WT-2896 Coverity #1362535: resource leak WT-2897 Checkpoints can become corrupted on failure WT-2901 Add option to disable checkpoint dirty stepdown phase WT-2903 Reduce the impact of checkpoint scrubbing on applications Branch: v3.2 https://github.com/mongodb/mongo/commit/7d2acd6395ec84beca34718a75371bc11f0c9f60

            People

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

              Dates

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