summaryrefslogtreecommitdiff
path: root/dist
diff options
context:
space:
mode:
Diffstat (limited to 'dist')
-rw-r--r--dist/api_data.py1
-rw-r--r--dist/api_err.py24
-rw-r--r--dist/filelist1
-rw-r--r--dist/flags.py2
-rw-r--r--dist/package/wiredtiger.spec2
-rwxr-xr-xdist/s_c_test_create2
-rwxr-xr-xdist/s_copyright9
-rw-r--r--dist/s_copyright.list5
-rw-r--r--dist/s_define.list1
-rwxr-xr-xdist/s_prototypes3
-rwxr-xr-xdist/s_stat7
-rw-r--r--dist/s_string.ok17
-rwxr-xr-xdist/s_void4
-rwxr-xr-xdist/s_whitespace1
-rw-r--r--dist/stat_data.py45
15 files changed, 91 insertions, 33 deletions
diff --git a/dist/api_data.py b/dist/api_data.py
index 22600dd5e29..3297c68147a 100644
--- a/dist/api_data.py
+++ b/dist/api_data.py
@@ -529,6 +529,7 @@ connection_runtime_config = [
'fileops',
'handleops',
'log',
+ 'lookaside_activity',
'lsm',
'lsm_manager',
'metadata',
diff --git a/dist/api_err.py b/dist/api_err.py
index bd379ac8d70..bfa4459d438 100644
--- a/dist/api_err.py
+++ b/dist/api_err.py
@@ -41,10 +41,10 @@ errors = [
WT_CURSOR::update or WT_CURSOR::remove.'''),
Error('WT_PANIC', -31804,
'WiredTiger library panic', '''
- This error indicates an underlying problem that requires the
- application exit and restart. The application can exit
- immediately when \c WT_PANIC is returned from a WiredTiger
- interface, no further WiredTiger calls are required.'''),
+ This error indicates an underlying problem that requires a database
+ restart. The application may exit immediately, no further WiredTiger
+ calls are required (and further calls will themselves immediately
+ fail).'''),
Error('WT_RESTART', -31805,
'restart the operation (internal)', undoc=True),
Error('WT_RUN_RECOVERY', -31806,
@@ -112,8 +112,6 @@ tfile.write('''/* DO NOT EDIT: automatically built by dist/api_err.py. */
const char *
__wt_wiredtiger_error(int error)
{
-\tconst char *p;
-
\t/*
\t * Check for WiredTiger specific errors.
\t */
@@ -125,14 +123,20 @@ for err in errors:
tfile.write('\t\treturn ("' + err.name + ': ' + err.desc + '");\n')
tfile.write('''\t}
+\t/* Windows strerror doesn't support ENOTSUP. */
+\tif (error == ENOTSUP)
+\t\treturn ("Operation not supported");
+
\t/*
-\t * POSIX errors are non-negative integers; check for 0 explicitly incase
-\t * the underlying strerror doesn't handle 0, some historically didn't.
+\t * Check for 0 in case the underlying strerror doesn't handle it, some
+\t * historically didn't.
\t */
\tif (error == 0)
\t\treturn ("Successful return: 0");
-\tif (error > 0 && (p = strerror(error)) != NULL)
-\t\treturn (p);
+
+\t/* POSIX errors are non-negative integers. */
+\tif (error > 0)
+\t\treturn (strerror(error));
\treturn (NULL);
}
diff --git a/dist/filelist b/dist/filelist
index 5a3348b940a..6b6e617c4b1 100644
--- a/dist/filelist
+++ b/dist/filelist
@@ -179,6 +179,7 @@ src/session/session_salvage.c
src/support/cond_auto.c
src/support/crypto.c
src/support/err.c
+src/support/generation.c
src/support/global.c
src/support/hash_city.c
src/support/hash_fnv.c
diff --git a/dist/flags.py b/dist/flags.py
index 64b5d789e72..8edabd69648 100644
--- a/dist/flags.py
+++ b/dist/flags.py
@@ -32,7 +32,6 @@ flags = {
'READ_PREV',
'READ_RESTART_OK',
'READ_SKIP_INTL',
- 'READ_SKIP_LEAF',
'READ_TRUNCATE',
'READ_WONT_NEED',
],
@@ -68,6 +67,7 @@ flags = {
'VERB_FILEOPS',
'VERB_HANDLEOPS',
'VERB_LOG',
+ 'VERB_LOOKASIDE',
'VERB_LSM',
'VERB_LSM_MANAGER',
'VERB_METADATA',
diff --git a/dist/package/wiredtiger.spec b/dist/package/wiredtiger.spec
index aacdf327c98..9d9bdd3949c 100644
--- a/dist/package/wiredtiger.spec
+++ b/dist/package/wiredtiger.spec
@@ -1,5 +1,5 @@
Name: wiredtiger
-Version: 2.9.2
+Version: 2.9.3
Release: 1%{?dist}
Summary: WiredTiger data storage engine
diff --git a/dist/s_c_test_create b/dist/s_c_test_create
index f4f9eb3ac1f..1d379664e75 100755
--- a/dist/s_c_test_create
+++ b/dist/s_c_test_create
@@ -35,7 +35,7 @@ mkdir $CSUITE_DIRECTORY/$TEST_NAME
(cat <<EOF
/*-
- * Public Domain 2014-2016 MongoDB, Inc.
+ * Public Domain 2014-2017 MongoDB, Inc.
* Public Domain 2008-2014 WiredTiger, Inc.
*
* This is free and unencumbered software released into the public domain.
diff --git a/dist/s_copyright b/dist/s_copyright
index 9ff6c20492e..4a93be73fb6 100755
--- a/dist/s_copyright
+++ b/dist/s_copyright
@@ -53,7 +53,7 @@ if [ $# -ne 0 ]; then
exit 0
fi
-trap 'rm -f $c1 $c2 $c3 $c4' 0 1 2 3 13 15
+trap 'rm -f $c1 $c2 $c3 $c4 $c5' 0 1 2 3 13 15
year=`date +%Y`
@@ -117,18 +117,24 @@ fi
-e '/api\/leveldb\/hyperleveldb\//d' \
-e '/api\/leveldb\/leveldb\//d' \
-e '/api\/leveldb\/rocksdb\//d' \
+ -e '/checksum\/power8\//d' \
+ -e '/checksum\/zseries\//d' \
-e '/\/3rdparty\//d' \
-e '/\/node_modules\//d' \
-e '/dist\/__/d' \
-e 's/^\.\///' |
xargs $xp -n 1 -I{} sh dist/s_copyright {})
+# One-offs.
+(cd .. && sh dist/s_copyright test/syscall/wt2336_base/base.run)
+
# A few special cases: LICENSE, documentation, wt utility, some of which have
# more than one copyright notice in the file. For files that have only a single
# copyright notice, we give it to MongoDB, from 2008 to now.
string1="Copyright \(c\) 2014-$year MongoDB, Inc."
string2="Copyright \(c\) 2008-$year MongoDB, Inc."
string3="printf.*Copyright \(c\) 2008-$year MongoDB, Inc."
+string4="Public Domain 2014-$year MongoDB, Inc."
special_copyright()
{
cnt=`egrep "$3" ../$1 | wc -l`
@@ -138,6 +144,7 @@ special_copyright()
}
special_copyright LICENSE 1 "$string1"
+special_copyright dist/s_c_test_create 1 "$string4"
special_copyright src/docs/build-javadoc.sh 1 "$string2"
special_copyright src/docs/style/footer.html 2 "$string2"
special_copyright src/utilities/util_cpyright.c 1 "$string3"
diff --git a/dist/s_copyright.list b/dist/s_copyright.list
index 4999d2a37a2..2ac63bcb159 100644
--- a/dist/s_copyright.list
+++ b/dist/s_copyright.list
@@ -1,4 +1,7 @@
+skip api/leveldb/leveldb_wt_config.h
skip api/leveldb/leveldb_wt_config.in
+skip bench/workgen/workgen/workgen.py
+skip bench/workgen/workgen_wrap.cxx
skip build_win/wiredtiger_config.h
skip dist/api_config.py
skip dist/api_data.py
@@ -9,9 +12,11 @@ skip dist/flags.py
skip dist/java_doc.py
skip dist/log.py
skip dist/log_data.py
+skip dist/s_label_loop.py
skip dist/stat.py
skip dist/stat_data.py
skip dist/style.py
+skip dist/wtperf_config.py
skip lang/java/java_doc.i
skip lang/java/src/com/wiredtiger/db/AsyncOp.java
skip lang/java/src/com/wiredtiger/db/AsyncOpType.java
diff --git a/dist/s_define.list b/dist/s_define.list
index 8911d888077..9f94132f584 100644
--- a/dist/s_define.list
+++ b/dist/s_define.list
@@ -58,6 +58,7 @@ WT_STAT_INCRV_BASE
WT_STAT_WRITE
WT_TIMEDIFF_US
WT_TRET_ERROR_OK
+WT_UPDATE_SIZE
WT_WITH_LOCK_NOWAIT
WT_WITH_LOCK_WAIT
__F
diff --git a/dist/s_prototypes b/dist/s_prototypes
index d6228866f08..9675cd5a843 100755
--- a/dist/s_prototypes
+++ b/dist/s_prototypes
@@ -42,9 +42,6 @@ proto()
-e '# Add the 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 '# Add the hidden attribute to any external functions without' \
- -e '# an explicit visibility.' \
- -e '/visibility/!s/$/ WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden")))/' \
-e 's/$/;/' \
-e p < $1
}
diff --git a/dist/s_stat b/dist/s_stat
index 6aeeca6faa6..cf9303e5f95 100755
--- a/dist/s_stat
+++ b/dist/s_stat
@@ -25,15 +25,20 @@ cat << UNUSED_STAT_FIELDS
lock_checkpoint_count
lock_checkpoint_wait_application
lock_checkpoint_wait_internal
+lock_dhandle_read_count
+lock_dhandle_wait_application
+lock_dhandle_wait_internal
+lock_dhandle_write_count
lock_metadata_count
lock_metadata_wait_application
lock_metadata_wait_internal
lock_schema_count
lock_schema_wait_application
lock_schema_wait_internal
-lock_table_count
+lock_table_read_count
lock_table_wait_application
lock_table_wait_internal
+lock_table_write_count
UNUSED_STAT_FIELDS
echo "$search"
diff --git a/dist/s_string.ok b/dist/s_string.ok
index 1f7f7d9fd3a..4ddb64297f4 100644
--- a/dist/s_string.ok
+++ b/dist/s_string.ok
@@ -305,6 +305,7 @@ RMW
RNG
RPC
RUNDIR
+RWLOCK
RXB
Radu
ReadFile
@@ -344,6 +345,7 @@ Split's
Stoica
StoreLoad
StoreStore
+Su
Syscall
TAILQ
TCMalloc
@@ -353,6 +355,8 @@ TORTIOUS
TSO
TXN
TXNC
+ThreadList
+ThreadListWrapper
Timespec
Timestamp
TryCV
@@ -515,11 +519,13 @@ change's
changelog
chdir
checkfmt
+checkkey
checkpointed
checkpointer
checkpointing
checksum
checksums
+checkvalue
children's
chk
chmod
@@ -731,6 +737,7 @@ fsyncLock
fsyncs
ftruncate
func
+fvisibility
gcc
gdb
ge
@@ -806,6 +813,7 @@ intl
intnum
intpack
intptr
+intr
intrin
inuse
io
@@ -864,7 +872,9 @@ llll
llu
loadtext
localTime
+localkey
localtime
+localvalue
logf
logmgr
lognum
@@ -938,7 +948,10 @@ nbits
nchunks
nclr
nd
+needkey
+needvalue
negint
+nentries
newbar
newfile
newuri
@@ -957,6 +970,7 @@ noraw
notfound
notsup
notused
+novalue
nowait
nset
nsnap
@@ -1081,6 +1095,7 @@ rotN
rotn
rp
rpc
+ru
run's
runtime
rwlock
@@ -1186,6 +1201,7 @@ txnid
txnmin
txt
typedef
+typemaps
uB
uS
ui
@@ -1266,6 +1282,7 @@ whitespace
wiredTiger
wiredtiger
workFactor
+workgen
wrapup
writeable
writelock
diff --git a/dist/s_void b/dist/s_void
index 249f043d029..d7f2c81a211 100755
--- a/dist/s_void
+++ b/dist/s_void
@@ -88,8 +88,8 @@ func_ok()
-e '/int handle_progress$/d' \
-e '/int helium_cursor_reset$/d' \
-e '/int helium_session_verify$/d' \
- -e '/int index_compare_primary$/d' \
-e '/int index_compare_S$/d' \
+ -e '/int index_compare_primary$/d' \
-e '/int index_compare_u$/d' \
-e '/int index_extractor_u$/d' \
-e '/int log_print_err$/d' \
@@ -103,7 +103,6 @@ func_ok()
-e '/int nop_pre_size$/d' \
-e '/int nop_sizing$/d' \
-e '/int nop_terminate$/d' \
- -e '/int nop_terminate$/d' \
-e '/int os_errno$/d' \
-e '/int revint_terminate$/d' \
-e '/int rotn_error$/d' \
@@ -111,6 +110,7 @@ func_ok()
-e '/int rotn_terminate$/d' \
-e '/int snappy_pre_size$/d' \
-e '/int snappy_terminate$/d' \
+ -e '/int subtest_error_handler$/d' \
-e '/int uri2name$/d' \
-e '/int usage$/d' \
-e '/int util_err$/d' \
diff --git a/dist/s_whitespace b/dist/s_whitespace
index 0de59bc5825..874074dfb50 100755
--- a/dist/s_whitespace
+++ b/dist/s_whitespace
@@ -8,6 +8,7 @@ trap 'rm -f $t' 0 1 2 3 13 15
# into a single line, discard trailing empty lines.
whitespace()
{
+ ! head $1 | grep -q 'automatically generated by SWIG' || return
sed -e 's/[ ][ ]*$//' < $1 | \
cat -s | \
sed -e '${' -e '/^$/d' -e '}' > $t
diff --git a/dist/stat_data.py b/dist/stat_data.py
index ac79ffd029a..7b919848003 100644
--- a/dist/stat_data.py
+++ b/dist/stat_data.py
@@ -150,6 +150,7 @@ connection_stats = [
ConnStat('read_io', 'total read I/Os'),
ConnStat('rwlock_read', 'pthread mutex shared lock read-lock calls'),
ConnStat('rwlock_write', 'pthread mutex shared lock write-lock calls'),
+ ConnStat('time_travel', 'detected system time went backwards'),
ConnStat('write_io', 'total write I/Os'),
##########################################
@@ -203,9 +204,12 @@ connection_stats = [
CacheStat('cache_eviction_dirty', 'modified pages evicted'),
CacheStat('cache_eviction_empty_score', 'eviction empty score', 'no_clear,no_scale'),
CacheStat('cache_eviction_fail', 'pages selected for eviction unable to be evicted'),
- CacheStat('cache_eviction_force', 'pages evicted because they exceeded the in-memory maximum'),
- CacheStat('cache_eviction_force_delete', 'pages evicted because they had chains of deleted items'),
- CacheStat('cache_eviction_force_fail', 'failed eviction of pages that exceeded the in-memory maximum'),
+ CacheStat('cache_eviction_force', 'pages evicted because they exceeded the in-memory maximum count'),
+ CacheStat('cache_eviction_force_time', 'pages evicted because they exceeded the in-memory maximum time (usecs)'),
+ CacheStat('cache_eviction_force_delete', 'pages evicted because they had chains of deleted items count'),
+ CacheStat('cache_eviction_force_delete_time', 'pages evicted because they had chains of deleted items time (usecs)'),
+ CacheStat('cache_eviction_force_fail', 'failed eviction of pages that exceeded the in-memory maximum count'),
+ CacheStat('cache_eviction_force_fail_time', 'failed eviction of pages that exceeded the in-memory maximum time (usecs)'),
CacheStat('cache_eviction_force_retune', 'force re-tuning of eviction workers once in a while'),
CacheStat('cache_eviction_get_ref', 'eviction calls to get a page'),
CacheStat('cache_eviction_get_ref_empty', 'eviction calls to get a page found queue empty'),
@@ -230,8 +234,8 @@ connection_stats = [
CacheStat('cache_eviction_walks_abandoned', 'eviction walks abandoned'),
CacheStat('cache_eviction_walks_active', 'files with active eviction walks', 'no_clear,no_scale'),
CacheStat('cache_eviction_walks_started', 'files with new eviction walks started'),
- CacheStat('cache_eviction_worker_evicting', 'eviction worker thread evicting pages'),
CacheStat('cache_eviction_worker_created', 'eviction worker thread created'),
+ CacheStat('cache_eviction_worker_evicting', 'eviction worker thread evicting pages'),
CacheStat('cache_eviction_worker_removed', 'eviction worker thread removed'),
CacheStat('cache_hazard_checks', 'hazard pointer check calls'),
CacheStat('cache_hazard_max', 'hazard pointer maximum array length', 'max_aggregate,no_scale'),
@@ -261,9 +265,11 @@ connection_stats = [
##########################################
CursorStat('cursor_create', 'cursor create calls'),
CursorStat('cursor_insert', 'cursor insert calls'),
+ CursorStat('cursor_modify', 'cursor modify calls'),
CursorStat('cursor_next', 'cursor next calls'),
CursorStat('cursor_prev', 'cursor prev calls'),
CursorStat('cursor_remove', 'cursor remove calls'),
+ CursorStat('cursor_reserve', 'cursor reserve calls'),
CursorStat('cursor_reset', 'cursor reset calls'),
CursorStat('cursor_restart', 'cursor restarted searches'),
CursorStat('cursor_search', 'cursor search calls'),
@@ -289,16 +295,20 @@ connection_stats = [
LockStat('lock_checkpoint_count', 'checkpoint lock acquisitions'),
LockStat('lock_checkpoint_wait_application', 'checkpoint lock application thread wait time (usecs)'),
LockStat('lock_checkpoint_wait_internal', 'checkpoint lock internal thread wait time (usecs)'),
- LockStat('lock_handle_list_wait_eviction', 'handle-list lock eviction thread wait time (usecs)'),
+ LockStat('lock_dhandle_read_count', 'dhandle read lock acquisitions'),
+ LockStat('lock_dhandle_wait_application', 'dhandle lock application thread time waiting for the dhandle lock (usecs)'),
+ LockStat('lock_dhandle_wait_internal', 'dhandle lock internal thread time waiting for the dhandle lock (usecs)'),
+ LockStat('lock_dhandle_write_count', 'dhandle write lock acquisitions'),
LockStat('lock_metadata_count', 'metadata lock acquisitions'),
LockStat('lock_metadata_wait_application', 'metadata lock application thread wait time (usecs)'),
LockStat('lock_metadata_wait_internal', 'metadata lock internal thread wait time (usecs)'),
LockStat('lock_schema_count', 'schema lock acquisitions'),
LockStat('lock_schema_wait_application', 'schema lock application thread wait time (usecs)'),
LockStat('lock_schema_wait_internal', 'schema lock internal thread wait time (usecs)'),
- LockStat('lock_table_count', 'table lock acquisitions'),
+ LockStat('lock_table_read_count', 'table read lock acquisitions'),
LockStat('lock_table_wait_application', 'table lock application thread time waiting for the table lock (usecs)'),
LockStat('lock_table_wait_internal', 'table lock internal thread time waiting for the table lock (usecs)'),
+ LockStat('lock_table_write_count', 'table write lock acquisitions'),
##########################################
# Logging statistics
@@ -324,16 +334,22 @@ connection_stats = [
LogStat('log_scan_records', 'records processed by log scan'),
LogStat('log_scan_rereads', 'log scan records requiring two reads'),
LogStat('log_scans', 'log scan operations'),
- LogStat('log_slot_active_closed', 'consolidated slot join active slot closed'),
- LogStat('log_slot_closes', 'consolidated slot closures'),
+ LogStat('log_slot_active_closed', 'slot join found active slot closed'),
+ LogStat('log_slot_close_race', 'slot close lost race'),
+ LogStat('log_slot_close_unbuf', 'slot close unbuffered waits'),
+ LogStat('log_slot_closes', 'slot closures'),
LogStat('log_slot_coalesced', 'written slots coalesced'),
LogStat('log_slot_consolidated', 'logging bytes consolidated', 'size'),
- LogStat('log_slot_joins', 'consolidated slot joins'),
- LogStat('log_slot_no_free_slots', 'consolidated slot transitions unable to find free slot'),
- LogStat('log_slot_races', 'consolidated slot join races'),
+ LogStat('log_slot_immediate', 'slot join calls did not yield'),
+ LogStat('log_slot_no_free_slots', 'slot transitions unable to find free slot'),
+ LogStat('log_slot_races', 'slot join atomic update races'),
LogStat('log_slot_switch_busy', 'busy returns attempting to switch slots'),
- LogStat('log_slot_transitions', 'consolidated slot join transitions'),
- LogStat('log_slot_unbuffered', 'consolidated slot unbuffered writes'),
+ LogStat('log_slot_unbuffered', 'slot unbuffered writes'),
+ LogStat('log_slot_yield', 'slot join calls yielded'),
+ LogStat('log_slot_yield_close', 'slot join calls found active slot closed'),
+ LogStat('log_slot_yield_duration', 'slot joins yield time (usecs)', 'no_clear,no_scale'),
+ LogStat('log_slot_yield_race', 'slot join calls atomic updates raced'),
+ LogStat('log_slot_yield_sleep', 'slot join calls slept'),
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)', 'no_clear,no_scale'),
@@ -424,6 +440,7 @@ connection_stats = [
TxnStat('txn_snapshots_created', 'number of named snapshots created'),
TxnStat('txn_snapshots_dropped', 'number of named snapshots dropped'),
TxnStat('txn_sync', 'transaction sync calls'),
+ TxnStat('txn_update_conflict', 'update conflicts'),
##########################################
# Yield statistics
@@ -546,10 +563,12 @@ dsrc_stats = [
CursorStat('cursor_insert', 'insert calls'),
CursorStat('cursor_insert_bulk', 'bulk-loaded cursor-insert calls'),
CursorStat('cursor_insert_bytes', 'cursor-insert key and value bytes inserted', 'size'),
+ CursorStat('cursor_modify', 'modify calls'),
CursorStat('cursor_next', 'next calls'),
CursorStat('cursor_prev', 'prev calls'),
CursorStat('cursor_remove', 'remove calls'),
CursorStat('cursor_remove_bytes', 'cursor-remove key bytes removed', 'size'),
+ CursorStat('cursor_reserve', 'reserve calls'),
CursorStat('cursor_reset', 'reset calls'),
CursorStat('cursor_restart', 'restarted searches'),
CursorStat('cursor_search', 'search calls'),