summaryrefslogtreecommitdiff
path: root/src/evict
Commit message (Collapse)AuthorAgeFilesLines
* SERVER-21619 Push down where we mark pages clean so we don't have to repeat ↵Michael Cahill2015-11-262-20/+4
| | | | | | that logic. Switch a few boolean values from 0/1 to false/true.
* SERVER-21619 Don't do internal page splits after a tree is marked DEAD.Alex Gorrod2015-11-251-14/+24
| | | | | It leads to problems where eviction attempts to write back to a file after the block manager is already closed.
* SERVER-21585 Don't use the lookaside file until the cache is stuck full.Alex Gorrod2015-11-231-1/+2
| | | | | | | | | Also only write into the lookaside file from internal (aka eviction) threads, so application threads don't pay the performance cost. It is possible that the cache stuck check is too restrictive, but using only the eviction aggressive flag can result in writing a lot of content to the lookaside file when pages can still be evicted.
* Replace some __wt_errx/WT_ERR pairs with WT_ERR_MSG, __wt_errx/WT_RETKeith Bostic2015-11-191-1/+1
| | | | pairs with WT_RET_MSG.
* Merge pull request #2308 from wiredtiger/wt-2220-wt_timediffAlex Gorrod2015-11-181-6/+6
|\ | | | | WT-2220 Split WT_TIMEDIFF macro into unit specific macros.
| * WT-2220 Create WT_TIMEDIFF_US and fix use of constants.Susan LoVerso2015-11-171-5/+5
| |
| * WT-2220 Split WT_TIMEDIFF macro into unit specific macros.Alex Gorrod2015-11-171-1/+1
| | | | | | | | We regularly divide the results, encapsulate that better.
* | Minor comment change.Alex Gorrod2015-11-171-1/+4
| |
* | Merge branch 'develop' into wt-2182-split-up-the-tree-2Keith Bostic2015-11-101-1/+1
|\ \ | |/
| * WT-2206: The cache operations, WT_SYNC_CHECKPOINT, WT_SYNC_CLOSE,Keith Bostic2015-11-091-1/+1
| | | | | | | | WT_SYNC_DISCARD, WT_SYNC_WRITE_LEAVES should be an enum, not flags.
* | Simplify a return clause.Keith Bostic2015-11-091-1/+1
| |
* | If a reverse split fails, let __evict_delete_ref() unlock the child,Keith Bostic2015-11-081-3/+8
|/ | | | it's simpler than having a special case in the split code error handling.
* WT-2192 Update a comment to describe a race condition better.Alex Gorrod2015-11-031-1/+3
|
* SERVER-21246: Coverity complaint 76653, initialize stuck_ts fields;Keith Bostic2015-11-021-1/+1
| | | | probably not a bug, but it is a reasonable clarification.
* WT-2192 Fix the logic around checking whether internal page is evictable.Alex Gorrod2015-11-021-8/+14
| | | | | There is a race between checking whether all children are in state WT_REF_DISK and whether the internal page is modified.
* WT-2190 Fix assertion to use logical OR.Michael Cahill2015-11-021-1/+1
|
* WT-2190: reconciliation skips update visibility tests for the lookasideKeith Bostic2015-11-011-4/+6
| | | | | table, so the __wt_txn_visible_all(session, page->modify->rec_max_txn)); test for a page in the lookaside table can reasonably fail.
* Replace an unnecessary ref->page with the local page variable.Keith Bostic2015-11-011-2/+1
|
* WT-2178 It's okay to evict clean page from in-memory databases in order to ↵Michael Cahill2015-10-301-1/+1
| | | | drop a tree.
* SERVER-21027 Remove code that updated snapshots for eviction.Michael Cahill2015-10-301-6/+0
|
* WT-2170 Restore visible_all semantics if we try to check visibility without ↵Michael Cahill2015-10-301-7/+0
| | | | | | | | a snapshot. There are various internal checks (e.g., checking tombstone visibility during tree walks, and during eviction of dirty trees prior to an exclusive operation like drop) where we don't have a transactional snapshot, but the isolation level may be set read-committed or higher. The isolation level is irrelevant to these checks: we used to have a special "eviction" isolation level to avoid these issues. This change restores that semantic: if we attempt a visibilty check without a snapshot, fall back to only making stable updates visible.
* Merge pull request #2257 from wiredtiger/inmemMichael Cahill2015-10-302-6/+20
|\ | | | | WT-2178 In-memory storage engine support
| * Merge branch 'develop' into inmemAlex Gorrod2015-10-291-2/+35
| |\
| * | WT-2178 review feedback:Alex Gorrod2015-10-292-8/+5
| | | | | | | | | | | | | | | | | | Split the configuration checking for in memory across subsystems. Other general flag usage cleanup. Update some comments to make the functionality more obvious.
| * | Merge branch 'develop' into inmemKeith Bostic2015-10-281-30/+79
| |\ \
| * | | WT-2178 Have eviction only discard empty pages for in memory workloads.Alex Gorrod2015-10-281-1/+2
| | | |
| * | | WT-2178 When running in memory don't evict clean pages.Alex Gorrod2015-10-222-1/+15
| | | | | | | | | | | | | | | | There is no way to get them back.
| * | | Cleanup flags: don't check the connection-wide in-memory flag everywhere.Michael Cahill2015-10-211-2/+3
| | | |
| * | | Don't write btree pages for in-memory databases.Michael Cahill2015-10-211-1/+2
| | | |
* | | | WT-2189 Make F_SET (and F_CLR) into a void expression.Michael Cahill2015-10-301-1/+1
| | | | | | | | | | | | | | | | That way it can't accidentally be used in place of F_ISSET.
* | | | SERVER-21027 Fix reverse splits to keep the original child ref locked until ↵Michael Cahill2015-10-292-25/+43
| | | | | | | | | | | | | | | | | | | | | | | | we have a hazard pointer on the parent page, as we do for regular splits. Otherwise, a reverse split could race with eviction of the internal page.
* | | | Merge pull request #2270 from wiredtiger/WT-2185Michael Cahill2015-10-291-3/+9
|\ \ \ \ | | | | | | | | | | WT-2185: Don't do reverse splits when closing a file.
| * | | | WT-2185: Don't do reverse splits when closing a file.Alex Gorrod2015-10-291-3/+9
| | |_|/ | |/| | | | | | | | | | The ovfl_lock may already have been freed.
* | | | Merge pull request #2266 from wiredtiger/wt-2170sueloverso2015-10-281-1/+10
|\ \ \ \ | |/ / / |/| | | WT-2170 Move metadata read uncommitted to search
| * | | WT-2170 Add a macro perfom an operation at an isolation level.Michael Cahill2015-10-281-1/+10
| |/ / | | | | | | | | | Lock down visibility checks so we never try to use a snapshot without one being allocated.
* | | SERVER-21027 Implement @keithbostic's review comments.Michael Cahill2015-10-291-7/+8
| | |
* | | Merge branch 'develop' into reverse-splitsKeith Bostic2015-10-281-30/+79
|\ \ \ | | |/ | |/|
| * | WT-2116 Add diagnostic checks for stuck cache and dump the state.Michael Cahill2015-10-271-30/+79
| |/
* | SERVER-21027 Reverse split whenever more than 10% of the refs in the parent ↵Michael Cahill2015-10-231-1/+3
| | | | | | | | are deleted.
* | line wrappingMichael Cahill2015-10-231-2/+4
| |
* | SERVER-21027 Do reverse splits when deleting pages.Michael Cahill2015-10-221-3/+31
|/ | | | | | Specifically, if we notice a parent page has a multiple of 10 deleted children, try to do a reverse split to discard those child pages. (cherry picked from commit dc84744680d0071f5d6f39a755e2dc6d6ece7b1a)
* Merge branch 'develop' into wt-2108Keith Bostic2015-10-073-65/+74
|\
| * WT-2149 Track if the lookaside table is open when starting eviction workers.Michael Cahill2015-10-071-5/+11
| |
| * WT-2149 WT-2156 Allow eviction workers to restart.Michael Cahill2015-10-021-0/+3
| |
| * Merge pull request #2234 from wiredtiger/wt-2149Alex Gorrod2015-10-021-24/+30
| |\ | | | | | | WT-2149: Deadlock opening lookaside table cursor
| | * WT-2149 Fix the order of creation of the lookaside table. The lookaside ↵Michael Cahill2015-10-011-6/+9
| | | | | | | | | | | | | | | | | | table has to be created after recovery has completed because it needs a file ID and otherwise recovery could overwrite its entry in the metadata. However, recovery needs eviction threads running because recovery could touch more data than fits in cache. Resolve this ordering problem by having recovery start a special set of eviction threads without lookaside table cursors. Once it is done, they are shut down, the lookaside table can be created, and a new set of eviction threads started.
| | * WT-2149: open private lookaside cursors as part of creating an internalKeith Bostic2015-09-301-19/+22
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | thread's session, in order to avoid deadlocks later. Change callers of __wt_open_internal_session() to pass a set of session flags. If those flags include WT_SESSION_LOOKASIDE_CURSOR, a lookaside table cursor is opened as part of creating the session. Previously, __wt_open_internal_session() had a uses_dhandles boolean. If that boolean was false, the session flag WT_SESSION_NO_DATA_HANDLES was set. That boolean is gone, callers of __wt_open_internal_session() should pass WT_SESSION_NO_DATA_HANDLES to __wt_open_internal_session(). Create the lookaside table before starting the worker threads, the order is required if lookaside table cursors are opened as part of the worker threads opening internal sessions. Flip the order of creation in the initial lookaside table setup: we now first create the lookaside table itself, then open the WT_CONNECTION_IMPL lookaside session/cursor, that allows the cursor open to happen when the connection's lookaside table session is first opened, like every other internal thread. Re-organize the lookaside table code to expect a lookaside table cursor to be available in any session with the WT_SESSION_LOOKASIDE_CURSOR flag, including the WT_CONNECTION_IMPL structure's lookaside session.
| * | Lint: Fallthrough -> FALLTHROUGHAlex Gorrod2015-10-011-1/+1
| | |
| * | Merge branch 'develop' into app-evict-fairerAlex Gorrod2015-10-013-6/+7
| |\ \ | | |/
| | * Merge pull request #2219 from wiredtiger/wt2119Michael Cahill2015-09-283-3/+3
| | |\ | | | | | | | | WT-2119: don't evict clean multiblock pages with overflow items during checkpoints.