diff options
author | Ramon Fernandez <ramon@mongodb.com> | 2016-08-26 18:28:48 -0400 |
---|---|---|
committer | Ramon Fernandez <ramon@mongodb.com> | 2016-08-26 18:28:48 -0400 |
commit | f2a613a41d6ad7b5a1b66087e386380d38e50599 (patch) | |
tree | 4843fb7b6a835e72046142046e9364f7d7dda992 /src/third_party/wiredtiger/dist | |
parent | 7614c0eb2449eb4ec22d21b677177124d61f1888 (diff) | |
download | mongo-f2a613a41d6ad7b5a1b66087e386380d38e50599.tar.gz |
Import wiredtiger: 2566118fc68b0124187e806bed52eb7cdbcb1be0 from branch mongodb-3.4
ref: 34182ad..2566118fc6
for: 3.3.12
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-2678 The metadata should not imply that an empty value is true
WT-2695 Integrate s390x accelerated crc32c support
WT-2719 add fuzz testing for WiredTiger options and reconfiguration.
WT-2734 Improve documentation of eviction behavior
WT-2766 Don't count eviction of lookaside file pages for the purpose of checking stuck cache
WT-2783 wtperf multi-btree.wtperf dumps core on Mac
WT-2787 Include src/include/wiredtiger_ext.h is problematic
WT-2795 Update documentation around read-only configuration
WT-2807 Switch Jenkins performance tests to tcmalloc
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-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-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
Diffstat (limited to 'src/third_party/wiredtiger/dist')
-rw-r--r-- | src/third_party/wiredtiger/dist/api_config.py | 6 | ||||
-rw-r--r-- | src/third_party/wiredtiger/dist/api_data.py | 28 | ||||
-rw-r--r-- | src/third_party/wiredtiger/dist/filelist | 6 | ||||
-rw-r--r-- | src/third_party/wiredtiger/dist/flags.py | 1 | ||||
-rw-r--r-- | src/third_party/wiredtiger/dist/s_funcs.list | 1 | ||||
-rwxr-xr-x | src/third_party/wiredtiger/dist/s_longlines | 1 | ||||
-rwxr-xr-x | src/third_party/wiredtiger/dist/s_prototypes | 7 | ||||
-rw-r--r-- | src/third_party/wiredtiger/dist/s_string.ok | 40 | ||||
-rwxr-xr-x | src/third_party/wiredtiger/dist/s_style | 5 | ||||
-rwxr-xr-x | src/third_party/wiredtiger/dist/s_win | 2 | ||||
-rw-r--r-- | src/third_party/wiredtiger/dist/stat_data.py | 6 |
11 files changed, 75 insertions, 28 deletions
diff --git a/src/third_party/wiredtiger/dist/api_config.py b/src/third_party/wiredtiger/dist/api_config.py index b451e939ef3..5ccd8247b76 100644 --- a/src/third_party/wiredtiger/dist/api_config.py +++ b/src/third_party/wiredtiger/dist/api_config.py @@ -195,13 +195,15 @@ def checkstr(c): def get_default(c): t = gettype(c) if c.default == 'false': - return '0' + return 'false' + elif c.default == 'true': + return 'true' elif t == 'string' and c.default == 'none': return '' elif t == 'category': return '(%s)' % (','.join('%s=%s' % (subc.name, get_default(subc)) for subc in sorted(c.subconfig))) - elif (c.default or t == 'int') and c.default != 'true': + elif c.default or t == 'int': return str(c.default).replace('"', '\\"') else: return '' diff --git a/src/third_party/wiredtiger/dist/api_data.py b/src/third_party/wiredtiger/dist/api_data.py index 1302247e88e..e732e42d36d 100644 --- a/src/third_party/wiredtiger/dist/api_data.py +++ b/src/third_party/wiredtiger/dist/api_data.py @@ -375,7 +375,8 @@ connection_runtime_config = [ type='category', subconfig=[ Config('log_size', '0', r''' wait for this amount of log record bytes to be written to - the log between each checkpoint. A database can configure + the log between each checkpoint. If non-zero, this value will + use a minimum of the log file size. A database can configure both log_size and wait to set an upper bound for checkpoints; setting this value above 0 configures periodic checkpoints''', min='0', max='2GB'), @@ -402,23 +403,25 @@ connection_runtime_config = [ min=1, max=20), ]), Config('eviction_dirty_target', '5', r''' - continue evicting until the cache has less dirty memory than the - value, as a percentage of the total cache size. Dirty pages will - only be evicted if the cache is full enough to trigger eviction''', + perform eviction in worker threads when the cache contains at least + this much dirty content, expressed as a percentage of the total cache + size.''', min=1, max=99), Config('eviction_dirty_trigger', '20', r''' - trigger eviction when the cache is using this much memory for dirty - content, as a percentage of the total cache size. This setting only - alters behavior if it is lower than eviction_trigger''', + trigger application threads to perform eviction when the cache contains + at least this much dirty content, expressed as a percentage of the + total cache size. This setting only alters behavior if it is lower than + eviction_trigger''', min=1, max=99), Config('eviction_target', '80', r''' - continue evicting until the cache has less total memory than the - value, as a percentage of the total cache size. Must be less than - \c eviction_trigger''', + perform eviction in worker threads when the cache contains at least + this much content, expressed as a percentage of the total cache size. + Must be less than \c eviction_trigger''', min=10, max=99), Config('eviction_trigger', '95', r''' - trigger eviction when the cache is using this much memory, as a - percentage of the total cache size''', min=10, max=99), + trigger application threads to perform eviction when the cache contains + at least this much content, expressed as a percentage of the + total cache size.''', min=10, max=99), Config('file_manager', '', r''' control how file handles are managed''', type='category', subconfig=[ @@ -516,6 +519,7 @@ connection_runtime_config = [ 'shared_cache', 'split', 'temporary', + 'thread_group', 'transaction', 'verify', 'version', diff --git a/src/third_party/wiredtiger/dist/filelist b/src/third_party/wiredtiger/dist/filelist index 59624508cf0..e16ae879a33 100644 --- a/src/third_party/wiredtiger/dist/filelist +++ b/src/third_party/wiredtiger/dist/filelist @@ -47,9 +47,11 @@ src/btree/row_key.c src/btree/row_modify.c src/btree/row_srch.c src/cache/cache_las.c -src/checksum/checksum.c src/checksum/power8/crc32.S POWERPC_HOST src/checksum/power8/crc32_wrapper.c POWERPC_HOST +src/checksum/x86/checksum.c X86_HOST +src/checksum/zseries/crc32-s390x.c ZSERIES_HOST +src/checksum/zseries/crc32le-vx.S ZSERIES_HOST src/config/config.c src/config/config_api.c src/config/config_check.c @@ -145,6 +147,7 @@ src/os_win/os_sleep.c WINDOWS_HOST src/os_win/os_snprintf.c WINDOWS_HOST src/os_win/os_thread.c WINDOWS_HOST src/os_win/os_time.c WINDOWS_HOST +src/os_win/os_utf8.c WINDOWS_HOST src/os_win/os_vsnprintf.c WINDOWS_HOST src/os_win/os_winerr.c WINDOWS_HOST src/os_win/os_yield.c WINDOWS_HOST @@ -182,6 +185,7 @@ src/support/pow.c src/support/rand.c src/support/scratch.c src/support/stat.c +src/support/thread_group.c src/txn/txn.c src/txn/txn_ckpt.c src/txn/txn_ext.c diff --git a/src/third_party/wiredtiger/dist/flags.py b/src/third_party/wiredtiger/dist/flags.py index 8091283a8c0..93b6e0cbbf4 100644 --- a/src/third_party/wiredtiger/dist/flags.py +++ b/src/third_party/wiredtiger/dist/flags.py @@ -80,6 +80,7 @@ flags = { 'VERB_SHARED_CACHE', 'VERB_SPLIT', 'VERB_TEMPORARY', + 'VERB_THREAD_GROUP', 'VERB_TRANSACTION', 'VERB_VERIFY', 'VERB_VERSION', diff --git a/src/third_party/wiredtiger/dist/s_funcs.list b/src/third_party/wiredtiger/dist/s_funcs.list index c0d9f2e688f..01835390997 100644 --- a/src/third_party/wiredtiger/dist/s_funcs.list +++ b/src/third_party/wiredtiger/dist/s_funcs.list @@ -1,6 +1,7 @@ # List of functions that aren't found by s_funcs, but that's OK. FUNC_END FUNC_START +WT_CRC32_ENTRY WT_CURDUMP_PASS __bit_ffs __bit_nclr diff --git a/src/third_party/wiredtiger/dist/s_longlines b/src/third_party/wiredtiger/dist/s_longlines index 91dada361f4..43e350022dd 100755 --- a/src/third_party/wiredtiger/dist/s_longlines +++ b/src/third_party/wiredtiger/dist/s_longlines @@ -9,6 +9,7 @@ l=`(cd .. && find dist -name '*.py' && find src -name '*.in') | sed -e '/checksum\/power8/d' \ + -e '/checksum\/zseries/d' \ -e '/dist\/stat_data\.py/d' \ -e '/include\/extern\.h/d' \ -e '/include\/extern_posix\.h/d' \ diff --git a/src/third_party/wiredtiger/dist/s_prototypes b/src/third_party/wiredtiger/dist/s_prototypes index 73f7be371ea..89fa750d106 100755 --- a/src/third_party/wiredtiger/dist/s_prototypes +++ b/src/third_party/wiredtiger/dist/s_prototypes @@ -28,7 +28,7 @@ proto() -e 's/\* /\*/g' \ -e 's/ */ /g' \ -e 's/^/extern /' \ - -e 's/WT_GCC_FUNC_/WT_GCC_FUNC_DECL_/g' \ + -e 's/WT_GCC_FUNC_ATTRIBUTE/WT_GCC_FUNC_DECL_ATTRIBUTE/g' \ -e '# If a line ends in #endif, appending a semicolon will result' \ -e '# in an illegal expression, force an appended newline using' \ -e '# the H command because substitute may not allow newline in' \ @@ -39,6 +39,9 @@ proto() -e H \ -e x \ -e '}' \ + -e '# Add the gcc warn_unused_result attribute to any external' \ + -e '# functions that return an int.' \ + -e '/^extern int /s/$/ WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result))/' \ -e 's/$/;/' \ -e p < $1 } @@ -73,6 +76,8 @@ externs f=../src/include/extern.h l=`sed \ -e '/^[a-z]/!d' \ + -e '/\/checksum\/power8/d' \ + -e '/\/checksum\/zseries/d' \ -e '/os_posix/d' \ -e '/os_win/d' \ -e 's/[ ].*$//' filelist` diff --git a/src/third_party/wiredtiger/dist/s_string.ok b/src/third_party/wiredtiger/dist/s_string.ok index 8c5f1e99bff..30a2f1b77e9 100644 --- a/src/third_party/wiredtiger/dist/s_string.ok +++ b/src/third_party/wiredtiger/dist/s_string.ok @@ -5,6 +5,7 @@ AAAAAAAAAAAAA AAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAA ABCDEFGHIJKLMNOPQRSTUVWXYZ +ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz ADDR ADDRs AJ @@ -12,6 +13,7 @@ API APIs ARG ARGS +ASM ASYNC Addr Ailamaki @@ -37,6 +39,7 @@ BZ Barack Bitfield Bitwise +Brueckner Bsearch Btree Buf @@ -59,6 +62,7 @@ CSV CURSORs CURSTD CallsCustDate +Castagnoli Checkpointing Checksum Checksums @@ -67,9 +71,9 @@ CloseHandle Comparator Config Coverity -CreateFileA CreateFileMapping -CreateFileMappingA +CreateFileMappingW +CreateFileW Crummey CustomersPhone DECL @@ -85,7 +89,7 @@ DbCursor DbEnv Decrement Decrypt -DeleteFileA +DeleteFileW EACCES EAGAIN EB @@ -135,17 +139,18 @@ GIDs Gcc Geoff GetEnvironmentVariableA -GetFileAttributesA GetFileAttributesEx +GetFileAttributesW GetFileSizeEx GetLastError -GetModuleHandleEx +GetModuleHandleExW GetProcAddress Google HFS HHHH HHHHLL HHHLL +Hendrik HyperLevelDB IEC IEEE @@ -156,9 +161,11 @@ INCR INIT INITIALIZER INMEM +INSN INTL ISA ITEMs +InitializeCriticalSectionAndSpinCount Inline Intra Ippokratis @@ -205,6 +212,8 @@ MEMALIGN MERCHANTABILITY METADATA MONGODB +MRXB +MRXBOPC MSVC MULTI MULTIBLOCK @@ -219,8 +228,9 @@ Mewhort Mitzenmacher MongoDB MoveFile -MoveFileA +MoveFileW Multi +MultiByteToWideChar Multithreaded Mutex MySecret @@ -233,6 +243,7 @@ NOTFOUND NOTREACHED NOVALUE NUL +NUM NetBSD NoAddr Noll @@ -243,6 +254,7 @@ OUTBUFF OVFL ObWgfvgw Obama +Opcode Outfmt PARAM POSIX @@ -276,6 +288,7 @@ RMW RNG RPC RUNDIR +RXB Radu ReadFile Readonly @@ -345,6 +358,8 @@ Uryyb VARCHAR VLDB VMSG +VR +VX Vc Vfprintf Vigenere @@ -362,6 +377,7 @@ Wconditional WeakHashLen Werror Wformat +WideCharToMultiByte WinNT WiredTiger WiredTiger's @@ -407,12 +423,14 @@ autocommit autoconf automake bInheritHandle +bal basecfg basho bcr bdb beginthreadex bigram +binutils bitcnt bitfield bitfields @@ -500,6 +518,7 @@ conn connectionp const constantp +consts cookiep copydoc copyin @@ -629,6 +648,7 @@ fcntl fd fdatasync fdopen +fextend ffc fflush ffs @@ -706,7 +726,10 @@ iSh ibackup icount idx +ifdef ifdef's +iiSii +iiii iiu ikey im @@ -897,6 +920,7 @@ onint online onpage oo +opcode opendir openfile optimizations @@ -904,6 +928,7 @@ optype ori os osfhandle +other's ovfl ownp pR @@ -961,6 +986,7 @@ qrrSS qsort quartile qup +rN rS rb rbrace @@ -1146,6 +1172,7 @@ usr utf util uu +vN vW va valgrind @@ -1165,6 +1192,7 @@ vsnprintf vtype vunpack vw +vxr waitpid walk's warmup diff --git a/src/third_party/wiredtiger/dist/s_style b/src/third_party/wiredtiger/dist/s_style index e33db5a5fab..47f18ef1f18 100755 --- a/src/third_party/wiredtiger/dist/s_style +++ b/src/third_party/wiredtiger/dist/s_style @@ -20,7 +20,8 @@ if [ $# -ne 1 ]; then -name '*.[chisy]' -o -name '*.in' -o -name '*.dox' | sed -e '/Makefile.in/d' \ -e '/build_win\/wiredtiger_config.h/d' \ - -e '/checksum\/power8/d' | + -e '/checksum\/power8/d' \ + -e '/checksum\/zseries/d' | xargs $xp -n 1 -I{} sh ./dist/s_style {} else # General style correction and cleanup for a single file @@ -173,7 +174,7 @@ else -e 's/\([ ,]\)u_int64_t\([ ,]\)/\1uint64_t\2/g' \ -e 's/\([ ,]\)u_quad\([ ,]\)/\1uint64_t\2/g' \ -e 's/\([|&=+-]\) *\([^*]\)/\1 \2/' \ - -e 's/(void) \([a-zA-Z_]\)/(void)\1/' \ + -e 's/[ ](void) \([a-zA-Z_]\)/(void)\1/' \ -e '/for /!s/;;$/;/' \ -e 's/(EOPNOTSUPP)/(ENOTSUP)/' \ -e 's/(unsigned)/(u_int)/' \ diff --git a/src/third_party/wiredtiger/dist/s_win b/src/third_party/wiredtiger/dist/s_win index 49deb348bc3..5b45cacf0f4 100755 --- a/src/third_party/wiredtiger/dist/s_win +++ b/src/third_party/wiredtiger/dist/s_win @@ -19,7 +19,7 @@ win_config() test -s $t && { echo "=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=" - echo "Windows #defines missing from $f" + echo "$f: configuration #defines do not match POSIX" echo "=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=" cat $t exit 1 diff --git a/src/third_party/wiredtiger/dist/stat_data.py b/src/third_party/wiredtiger/dist/stat_data.py index 51cc487f04c..af410a341bd 100644 --- a/src/third_party/wiredtiger/dist/stat_data.py +++ b/src/third_party/wiredtiger/dist/stat_data.py @@ -201,12 +201,12 @@ connection_stats = [ CacheStat('cache_eviction_queue_empty', 'eviction server candidate queue empty when topping up'), CacheStat('cache_eviction_queue_not_empty', 'eviction server candidate queue not empty when topping up'), CacheStat('cache_eviction_server_evicting', 'eviction server evicting pages'), - CacheStat('cache_eviction_server_not_evicting', 'eviction server populating queue, but not evicting pages'), CacheStat('cache_eviction_server_slept', 'eviction server slept, because we did not make progress with eviction'), CacheStat('cache_eviction_server_toobig', 'eviction server skipped very large page'), CacheStat('cache_eviction_slow', 'eviction server unable to reach eviction goal'), CacheStat('cache_eviction_split_internal', 'internal pages split during eviction'), CacheStat('cache_eviction_split_leaf', 'leaf pages split during eviction'), + CacheStat('cache_eviction_state', 'eviction state', 'no_clear,no_scale'), CacheStat('cache_eviction_walk', 'pages walked for eviction'), CacheStat('cache_eviction_walks_active', 'files with active eviction walks', 'no_clear,no_scale,size'), CacheStat('cache_eviction_walks_started', 'files with new eviction walks started'), @@ -276,8 +276,8 @@ connection_stats = [ LogStat('log_slot_unbuffered', 'consolidated slot unbuffered writes'), LogStat('log_sync', 'log sync operations'), LogStat('log_sync_dir', 'log sync_dir operations'), - LogStat('log_sync_dir_duration', 'log sync_dir time duration (usecs)'), - LogStat('log_sync_duration', 'log sync time duration (usecs)'), + LogStat('log_sync_dir_duration', 'log sync_dir time duration (usecs)', 'no_clear,no_scale'), + LogStat('log_sync_duration', 'log sync time duration (usecs)', 'no_clear,no_scale'), LogStat('log_write_lsn', 'log server thread advances write LSN'), LogStat('log_write_lsn_skip', 'log server thread write LSN walk skipped'), LogStat('log_writes', 'log write operations'), |