summaryrefslogtreecommitdiff
path: root/src/include/txn.i
Commit message (Collapse)AuthorAgeFilesLines
...
| * whitespaceMichael Cahill2015-04-301-4/+4
| |
| * Move eviction outside transactions.Michael Cahill2015-04-301-0/+6
| | | | | | | | refs WT-1912
* | Split the transaction "refresh" operation into two completely separate ↵Michael Cahill2015-05-041-2/+2
| | | | | | | | operations: get a snapshot, and update the oldest ID.
* | Might as well do the committed and tiny transaction first, it's the mostKeith Bostic2015-04-271-4/+4
| | | | | | | | likely success.
* | Do fast tests in __wt_txn_visible before calling into __wt_txn_visible_allKeith Bostic2015-04-271-7/+7
| | | | | | | | | | on behalf of eviction, the results are the same and we avoid a branch in the case of simple transactions.
* | __wt_txn_refresh has two functions based on an argument; inline theKeith Bostic2015-04-271-2/+2
|/ | | | | primary function into two other functions so the compiler can split the code into two versions instead of handling the branches at run-time.
* Minor function renaming.Michael Cahill2015-04-241-1/+1
|
* Split __wt_txn_begin into two parts, one with and one without aKeith Bostic2015-04-231-1/+27
| | | | | configuration component; inline the part without a configuration component to simplify creating an auto-commit transaction.
* Merge pull request #1746 from wiredtiger/checkpoint-id-per-fileMichael Cahill2015-03-181-3/+29
|\ | | | | Track the checkpoint generation per file
| * Implement review feedback.Alex Gorrod2015-03-171-15/+6
| | | | | | | | | | | | * Remove a couple of new statistics. * Move where we update checkpoint_gen to be a bit more aggresive * Change some local variable names.
| * Self review of checkpoint ID change.Alex Gorrod2015-03-171-12/+13
| |
| * Fix visibility checks in checkpoint ID optimization code.Alex Gorrod2015-03-131-1/+1
| |
| * Don't dereference a NULL btree, update the oldest ID if thereAlex Gorrod2015-03-131-1/+1
| | | | | | | | is a snapshot.
| * Fixup the check for checkpoint_id and oldest_id in txn_refresh.Alex Gorrod2015-03-131-11/+14
| | | | | | | | Fix the new statistics as well.
| * Fixup the visible all implementation and simplify the code flow.Alex Gorrod2015-03-121-16/+17
| |
| * Merge new visibility check function with the old one.Alex Gorrod2015-03-121-22/+8
| | | | | | | | | | | | | | We only need one version - the logic to exclude the correct IDs is included in the function. Refs #1745
| * Add some statistics and update places that call txn_visible_allAlex Gorrod2015-03-111-4/+9
| | | | | | | | to use txn_visible_checkpoint.
| * Update visibility check to know about checkpoints.Alex Gorrod2015-03-111-0/+39
| | | | | | | | | | | | | | | | | | This should allow us to evict more pages while a checkpoint is in progress. We can evict dirty pages from a file once the checkpoint is finished in that file. Similarly for the row store specific obsolete update check. Refs #1745
* | Fix read-uncommitted cache checks: look at whether a transaction ID is ↵Michael Cahill2015-03-091-10/+30
|/ | | | pinned, not whether the TXN_SNAPSHOT flag is set.
* Reorg code so that fast paths stay inlined, shift the slow part of full ↵Michael Cahill2015-01-271-0/+29
| | | | | | cache handling into a separate function. refs #1596
* Two "real" changes:Keith Bostic2015-01-231-32/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Don't count pages evicted by a worker thread as an "application thread" eviction; add a new statistic to distinguish between the server itself evicting pages and the eviction worker threads evicting. Don't increment the eviction counters unless we find a page to evict, __evict_lru_pages() gets called a huge number of times in any workload where eviction is happening. Discussion: The "is_app" flag is being used for a few purposes: - if we should perform the "oldest transaction in the system" test, - if the evictor thread is the eviction server, - if the "eviction by an application thread" counter should be incremented, - if the session's split generation can be non-zero after eviction. Move the "oldest transaction in the system" test outside of the eviction code, and do that test before trying to evict a page (this required moving __wt_txn_am_oldest() from include/txn.i (an inlined function) into txn/txn.c (a real function). Replace the "is_app" flag with an "is_server" flag to distinguish between the eviction server and eviction work threads (we can distinguish between application threads and worker/server threads using the WT_SESSION_INTERNAL flag in the WT_SESSION handle). Reference SERVER-16997, SERVER-17020.
* Defer the cache full check from begin_transaction until the first operation ↵Michael Cahill2015-01-141-0/+10
| | | | | | that requires an ID or snapshot. refs SERVER-16790
* Copyright notices: add MongoDB, update to 2015.Keith Bostic2015-01-041-0/+1
|
* Add a few more sweep stats to understand why the test sometimes fails.Susan LoVerso2014-12-151-1/+1
| | | | Increase test time to 120 seconds.
* Switch to stashing the metadata dhandle, not the btree.Alex Gorrod2014-12-121-1/+1
| | | | | Also update checkpoint to use the saved handle instead of searching for it again.
* Release snapshots on transaction commit, check if a new snapshot is required ↵Michael Cahill2014-10-291-30/+4
| | | | on the next cursor operation.
* All log operations need the file ID, set it when allocating the structure.Michael Cahill2014-10-211-1/+1
|
* Merge pull request #1291 from wiredtiger/snap-minMichael Cahill2014-10-201-2/+3
|\ | | | | Improvements for long-running transactions
| * Copy values into positioned cursors in transaction commit so that the oldest ↵Michael Cahill2014-10-181-2/+3
| | | | | | | | ID doesn't need to stay pinned.
* | Rename WT_DEADLOCK to WT_ROLLBACK, reference #1204.Keith Bostic2014-10-171-1/+1
|/
* KNFKeith Bostic2014-10-041-1/+1
|
* Add size specific atomics for 1, 4 & 8 byte atomic operationsMark Benvenuto2014-10-031-2/+2
|
* Change transaction ID allocation so that if transactions stop, the last ID ↵Michael Cahill2014-09-111-12/+9
| | | | | | becomes globally visible. We want post-increment semantics but our atomic primitive is pre-increment. refs #1200
* whitespaceKeith Bostic2014-08-281-2/+1
|
* Don't reset cursors during transaction begin or commit (only on rollback).Michael Cahill2014-08-271-1/+1
|
* Merge branch 'develop' into avoid-cell-unpackMichael Cahill2014-06-251-0/+20
|\
| * Instead of having update operations set the highest update transaction in an ↵Michael Cahill2014-06-181-0/+20
| | | | | | | | LSM chunk, copy the current transaction ID when the chunk is switched. This avoids work in the fast path, and also prevents races between worker threads and ordinary operations (e.g., attempting to flush all chunks as part of a compact operation).
* | Experimental change to avoid unpacking cells in order to accessKeith Bostic2014-05-301-1/+0
|/ | | | | | | | | row-store leaf page keys. If a page has no Huffman or prefix compression, and no overflow keys, encode the key's page offset and size in the WT_ROW pointer and set a flag on the page. From that point on, when the flag is set, we can go directly to the key instead of unpacking the key's cell each time.
* Fix a bug in LSM where an autocommit transaction wasn't started.Alex Gorrod2014-05-011-0/+1
| | | | | Due to the change to delay allocating transaction IDs for read only transactions.
* Don't cache the TXN_OLDEST flag: we don't check repeatedly.Michael Cahill2014-05-011-14/+5
|
* whitespaceMichael Cahill2014-04-301-6/+6
|
* Clarify the different states a transaction can be in: running or idle, with ↵Michael Cahill2014-04-301-34/+38
| | | | an ID and/or with a snapshot. Allocate an ID just before we log the first update. Also allocate a transaction ID in the extension API, for extensions that require one.
* Don't allocate transaction IDs in page in, and some name changes.Alex Gorrod2014-04-301-14/+29
| | | | | | | Transaction IDs only need to be allocated for updates, so allocating them on during __wt_page_in is overkill. Rename some of the transaction ID functions to be more user friendly.
* Simplify transaction setup for pure read-only workloads. Also, now that we ↵Michael Cahill2014-04-301-14/+0
| | | | | | support read-only transactions, there is no need for any special handling of the checkpoint transaction: it won't allocate an ID for itself in the global table. refs #969, #978
* Defer allocating a transaction ID until an update is made.Alex Gorrod2014-04-301-3/+46
| | | | | References #975 Useful for read-only workloads that use explicit transactions.
* Merge branch 'develop' into fast-checkpointsMichael Cahill2014-04-291-10/+3
|\
| * Log transactional operations immediately, so that the only pointers kept are ↵Michael Cahill2014-04-281-11/+3
| | | | | | | | to WT_UPDATEs. Split out `__wt_txn_modify` into two parts: the first creates an WT_TXN_OP structure (for rollback), the writes a log record into the in-memory log buffer.
| * Copy keys into the in-memory log for transactions: ordinary operations no ↵Michael Cahill2014-04-281-1/+2
| | | | | | | | longer point at any on-page structures apart from WT_UPDATEs.
* | Re-enable fast checkpoints.Michael Cahill2014-04-181-4/+0
|/
* Disable the fast checkpoint code in one more place.Michael Cahill2014-04-181-0/+4
|