| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
| |
that logic.
Switch a few boolean values from 0/1 to false/true.
|
|
|
|
|
| |
It leads to problems where eviction attempts to write back to a
file after the block manager is already closed.
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
| |
pairs with WT_RET_MSG.
|
|\
| |
| | |
WT-2220 Split WT_TIMEDIFF macro into unit specific macros.
|
| | |
|
| |
| |
| |
| | |
We regularly divide the results, encapsulate that better.
|
| | |
|
|\ \
| |/ |
|
| |
| |
| |
| | |
WT_SYNC_DISCARD, WT_SYNC_WRITE_LEAVES should be an enum, not flags.
|
| | |
|
|/
|
|
| |
it's simpler than having a special case in the split code error handling.
|
| |
|
|
|
|
| |
probably not a bug, but it is a reasonable clarification.
|
|
|
|
|
| |
There is a race between checking whether all children are in state
WT_REF_DISK and whether the internal page is modified.
|
| |
|
|
|
|
|
| |
table, so the __wt_txn_visible_all(session, page->modify->rec_max_txn));
test for a page in the lookaside table can reasonably fail.
|
| |
|
|
|
|
| |
drop a tree.
|
| |
|
|
|
|
|
|
|
|
| |
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.
|
|\
| |
| | |
WT-2178 In-memory storage engine support
|
| |\ |
|
| | |
| | |
| | |
| | |
| | |
| | | |
Split the configuration checking for in memory across subsystems.
Other general flag usage cleanup.
Update some comments to make the functionality more obvious.
|
| |\ \ |
|
| | | | |
|
| | | |
| | | |
| | | |
| | | | |
There is no way to get them back.
|
| | | | |
|
| | | | |
|
| | | |
| | | |
| | | |
| | | | |
That way it can't accidentally be used in place of F_ISSET.
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
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.
|
|\ \ \ \
| | | | |
| | | | | |
WT-2185: Don't do reverse splits when closing a file.
|
| | |_|/
| |/| |
| | | |
| | | | |
The ovfl_lock may already have been freed.
|
|\ \ \ \
| |/ / /
|/| | | |
WT-2170 Move metadata read uncommitted to search
|
| |/ /
| | |
| | |
| | | |
Lock down visibility checks so we never try to use a snapshot without one being allocated.
|
| | | |
|
|\ \ \
| | |/
| |/| |
|
| |/ |
|
| |
| |
| |
| | |
are deleted.
|
| | |
|
|/
|
|
|
|
| |
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)
|
|\ |
|
| | |
|
| | |
|
| |\
| | |
| | | |
WT-2149: Deadlock opening lookaside table cursor
|
| | |
| | |
| | |
| | |
| | |
| | | |
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.
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
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.
|
| | | |
|
| |\ \
| | |/ |
|
| | |\
| | | |
| | | | |
WT-2119: don't evict clean multiblock pages with overflow items during checkpoints.
|