| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* Fix a bug found by inspection in LZ4 code: we're going to offset the destination buffer by sizeof(LZ4_PREFIX), so we need to offset the destination buffer length by the same amount.
* Prettiness pass through the snappy driver so it and the zstd driver look the same, minor cleanup in zlib.
* Add the compression_level configuration option to the zstd extension initialization function so it's possible to set the compression level from an application.
* Fix a bug in zlib raw compression: the destination buffer size (dst_len), can be smaller than the target page size (page_max), use the smaller of the two values to set the target compression size.
* The zlib raw compression function could return without calling deflateEnd on its z_stream structures, potentially leaking memory and scratch buffers.
* If the default reserved bytes for zlib raw compression isn't sufficient, we fail on compression of what might be very large blocks. We don't have information on how many bytes need to be reserved in order to know the final deflate() will succeed, and the default value was experimentally derived, for all we know there are workloads where the default will fail
a lot. Add a fallback before failing hard, try with 2x the default reserved space.
|
|
|
|
|
|
|
|
|
| |
* WT-2949 Add option to skip closing the connection after test runs.
* Reverse the default value per review comments and add where needed to
configs.
* Add additional text/comments for new option.
|
|
|
|
| |
(#3085)
|
|
|
| |
If a system call to retrieve a timestamp fails it will now result in a panic. We couldn't find any case where that's a real possibility.
|
|
|
|
| |
Also replace key-string generation implementation with a more efficient implementation.
|
| |
|
| |
|
|
|
|
|
|
|
| |
Having _FAST_ macros gives an impression that when we use them,
we are collecting fast statistics only, which is not true.
Except when statistics=none is set, we collect all the stats.
This change removes _FAST_ macros and modifies the basic macros
to only collect stats when statistics=none is not set.
|
|
|
| |
Via use a high thread count and throttled operations.
|
|
|
| |
Some functions return an error code even though they don't need to. That adds complexity to our code. Switch to returning a void.
|
|
|
|
| |
Also fix compiler warning on OS X
|
|
|
| |
This allows us to partially simulate secondary replica nodes.
|
|
|
|
| |
parts" (#3005)
|
|
|
|
| |
(#3004)
|
| |
|
| |
|
|
|
|
|
|
| |
* WT-2824 Fix double concating the config strings
* WT-2824 Fix code styling
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
| |
A set of changes to the eviction algorithm including:
* Fix a bug in how many items can be added to the urgent queue
* Have the eviction server sleep less so it recovers from disruptions faster.
* Only have application threads evict dirty pages if they are blocked on the dirty trigger.
* Swap eviction queues when one becomes empty.
* Have the eviction server populate the "other" queue whenever it notices that it isn't full.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The multi-database wtperf feature implementation assigns memory from the
base CONFIG structure to the CONFIG copies, but then individually frees
the memory referenced by the copies, resulting in OS X complaints that
memory is freed more than once.
Rename the config_assign() function to be config_init(), it does more
than simply assign the previous values.
In config_init(), create copies of the configuration strings in each new
CONFIG structure. There are also a few places where CONFIG.home and
CONFIG.monitor_dir are set (for example, to the value of the command
line -h and -m options), change that code to free/allocate so we maintain
a local copy of the strings in every CONFIG structure.
Change config_init() to copy the CONFIG.home and CONFIG.monitor_dir
fields along with the rest of the CONFIG structure, they get freed in
config_free(), so they should be copied in config_init().
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* Set sample rate for every operation
* Set a smaller value size.
* Update table config to reflect MongoDB defaults. Add eviction threads
* Set session max like MongoDB
* Update comments
* Fix runner script to take NOCREATE arg to run successive tests.
* Add warmup to long test configs
|
|
|
|
|
|
|
| |
* Add the gcc "cold" attribute to the verbose, message, and assorted error functions (informs the compiler that the function is unlikely to be executed).
* Add the WT_IGNORE_RET() macro that ignores return values in the handfull of places we want to ignore return values.
* Replace calls to fprintf() in the utility with calls to util_err(), replace local variable names in error messages with class names.
|
| |
|
|
|
| |
From jemalloc to TCMalloc - to match the MongoDB default. It improves throughput in a couple of tests without any noticeable regressions.
|
|
|
| |
Enabled via new truncate_single_ops option.
|
| |
|
|
|
|
|
|
|
|
| |
* WT-2793 Remove very long running config. Rename the one we run.
* Fix overflow stats. Make 130K overflow test use btree.
* Add line to upgrading doc stating stat field removed.
|
|
|
|
|
|
| |
When logging is disabled, a create operation (and potentially other
metadata updates) could write partially completed checkpoint metadata,
leaving on-disk files inconsistent until the checkpoint completes.
|
| |
|
|
|
|
|
|
| |
* WT-2772 Adjust log.wtperf config. Remove unneeded configs.
* WT-2772 Update comment to make clear logging is enabled.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* Link/include test/testutils with wtperf so we can use the test utility macros and functions in wtperf.
* Minor changes to wtperf variables, sort some options, make some things boolean.
* Merge the stub memory allocation functions used by the test code and wtperf.
* Remove the WT_EVICT_CLEAN flag, it's never used.
* __wt_page_can_evict() doesn't need to set WT_EVICTING, the only place
that cares is __evict_review(), and it already sets that flag.
* Add a new reconciliation flag WT_EVICT_SCRUB; it causes reconciliation
to save disk images it creates. Change the eviction of multi-block pages to
optionally re-instantiate pages in memory instead of evicting them.
* When instantiating pages in-memory, set the read-generation to the same
value as the read-generation of the original page (unless it's set to
WT_READGEN_OLDEST, in which case leave the page's read-generation unset.
* Simplify the in-memory tests some.
* Turn on fixed-length store tests, they're no longer slow (no clue what changed).
* Sue suggested removing Helium support from wtperf.
* Replace dcalloc() calls before snprintf() calls with dmalloc.
* Cosmetic cleanup: set the boundary structure's entries when initializing at the start of __rec_split_write(), don't set it at some random spot in the code.
* After writing a block during checkpoint, we potentially re-use that block during eviction, and during eviction we'll want a disk image for potential re-instantiation in memory. If re-using a block but the boundary structure doesn't already have a disk image, create one.
I don't think the boundary structure will ever already have a disk image in the current code, but future versions of reconciliation might, and the test is the same as the one we have to do for raw compression, which has already created the disk image.
* If we're closing, don't instantiate any disk images, additionally, free any disk images we don't use. Both changes should fix the same problem where we have a disk image when we're truly discarding the page during a close, one should prevent us from ever having a disk image at that point, the other should prevent use from using any disk image we have.
* Fixes for wtperf directory create changes: ensure the directory exists before the configuration file is dumped and create the right directories in multi-database mode.
|
|
|
| |
Separate cache write statistics into checkpoint and non-checkpoint I/O.
|
| |
|
|
|
|
| |
Add latency monitor to populate phase
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Randomize visits to trees that use a tiny fraction of the cache.
Other general eviction optimizations.
Now that we are queuing more entries (potentially), make sure enough of
them become candidates. Previously, a skewed distribution of read
generations could mean that only 10% of queue entries were considered.
Improve the efficiency of sorting the queue by calculating the score
once when pages are added to the queue.
Add a workload to exercise differential eviction from trees.
In order to do that, add range partitioning to wtperf.
Don't override icount in wtperf workloads with random_range set.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* Cast arguments for ctype functions to avoid sign extension errors.
Create __wt_* versions of all ctype functions, and use them whenever
wt_internal.h is available. Add check to prevent direct use of ctype functions
from core source.
* Change wrappers to use u_char arguments, and return bool.
Remove unused wrappers.
* Use u_char in preference to unsigned char.
* Examples do not have u_char defined on Windows.
|
|
|
|
|
|
| |
Add the --enable-strict option that uses our current best guess at the right flags for strict compilation.
While adding the option, expand the set of flags we can compile cleanly with.
|
|
|
| |
Fix comment spelling.
|
|
|
|
|
|
|
|
| |
* Free memory when returning an error.
* Remove unnecessary parenthesis.
* Make repeated addition/subtraction operator order of evaluation explicit.
* Remove repeated #includes.
* Some minor restructuring of the config file parsing to handle more
complicated line continuation and whitespace combinations.
|
|
|
|
|
|
|
|
| |
* Modify wtperf to handle escaped quotes.
* Made local function static.
Added backslash in quote (normally redundant) needed to keep spell check sane.
Fixed C++ style comment.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* WT-2610 Reduce hazard pointer array size.
* Add session_count_idle and workload to wtperf.
* Allocate session array outside the loop.
* KNF
* Remove diagnostic call to check hazard pointers.
* Add a few hazard related statistics.
* Revert change. Reinstate diagnostic hazard page check.
|
| |
|
|\ |
|
| |\
| | |
| | | |
WT-2512 - Change how wtperf throttle values per thread are calculated
|
| | | |
|
| | | |
|
|/ /
| |
| |
| |
| |
| |
| |
| |
| | |
Add WiredTiger helper functions set set line buffering and turn off
buffering (wrappers for setvbuf), then add style tests so we never call
setvbuf directly, to avoid re-introducing the problems in WT-2517.
Add a new WiredTiger open-handle flag, WT_STREAM_LINE_BUFFER, which
allows the Btree debug code to set line-buffering on its debug stream.
|