useful, but which still might be required by current readers.
When reconciling pages with updates which still might be read by existing
snapshot readers, write the updates into a lookaside table. When those
pages are read back into the cache, any still-relevant updates are read
back from the lookaside table and attached to the page.
Add a new on-disk page-header flag, WT_PAGE_LAS_UPDATE, set when a page
has records in the look-aside table.
Remove the __wt_evict_page() code, replace with calls to __wt_evict(),
and add testing in reconciliation to only write committed updates. As
part of that change, remove the WT_ISO_EVICTION transaction isolation
configuration, it's no longer used (WT_ISO_READ_UNCOMMITTED is used
instead).
Delete the WT_PAGE_MODIFY.rec_max_txn field (no longer needed after
reconciliation is changed to return EBUSY if a page wasn't marked
clean, replacing the test of WT_PAGE_MODIFY.rec_max_txn __evict_review).
Delete the test for all updates being globally visible when a page is
discarded from the cache, that's no longer true. Delete the
WT_SESSION_DISCARD_FORCE flag, used to turn off that check when forcibly
discarding a page.
of a two, 4B value array, declare the value volatile to avoid having the
compiler alter the read/write path.
Add a check if a PRNG component ever goes to zero and reset it.
Give every thread its own RNG state so there's no competition for the
cache lines.
Initialize the random-number generator early so we catch all possible
configuration uses.
Remove duplicates of WiredTiger's macros.
it the default (LZ4 block mode is now lz4-noraw, to match zlib).
This implementation mostly works, but...
It's not backward compatible because we're storing more information in
the destination buffer than before (two 4B values instead of a one 8B
value). The 2.5.3 release is the only release that had LZ4 support, so
I don't expect this to be a problem. We could be backward compatible,
but not without a fair amount of pain.
This code sizes decompression buffers incorrectly. The WiredTiger btree
code sizes the decompression buffer based on the final in-memory size
of the data, which isn't correct for data compressed with LZ4's raw
compression function which may have compressed more data than the final
in-memory size.
Calling function "mkdir(char const *, __mode_t)" that uses "g.home"
after a check function. This can cause a time-of-check, time-of-use
race condition.
operations so we test opening and closing the objects, but if there
are no operations to do, we just need to verify the bulk-load and
we're done.
Don't drop core & test recovery until the last of the N loops, we
were doing it on the first.
use timer to specify the maximum run, that is, you can set a count
of operations as well as the timer, and if both set, whichever expires
first limits the run.
at 50% each.
Turn on logging all the time in the recovery test script.
Explode the configuration snprintf() for wiredtiger_open.
The test to check for configuration buffer overrun in WT_SESSION.create
was wrong, fix it.