summaryrefslogtreecommitdiff
path: root/dist
diff options
context:
space:
mode:
Diffstat (limited to 'dist')
-rw-r--r--dist/api_data.py34
-rw-r--r--dist/api_err.py2
-rw-r--r--dist/filelist3
-rw-r--r--dist/flags.py2
-rwxr-xr-xdist/s_export9
-rw-r--r--dist/s_funcs.list2
-rwxr-xr-xdist/s_longlines5
-rw-r--r--dist/s_string.ok32
-rwxr-xr-xdist/s_style4
-rwxr-xr-xdist/s_whitespace7
-rwxr-xr-xdist/s_win6
-rw-r--r--dist/stat.py12
-rw-r--r--dist/stat_data.py91
13 files changed, 141 insertions, 68 deletions
diff --git a/dist/api_data.py b/dist/api_data.py
index c386c0b345d..02aee1e8825 100644
--- a/dist/api_data.py
+++ b/dist/api_data.py
@@ -76,12 +76,12 @@ lsm_config = [
Config('bloom', 'true', r'''
create bloom filters on LSM tree chunks as they are merged''',
type='boolean'),
- Config('bloom_config', '', r'''
- config string used when creating Bloom filter files, passed
- to WT_SESSION::create'''),
Config('bloom_bit_count', '16', r'''
the number of bits used per item for LSM bloom filters''',
min='2', max='1000'),
+ Config('bloom_config', '', r'''
+ config string used when creating Bloom filter files, passed
+ to WT_SESSION::create'''),
Config('bloom_hash_count', '8', r'''
the number of hash values per item used for LSM bloom
filters''',
@@ -299,6 +299,15 @@ file_meta = file_config + [
the file version'''),
]
+lsm_meta = file_config + lsm_config + [
+ Config('last', '', r'''
+ the last allocated chunk ID'''),
+ Config('chunks', '', r'''
+ active chunks in the LSM tree'''),
+ Config('old_chunks', '', r'''
+ obsolete chunks in the LSM tree'''),
+]
+
table_only_config = [
Config('colgroups', '', r'''
comma-separated list of names of column groups. Each column
@@ -522,6 +531,9 @@ connection_runtime_config = [
the statistics log server uses a session from the configured
session_max''',
type='category', subconfig=[
+ Config('json', 'false', r'''
+ encode statistics in JSON format''',
+ type='boolean'),
Config('on_close', 'false', r'''log statistics on database close''',
type='boolean'),
Config('path', '"WiredTigerStat.%d.%H"', r'''
@@ -538,7 +550,8 @@ connection_runtime_config = [
type='list'),
Config('timestamp', '"%b %d %H:%M:%S"', r'''
a timestamp prepended to each log record, may contain strftime
- conversion specifications'''),
+ conversion specifications, when \c json is configured, defaults
+ to \c "%FT%Y.000Z"'''),
Config('wait', '0', r'''
seconds to wait between each write of the log records; setting
this value above 0 configures statistics logging''',
@@ -655,6 +668,11 @@ wiredtiger_open_common = connection_runtime_config + [
RPC server for primary processes and use RPC for secondary
processes). <b>Not yet supported in WiredTiger</b>''',
type='boolean'),
+ Config('readonly', 'false', r'''
+ open connection in read-only mode. The database must exist. All
+ methods that may modify a database are disabled. See @ref readonly
+ for more information''',
+ type='boolean'),
Config('session_max', '100', r'''
maximum expected number of sessions (including server
threads)''',
@@ -732,12 +750,16 @@ cursor_runtime_config = [
]
methods = {
-'file.meta' : Method(file_meta),
-
'colgroup.meta' : Method(colgroup_meta),
+'file.config' : Method(file_config),
+
+'file.meta' : Method(file_meta),
+
'index.meta' : Method(index_meta),
+'lsm.meta' : Method(lsm_meta),
+
'table.meta' : Method(table_meta),
'WT_CURSOR.close' : Method([]),
diff --git a/dist/api_err.py b/dist/api_err.py
index 09332d508a2..a17c68ee196 100644
--- a/dist/api_err.py
+++ b/dist/api_err.py
@@ -56,6 +56,8 @@ errors = [
This error is generated when wiredtiger_open is configured
to run in-memory, and an insert or update operation requires more
than the configured cache size to complete.''', undoc=True),
+ Error('WT_PERM_DENIED', -31808,
+ 'permission denied (internal)', undoc=True),
]
# Update the #defines in the wiredtiger.in file.
diff --git a/dist/filelist b/dist/filelist
index edd59435841..350e0c50087 100644
--- a/dist/filelist
+++ b/dist/filelist
@@ -153,6 +153,7 @@ src/session/session_compact.c
src/session/session_dhandle.c
src/session/session_salvage.c
src/support/cksum.c
+src/support/cond_auto.c
src/support/crypto.c
src/support/err.c
src/support/filename.c
@@ -163,6 +164,8 @@ src/support/hazard.c
src/support/hex.c
src/support/huffman.c
src/support/pow.c
+src/support/power8/crc32.S
+src/support/power8/crc32_wrapper.c
src/support/rand.c
src/support/scratch.c
src/support/stat.c
diff --git a/dist/flags.py b/dist/flags.py
index b97235b965a..f500e3b1ae1 100644
--- a/dist/flags.py
+++ b/dist/flags.py
@@ -99,6 +99,7 @@ flags = {
'CONN_LOG_SERVER_RUN',
'CONN_LSM_MERGE',
'CONN_PANIC',
+ 'CONN_READONLY',
'CONN_SERVER_ASYNC',
'CONN_SERVER_CHECKPOINT',
'CONN_SERVER_LSM',
@@ -114,6 +115,7 @@ flags = {
'SESSION_LOCK_NO_WAIT',
'SESSION_LOCKED_CHECKPOINT',
'SESSION_LOCKED_HANDLE_LIST',
+ 'SESSION_LOCKED_METADATA',
'SESSION_LOCKED_SCHEMA',
'SESSION_LOCKED_SLOT',
'SESSION_LOCKED_TABLE',
diff --git a/dist/s_export b/dist/s_export
index 1212b5b2c1f..8a2c701d27f 100755
--- a/dist/s_export
+++ b/dist/s_export
@@ -12,10 +12,7 @@ Darwin)
*)
# We require GNU nm, which may not be installed.
type nm > /dev/null 2>&1 &&
- (nm --version | grep 'GNU nm') > /dev/null 2>&1 || {
- echo 'skipped: GNU nm not found'
- exit 0
- }
+ (nm --version | grep 'GNU nm') > /dev/null 2>&1 || exit 0
NM='nm --extern-only --defined-only --print-file-name $f'
;;
esac
@@ -28,7 +25,9 @@ check()
sed 's/.* //' |
egrep -v '^__wt') |
sort |
- uniq -u > $t
+ uniq -u |
+ egrep -v \
+ 'zlib_extension_init|lz4_extension_init|snappy_extension_init' > $t
test -s $t && {
echo "=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-="
diff --git a/dist/s_funcs.list b/dist/s_funcs.list
index ed6cf43bb2f..8d32eecdfb7 100644
--- a/dist/s_funcs.list
+++ b/dist/s_funcs.list
@@ -1,4 +1,6 @@
# List of functions that aren't found by s_funcs, but that's OK.
+FUNC_END
+FUNC_START
WT_CURDUMP_PASS
__bit_ffs
__bit_nclr
diff --git a/dist/s_longlines b/dist/s_longlines
index decedb58f44..000f33d51d5 100755
--- a/dist/s_longlines
+++ b/dist/s_longlines
@@ -9,8 +9,9 @@ l=`(cd .. &&
find dist -name '*.py' &&
find src -name '*.in') |
sed -e '/dist\/stat_data\.py/d' \
- -e '/support\/stat\.c/d' \
- -e '/include\/extern\.h/d'`
+ -e '/include\/extern\.h/d' \
+ -e '/support\/power8/d' \
+ -e '/support\/stat\.c/d'`
for f in $l ; do
expand -t8 < ../$f | awk -- \
diff --git a/dist/s_string.ok b/dist/s_string.ok
index 19fa27cd719..6762521ca76 100644
--- a/dist/s_string.ok
+++ b/dist/s_string.ok
@@ -107,11 +107,13 @@ FALLTHROUGH
FH
FLD
FLSv
+FLv
FNV
FORALL
FOREACH
FULLFSYNC
FindFirstFile
+Fixup
Fk
FlushFileBuffers
Fprintf
@@ -189,6 +191,7 @@ MALLOC
MEM
MEMALIGN
MERCHANTABILITY
+METADATA
MONGODB
MSVC
MULTIBLOCK
@@ -210,6 +213,7 @@ MySecret
NEEDKEY
NEEDVALUE
NOLL
+NOLOCK
NONINFRINGEMENT
NOTFOUND
NOTREACHED
@@ -243,6 +247,7 @@ Preload
Prepend
Qsort
RCS
+RDNOLOCK
RECNO
REF's
REFs
@@ -255,6 +260,7 @@ RNG
RPC
RUNDIR
Radu
+Readonly
Rebalance
RedHat
Redistributions
@@ -328,6 +334,7 @@ VxWorks
WAL
WIREDTIGER
WRLSN
+WRNOLOCK
WakeAllConditionVariable
Wconditional
WeakHashLen
@@ -430,6 +437,8 @@ cfg
cfkos
change's
changelog
+chdir
+checkfmt
checkpointed
checkpointer
checkpointing
@@ -437,6 +446,7 @@ checksum
checksums
children's
chk
+chmod
chongo
cip
cjoin
@@ -501,6 +511,7 @@ datasets
datasource
datastore
dbc
+dbs
dcalloc
decile
deciles
@@ -670,6 +681,7 @@ inline
inmem
insertK
insertV
+inserters
instantiation
intl
intnum
@@ -686,6 +698,7 @@ jnr
jrx
json
kb
+kbits
keycmp
keyid
keyv
@@ -715,6 +728,7 @@ libwiredtiger
llll
llu
loadtext
+localTime
localtime
logf
logmgr
@@ -744,6 +758,8 @@ majorp
malloc
marshall
marshalled
+maxcpu
+maxdbs
mbll
mbss
mem
@@ -756,6 +772,7 @@ memset
memsize
metaconf
metadata
+metadata's
metafile
mfence
minorp
@@ -792,7 +809,9 @@ nfilename
nhex
nlpo
nocase
+noclear
nocrypto
+nolock
nonliteral
noop
nop
@@ -829,8 +848,11 @@ parserp
patchp
pathname
pathnames
+pclose
+pcpu
perf
pfx
+popen
poptable
popthreads
portably
@@ -838,6 +860,7 @@ pos
posint
posix
postsize
+powerpc
pragmas
pre
prealloc
@@ -855,6 +878,7 @@ ps
psp
pthread
ptr
+ptrdiff
pushms
putK
putV
@@ -869,6 +893,7 @@ rS
rb
rbrace
rbracket
+rdonly
rduppo
readlock
readonly
@@ -891,6 +916,7 @@ resize
resizing
ret
retp
+revint
rf
rle
rmw
@@ -898,6 +924,7 @@ rng
rocksdb
rotN
rotn
+rp
rpc
run's
runtime
@@ -965,10 +992,12 @@ superset
sw
sy
sys
+sz
t's
tV
tablename
tcbench
+td
testutil
th
tid
@@ -1054,9 +1083,12 @@ vsize
vsnprintf
vtype
vunpack
+vw
+waitpid
walk's
warmup
wb
+wiredTiger
wiredtiger
workFactor
wrapup
diff --git a/dist/s_style b/dist/s_style
index 44a5bdda741..78fb7a6eb03 100755
--- a/dist/s_style
+++ b/dist/s_style
@@ -18,7 +18,9 @@ if [ $# -ne 1 ]; then
find bench examples ext src test \
-name '*.[chisy]' -o -name '*.in' -o -name '*.dox' |
- sed -e '/Makefile.in/d' -e '/build_win\/wiredtiger_config.h/d' |
+ sed -e '/Makefile.in/d' \
+ -e '/build_win\/wiredtiger_config.h/d' \
+ -e '/support\/power8/d' |
xargs $xp -n 1 -I{} sh ./dist/s_style {}
else
# General style correction and cleanup for a single file
diff --git a/dist/s_whitespace b/dist/s_whitespace
index d13de4b5989..74820a4f0e9 100755
--- a/dist/s_whitespace
+++ b/dist/s_whitespace
@@ -36,10 +36,9 @@ for f in `find bench examples ext src test \
-name '*.[chi]' -o \
-name '*.dox' -o \
-name '*.in' -o \
- -name 'Makefile.am'`; do
- if expr "$f" : ".*/Makefile.in" > /dev/null; then
- continue
- fi
+ -name 'Makefile.am' |
+ sed -e '/Makefile.in/d' \
+ -e '/support\/power8/d'`; do
whitespace_and_empty_line $f
done
diff --git a/dist/s_win b/dist/s_win
index 1eb4702d517..0b7d5184037 100755
--- a/dist/s_win
+++ b/dist/s_win
@@ -44,7 +44,7 @@ win_filelist()
f='../build_win/filelist.win'
# Process the files for which there's a Windows-specific version, then
- # append Windows-only files. (There aren't yet any POSIX-only files.)
+ # append Windows-only files and discard POSIX-only files.
(sed \
-e 's;os_posix/os_dir.c;os_win/os_dir.c;' \
-e 's;os_posix/os_dlopen.c;os_win/os_dlopen.c;' \
@@ -71,7 +71,9 @@ win_filelist()
-e 's;os_posix/os_sleep.c;os_win/os_sleep.c;' \
-e 's;os_posix/os_thread.c;os_win/os_thread.c;' \
-e 's;os_posix/os_time.c;os_win/os_time.c;' \
- -e 's;os_posix/os_yield.c;os_win/os_yield.c;'
+ -e 's;os_posix/os_yield.c;os_win/os_yield.c;' \
+ -e '/src\/support\/power8\/crc32.S/d' \
+ -e '/src\/support\/power8\/crc32_wrapper.c/d'
echo 'src/os_win/os_snprintf.c'
echo 'src/os_win/os_vsnprintf.c') < filelist | sort > $t
cmp $t $f > /dev/null 2>&1 ||
diff --git a/dist/stat.py b/dist/stat.py
index 6dcfccfeab5..7961bf7053f 100644
--- a/dist/stat.py
+++ b/dist/stat.py
@@ -98,11 +98,11 @@ for line in open('../src/include/wiredtiger.in', 'r'):
f.close()
compare_srcfile(tmp_file, '../src/include/wiredtiger.in')
-def print_func(name, handle, list):
+def print_func(name, handle, statlist):
'''Print the structures/functions for the stat.c file.'''
f.write('\n')
f.write('static const char * const __stats_' + name + '_desc[] = {\n')
- for l in list:
+ for l in statlist:
f.write('\t"' + l.desc + '",\n')
f.write('};\n')
@@ -143,7 +143,7 @@ void
__wt_stat_''' + name + '_clear_single(WT_' + name.upper() + '''_STATS *stats)
{
''')
- for l in sorted(list):
+ for l in statlist:
# no_clear: don't clear the value.
if 'no_clear' in l.flags:
f.write('\t\t/* not clearing ' + l.name + ' */\n')
@@ -170,7 +170,7 @@ __wt_stat_''' + name + '''_aggregate_single(
WT_''' + name.upper() + '_STATS *from, WT_' + name.upper() + '''_STATS *to)
{
''')
- for l in sorted(list):
+ for l in statlist:
if 'max_aggregate' in l.flags:
o = '\tif (from->' + l.name + ' > to->' + l.name + ')\n' +\
'\t\tto->' + l.name + ' = from->' + l.name + ';\n'
@@ -190,11 +190,11 @@ __wt_stat_''' + name + '''_aggregate(
# Connection level aggregation does not currently have any computation
# of a maximum value; I'm leaving in support for it, but don't declare
# a temporary variable until it's needed.
- for l in sorted(list):
+ for l in statlist:
if 'max_aggregate' in l.flags:
f.write('\tint64_t v;\n\n')
break;
- for l in sorted(list):
+ for l in statlist:
if 'max_aggregate' in l.flags:
o = '\tif ((v = WT_STAT_READ(from, ' + l.name + ')) > ' +\
'to->' + l.name + ')\n'
diff --git a/dist/stat_data.py b/dist/stat_data.py
index 41a93961079..bd951e64999 100644
--- a/dist/stat_data.py
+++ b/dist/stat_data.py
@@ -12,6 +12,7 @@
# max_aggregate Take the maximum value when aggregating statistics
# no_clear Value not cleared when statistics cleared
# no_scale Don't scale value per second in the logging tool script
+# size Used by timeseries tool, indicates value is a byte count
#
# The no_clear and no_scale flags are normally always set together (values that
# are maintained over time are normally not scaled per second).
@@ -108,6 +109,8 @@ connection_stats = [
##########################################
# System statistics
##########################################
+ ConnStat('cond_auto_wait', 'auto adjusting condition wait calls'),
+ ConnStat('cond_auto_wait_reset', 'auto adjusting condition resets'),
ConnStat('cond_wait', 'pthread mutex condition wait calls'),
ConnStat('file_open', 'files currently open', 'no_clear,no_scale'),
ConnStat('memory_allocation', 'memory allocations'),
@@ -123,7 +126,7 @@ connection_stats = [
##########################################
AsyncStat('async_alloc_race', 'number of allocation state races'),
AsyncStat('async_alloc_view', 'number of operation slots viewed for allocation'),
- AsyncStat('async_cur_queue', 'current work queue length'),
+ AsyncStat('async_cur_queue', 'current work queue length', 'no_scale'),
AsyncStat('async_flush', 'number of flush calls'),
AsyncStat('async_full', 'number of times operation allocation failed'),
AsyncStat('async_max_queue', 'maximum work queue length', 'no_clear,no_scale'),
@@ -138,9 +141,9 @@ connection_stats = [
##########################################
# Block manager statistics
##########################################
- BlockStat('block_byte_map_read', 'mapped bytes read'),
- BlockStat('block_byte_read', 'bytes read'),
- BlockStat('block_byte_write', 'bytes written'),
+ BlockStat('block_byte_map_read', 'mapped bytes read', 'size'),
+ BlockStat('block_byte_read', 'bytes read', 'size'),
+ BlockStat('block_byte_write', 'bytes written', 'size'),
BlockStat('block_map_read', 'mapped blocks read'),
BlockStat('block_preload', 'blocks pre-loaded'),
BlockStat('block_read', 'blocks read'),
@@ -149,14 +152,15 @@ connection_stats = [
##########################################
# Cache and eviction statistics
##########################################
- CacheStat('cache_bytes_dirty', 'tracked dirty bytes in the cache', 'no_clear,no_scale'),
- CacheStat('cache_bytes_internal', 'tracked bytes belonging to internal pages in the cache', 'no_clear,no_scale'),
- CacheStat('cache_bytes_inuse', 'bytes currently in the cache', 'no_clear,no_scale'),
- CacheStat('cache_bytes_leaf', 'tracked bytes belonging to leaf pages in the cache', 'no_clear,no_scale'),
- CacheStat('cache_bytes_max', 'maximum bytes configured', 'no_clear,no_scale'),
- CacheStat('cache_bytes_overflow', 'tracked bytes belonging to overflow pages in the cache', 'no_clear,no_scale'),
- CacheStat('cache_bytes_read', 'bytes read into cache'),
- CacheStat('cache_bytes_write', 'bytes written from cache'),
+ CacheStat('cache_bytes_dirty', 'tracked dirty bytes in the cache', 'no_clear,no_scale,size'),
+ CacheStat('cache_bytes_internal', 'tracked bytes belonging to internal pages in the cache', 'no_clear,no_scale,size'),
+ CacheStat('cache_bytes_inuse', 'bytes currently in the cache', 'no_clear,no_scale,size'),
+ CacheStat('cache_bytes_leaf', 'tracked bytes belonging to leaf pages in the cache', 'no_clear,no_scale,size'),
+ CacheStat('cache_bytes_max', 'maximum bytes configured', 'no_clear,no_scale,size'),
+ CacheStat('cache_bytes_overflow', 'tracked bytes belonging to overflow pages in the cache', 'no_clear,no_scale,size'),
+ CacheStat('cache_bytes_read', 'bytes read into cache', 'size'),
+ CacheStat('cache_bytes_write', 'bytes written from cache', 'size'),
+ CacheStat('cache_eviction_aggressive_set', 'eviction currently operating in aggressive mode', 'no_clear,no_scale'),
CacheStat('cache_eviction_app', 'pages evicted by application threads'),
CacheStat('cache_eviction_checkpoint', 'checkpoint blocked page eviction'),
CacheStat('cache_eviction_clean', 'unmodified pages evicted'),
@@ -168,7 +172,7 @@ connection_stats = [
CacheStat('cache_eviction_force_fail', 'failed eviction of pages that exceeded the in-memory maximum'),
CacheStat('cache_eviction_hazard', 'hazard pointer blocked page eviction'),
CacheStat('cache_eviction_internal', 'internal pages evicted'),
- CacheStat('cache_eviction_maximum_page_size', 'maximum page size at eviction', 'no_clear,no_scale'),
+ CacheStat('cache_eviction_maximum_page_size', 'maximum page size at eviction', 'no_clear,no_scale,size'),
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'),
@@ -206,17 +210,19 @@ connection_stats = [
##########################################
# Logging statistics
##########################################
- LogStat('log_buffer_size', 'total log buffer size', 'no_clear,no_scale'),
- LogStat('log_bytes_payload', 'log bytes of payload data'),
- LogStat('log_bytes_written', 'log bytes written'),
+ LogStat('log_buffer_size', 'total log buffer size', 'no_clear,no_scale,size'),
+ LogStat('log_bytes_payload', 'log bytes of payload data', 'size'),
+ LogStat('log_bytes_written', 'log bytes written', 'size'),
LogStat('log_close_yields', 'yields waiting for previous log file close'),
- LogStat('log_compress_len', 'total size of compressed records'),
- LogStat('log_compress_mem', 'total in-memory size of compressed records'),
+ LogStat('log_compress_len', 'total size of compressed records', 'size'),
+ LogStat('log_compress_mem', 'total in-memory size of compressed records', 'size'),
LogStat('log_compress_small', 'log records too small to compress'),
LogStat('log_compress_write_fails', 'log records not compressed'),
LogStat('log_compress_writes', 'log records compressed'),
LogStat('log_flush', 'log flush operations'),
- LogStat('log_max_filesize', 'maximum log file size', 'no_clear,no_scale'),
+ LogStat('log_force_write', 'log force write operations'),
+ LogStat('log_force_write_skip', 'log force write operations skipped'),
+ LogStat('log_max_filesize', 'maximum log file size', 'no_clear,no_scale,size'),
LogStat('log_prealloc_files', 'pre-allocated log files prepared'),
LogStat('log_prealloc_max', 'number of pre-allocated log files to create', 'no_clear,no_scale'),
LogStat('log_prealloc_missed', 'pre-allocated log files not ready and missed'),
@@ -227,7 +233,7 @@ connection_stats = [
LogStat('log_scans', 'log scan operations'),
LogStat('log_slot_closes', 'consolidated slot closures'),
LogStat('log_slot_coalesced', 'written slots coalesced'),
- LogStat('log_slot_consolidated', 'logging bytes consolidated'),
+ LogStat('log_slot_consolidated', 'logging bytes consolidated', 'size'),
LogStat('log_slot_joins', 'consolidated slot joins'),
LogStat('log_slot_races', 'consolidated slot join races'),
LogStat('log_slot_switch_busy', 'busy returns attempting to switch slots'),
@@ -236,6 +242,7 @@ connection_stats = [
LogStat('log_sync', 'log sync operations'),
LogStat('log_sync_dir', 'log sync_dir operations'),
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'),
LogStat('log_zero_fills', 'log files manually zero-filled'),
@@ -246,7 +253,7 @@ connection_stats = [
RecStat('rec_page_delete_fast', 'fast-path pages deleted'),
RecStat('rec_pages', 'page reconciliation calls'),
RecStat('rec_pages_eviction', 'page reconciliation calls for eviction'),
- RecStat('rec_split_stashed_bytes', 'split bytes currently awaiting free', 'no_clear,no_scale'),
+ RecStat('rec_split_stashed_bytes', 'split bytes currently awaiting free', 'no_clear,no_scale,size'),
RecStat('rec_split_stashed_objects', 'split objects currently awaiting free', 'no_clear,no_scale'),
##########################################
@@ -315,7 +322,7 @@ connection_stats = [
YieldStat('page_sleep', 'page acquire time sleeping (usecs)'),
]
-connection_stats = sorted(connection_stats, key=attrgetter('name'))
+connection_stats = sorted(connection_stats, key=attrgetter('desc'))
##########################################
# Data source statistics
@@ -333,18 +340,18 @@ dsrc_stats = [
CursorStat('cursor_create', 'create calls'),
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'),
+ CursorStat('cursor_insert_bytes', 'cursor-insert key and value bytes inserted', 'size'),
CursorStat('cursor_next', 'next calls'),
CursorStat('cursor_prev', 'prev calls'),
CursorStat('cursor_remove', 'remove calls'),
- CursorStat('cursor_remove_bytes', 'cursor-remove key bytes removed'),
+ CursorStat('cursor_remove_bytes', 'cursor-remove key bytes removed', 'size'),
CursorStat('cursor_reset', 'reset calls'),
CursorStat('cursor_restart', 'restarted searches'),
CursorStat('cursor_search', 'search calls'),
CursorStat('cursor_search_near', 'search near calls'),
CursorStat('cursor_truncate', 'truncate calls'),
CursorStat('cursor_update', 'update calls'),
- CursorStat('cursor_update_bytes', 'cursor-update value bytes updated'),
+ CursorStat('cursor_update_bytes', 'cursor-update value bytes updated', 'size'),
##########################################
# Btree statistics
@@ -357,13 +364,13 @@ dsrc_stats = [
BtreeStat('btree_column_variable', 'column-store variable-size leaf pages', 'no_scale'),
BtreeStat('btree_compact_rewrite', 'pages rewritten by compaction'),
BtreeStat('btree_entries', 'number of key/value pairs', 'no_scale'),
- BtreeStat('btree_fixed_len', 'fixed-record size', 'max_aggregate,no_scale'),
+ BtreeStat('btree_fixed_len', 'fixed-record size', 'max_aggregate,no_scale,size'),
BtreeStat('btree_maximum_depth', 'maximum tree depth', 'max_aggregate,no_scale'),
- BtreeStat('btree_maxintlkey', 'maximum internal page key size', 'max_aggregate,no_scale'),
- BtreeStat('btree_maxintlpage', 'maximum internal page size', 'max_aggregate,no_scale'),
- BtreeStat('btree_maxleafkey', 'maximum leaf page key size', 'max_aggregate,no_scale'),
- BtreeStat('btree_maxleafpage', 'maximum leaf page size', 'max_aggregate,no_scale'),
- BtreeStat('btree_maxleafvalue', 'maximum leaf page value size', 'max_aggregate,no_scale'),
+ BtreeStat('btree_maxintlkey', 'maximum internal page key size', 'max_aggregate,no_scale,size'),
+ BtreeStat('btree_maxintlpage', 'maximum internal page size', 'max_aggregate,no_scale,size'),
+ BtreeStat('btree_maxleafkey', 'maximum leaf page key size', 'max_aggregate,no_scale,size'),
+ BtreeStat('btree_maxleafpage', 'maximum leaf page size', 'max_aggregate,no_scale,size'),
+ BtreeStat('btree_maxleafvalue', 'maximum leaf page value size', 'max_aggregate,no_scale,size'),
BtreeStat('btree_overflow', 'overflow pages', 'no_scale'),
BtreeStat('btree_row_internal', 'row-store internal pages', 'no_scale'),
BtreeStat('btree_row_leaf', 'row-store leaf pages', 'no_scale'),
@@ -377,7 +384,7 @@ dsrc_stats = [
LSMStat('bloom_miss', 'bloom filter misses'),
LSMStat('bloom_page_evict', 'bloom filter pages evicted from cache'),
LSMStat('bloom_page_read', 'bloom filter pages read into cache'),
- LSMStat('bloom_size', 'total size of bloom filters', 'no_scale'),
+ LSMStat('bloom_size', 'total size of bloom filters', 'no_scale,size'),
LSMStat('lsm_checkpoint_throttle', 'sleep for LSM checkpoint throttle'),
LSMStat('lsm_chunk_count', 'chunks in the LSM tree', 'no_scale'),
LSMStat('lsm_generation_max', 'highest merge generation in the LSM tree', 'max_aggregate,no_scale'),
@@ -387,22 +394,22 @@ dsrc_stats = [
##########################################
# Block manager statistics
##########################################
- BlockStat('allocation_size', 'file allocation unit size', 'max_aggregate,no_scale'),
+ BlockStat('allocation_size', 'file allocation unit size', 'max_aggregate,no_scale,size'),
BlockStat('block_alloc', 'blocks allocated'),
- BlockStat('block_checkpoint_size', 'checkpoint size', 'no_scale'),
+ BlockStat('block_checkpoint_size', 'checkpoint size', 'no_scale,size'),
BlockStat('block_extension', 'allocations requiring file extension'),
BlockStat('block_free', 'blocks freed'),
BlockStat('block_magic', 'file magic number', 'max_aggregate,no_scale'),
BlockStat('block_major', 'file major version number', 'max_aggregate,no_scale'),
BlockStat('block_minor', 'minor version number', 'max_aggregate,no_scale'),
- BlockStat('block_reuse_bytes', 'file bytes available for reuse'),
- BlockStat('block_size', 'file size in bytes', 'no_scale'),
+ BlockStat('block_reuse_bytes', 'file bytes available for reuse', 'no_scale,size'),
+ BlockStat('block_size', 'file size in bytes', 'no_scale,size'),
##########################################
# Cache and eviction statistics
##########################################
- CacheStat('cache_bytes_read', 'bytes read into cache'),
- CacheStat('cache_bytes_write', 'bytes written from cache'),
+ CacheStat('cache_bytes_read', 'bytes read into cache', 'size'),
+ CacheStat('cache_bytes_write', 'bytes written from cache', 'size'),
CacheStat('cache_eviction_checkpoint', 'checkpoint blocked page eviction'),
CacheStat('cache_eviction_clean', 'unmodified pages evicted'),
CacheStat('cache_eviction_deepen', 'page split during eviction deepened the tree'),
@@ -448,8 +455,8 @@ dsrc_stats = [
RecStat('rec_page_match', 'page checksum matches'),
RecStat('rec_pages', 'page reconciliation calls'),
RecStat('rec_pages_eviction', 'page reconciliation calls for eviction'),
- RecStat('rec_prefix_compression', 'leaf page key bytes discarded using prefix compression'),
- RecStat('rec_suffix_compression', 'internal page key bytes discarded using suffix compression'),
+ RecStat('rec_prefix_compression', 'leaf page key bytes discarded using prefix compression', 'size'),
+ RecStat('rec_suffix_compression', 'internal page key bytes discarded using suffix compression', 'size'),
##########################################
# Transaction statistics
@@ -457,7 +464,7 @@ dsrc_stats = [
TxnStat('txn_update_conflict', 'update conflicts'),
]
-dsrc_stats = sorted(dsrc_stats, key=attrgetter('name'))
+dsrc_stats = sorted(dsrc_stats, key=attrgetter('desc'))
##########################################
# Cursor Join statistics
@@ -468,4 +475,4 @@ join_stats = [
JoinStat('bloom_false_positive', 'bloom filter false positives'),
]
-join_stats = sorted(join_stats, key=attrgetter('name'))
+join_stats = sorted(join_stats, key=attrgetter('desc'))