summaryrefslogtreecommitdiff
path: root/src/include
AgeCommit message (Collapse)Author
2014-03-28lintAlex Gorrod
Originally fixed as part of larger change: cc25faad1f24b2024b60ef242e60c77e51d38d93
2014-03-28Don't maintain the per-size skiplist unless it's an element on the liveKeith Bostic
"avail" list. The problem is we're holding the live system's spinlock when updating the per-size skiplist, and that appears to be a bottleneck. Reference #924.
2014-03-28Update sharec_cache configuration again.Alex Gorrod
Remove enabled option, set default value for name to empty, and require that a name is provided if any shared_cache configuration is provided. Also update upgrading documentation and tests.
2014-03-28Update shared cache configuration options:Alex Gorrod
* Change enable to enabled to match log setting. * Return an error if there is a shared_cache configuration string but it's not enabled and not explicit cache_size configuration.
2014-03-28Take a copy of the update transaction ID in reconciliation in case we race ↵Michael Cahill
with a rollback. Go straight to aggressive eviction once the cache gets stuck. refs #894
2014-03-03Read threads should not bump the cache read generation: eviction is now ↵Michael Cahill
responsible for that. Somehow this part of 30b1a822b26ff0531a0d31aa2895bc98b6f53d88 got lost.
2014-03-03Use one check for whether to try forced eviction in a given session. Skip ↵Michael Cahill
eviction of clean pages with modifications that are too recent, unless eviction gets aggressive.
2014-02-28Add comments explaining the reconciliation transactional read logic, ↵Michael Cahill
including when pages become clean.
2014-02-28Rename disk_txn to reflect what we're actually using it for.Michael Cahill
2014-02-28Fix another bug regarding when pages can be evicted: have reconcilition ↵Michael Cahill
track the maximum transaction ID on the page (regardless of whether it is skipped). A page can only be evicted when it is clean and has no updates that are too new. refs #884
2014-02-27Merge pull request #847 from wiredtiger/checkpoint-directioAlex Gorrod
Do direct I/O reads on checkpoints to reduce the VM pressure of LSM workloads
2014-02-27Update documentation for direct_io configuration.Alex Gorrod
2014-02-27Don't automatically enable direct I/O on checkpoints.Alex Gorrod
Using direct I/O requires careful selection of page sizes, and doesn't always improve performance. It's not worth enabling it automatically.
2014-02-26Merge branch 'develop' into checkpoint-directioMichael Cahill
2014-02-26Merge branch 'develop' into lsm-fixesMichael Cahill
2014-02-26Update documentation for wiredtiger_config_parser_openAlex Gorrod
2014-02-26Typo fix that got lost in merge.Alex Gorrod
2014-02-26Switch to incrementing the global read generation from the eviction server: ↵Michael Cahill
this reduces collisions between updates from multiple threads and avoids updates entirely for in-memory workloads.
2014-02-26Merge branch 'develop' into config-parse-apiAlex Gorrod
Conflicts: src/include/wiredtiger_ext.h
2014-02-26Add wiredtiger_config_parser_open and wiredtiger_version into extension API.Alex Gorrod
This is necessary so that statically linked applications can always find the symbols.
2014-02-25Typo.Susan LoVerso
2014-02-25Allow some internal pages to be evicted without eviction getting aggressive.Michael Cahill
Don't require eviction to visit pages twice before they can be evicted: in a large cache, it may take a very long time for eviction to move all the way through the cache, and this was keeping pages pinned for much longer than they needed to be. Remember if some files are not generating many eviction candidates, and visit them less often than files with many evictable pages.
2014-02-25Configuration parser API, update documentation and examples.Alex Gorrod
2014-02-25Update the configuration parsing API. Including:Alex Gorrod
* Don't copy the input string. * Remove reset and remove complex semantics. * Rename search back to get.
2014-02-24Update the configuration parsing API. Not finalized, but a step closer.Alex Gorrod
2014-02-24Merge branch 'develop' into lsm-fixesMichael Cahill
2014-02-21Fix a long-standing bug where a page could be marked clean (and evicted) ↵Michael Cahill
when it contained uncommitted changes. refs #835, #818(?), #581
2014-02-20Only evict Bloom filter pages if eviction gets aggressive.Michael Cahill
2014-02-20Use a count in LSM cursors to decide whether to throttle: the shared count ↵Michael Cahill
can race and with huge records, there may not be enough records per chunk to get effective throttling. Also tweak LSM merges to minimize throttling: stick with low-level merges whenever the throttle value is non-zero. refs #874, #663
2014-02-17Increase the skew against evicting internal pages: some wtperf workloads ↵Michael Cahill
cause excessive eviction. refs #829 (etc.)
2014-02-13Add configuration parsing to the public API.Alex Gorrod
Don't remove it from the extension API for now - to match the value packing code. Updated inline documentation, but not the official documentation - since I suspect this will change before it's merged. Update wtperf usage of configuration parsing API.
2014-02-07Merge branch 'develop' into checkpoint-directioMichael Cahill
2014-02-06Add statistics to track the amount of time application threads spend ↵Michael Cahill
throttled for LSM checkpoints or merges.
2014-02-03Only retry compress_raw if it returns EAGAIN. Otherwise, if no rows were ↵Michael Cahill
compressed, assume that compression failed and fall back to standard compression.
2014-01-31Rewrite the retry/no-retry paragraphs to echo each other "if no rowsKeith Bostic
could be compressed" isn't the same as "don't try again".
2014-01-31We use 0/zero inconsistently in the documentation, fix one place so weKeith Bostic
don't in adjacent paragraphs, talking about the same variables.
2014-01-31Fix several problems with raw compression:Michael Cahill
* when shuffling entries around, ranges can overlap (found by valgrind). Use memmove rather than memcpy. * use the allocation size to figure out which keys can't be split: with 512 byte leaf pages, the first offset was always near 1KB so compression almost always failed. * provide a way for raw compression to indicate that compression failed so that WiredTiger immediately falls back to compressing the entire page, rather than calling raw compression again with more records.
2014-01-30Merge pull request #851 from wiredtiger/merge-efficiencyAlex Gorrod
Improve in-memory merge efficiency when there is a lot of forced eviction
2014-01-30Remove WT_MERGE_MAX_REFS -- it was always arbitrary, and now when we create ↵Michael Cahill
an internal page with more than 100 children, it won't be marked split merge, so we won't merge it again.
2014-01-30Note that LSM's `chunk_size` setting overrides `memory_page_max`.Michael Cahill
2014-01-30Try an in-memory split before evicting big pages: that avoids the tree ↵Michael Cahill
growing arbitrarily deep for append-only workloads.
2014-01-24If an in-memory split fails, unlock the page.Michael Cahill
2014-01-23Merge branch 'develop' into merge-efficiencyAlex Gorrod
2014-01-22Fix some GCC 4.8 "maybe-uninitialized" warnings.Michael Cahill
2014-01-21Try an in-memory split before forced eviction, also make the "promotion" ↵Michael Cahill
code for merges apply in more cases than just a single first/last child.
2014-01-17Do direct I/O reads on checkpoints to reduce the VM pressure of LSM workloads.Michael Cahill
2014-01-14whitespaceMichael Cahill
2014-01-14Add a new mode to eviction that only considers internal pages.Alex Gorrod
The mode is triggered when we are force evicting pages, and the cache is not yet full. If we don't merge internal pages while doing forced eviction we can end up with very deep chains of WT_REC_SPLIT pages.
2014-01-13Switch LSM chunks back to ordinary flags, protected by the LSM tree lock.Michael Cahill
refs #809
2014-01-10Add WT_CLEAR_INLINE which uses structure assignment to (hopefully) preventKeith Bostic
any function call or loop setup/tear-down when clearing structures, call it when unpacking cells and doing row-store searches.