summaryrefslogtreecommitdiff
path: root/src/include
AgeCommit message (Collapse)Author
2012-06-05Minor re-work of extent lists (no real change, just associate betterKeith Bostic
logical names with them); write explicit init/free functions for the extent lists. Fix bug where snapshot_avail extent list didn't have a name at all, we attempted to print a NULL in VERBOSE mode.
2012-06-04Fix races in table-level schema operations.Michael Cahill
closes #191
2012-06-01GCC 4.6 objects to setting "noreturn" on __wt_assert in non-diagnostic mode.Michael Cahill
2012-06-01Add handle locking to create and drop operations to avoid races.Michael Cahill
closes #191
2012-06-01Simplify the regular expression in s_style for non-GNU grep.Michael Cahill
Fix a couple more cases where we could return in bad places.
2012-05-30Add macros so we don't read the WT_ROW->key field multiple times, it canKeith Bostic
change underfoot if a key is instantiated by another thread of control: closes #230.
2012-05-30__wt_conn_btree_open_lock can't fail, change to a void return.Michael Cahill
2012-05-29I inserted a bug in my re-write, we have to strip any trailing commaKeith Bostic
from the new configuration options.
2012-05-29Force transactions to roll back if updates fail.Michael Cahill
closes #221
2012-05-29Transactions see their own changes (broken by the change that added snap_max).Michael Cahill
refs #229
2012-05-29Don't try to copy the checkpoint transaction struct in eviction threads.Michael Cahill
Create a transaction snapshot that is compatible instead. refs #229
2012-05-29Use a single spinlock for synchronization in eviction.Michael Cahill
Don't allow new forced eviction requests while eviction is in progress.
2012-05-28Add a small macro that overwrites and free's a structure, for structuresKeith Bostic
where we especially want to notice if a thread of control is accessing them after they've been free'd.
2012-05-26Extents free'd up by deleting snapshots cannot immediately be made availableKeith Bostic
for re-allocation, if we allocate a block but then crash before updating the metadata's snapshot information, we might overwrite a block referenced by a snapshot in the system. Closes #226.
2012-05-25Add support for the WT_BTREE_NO_EVICTION flag, don't bother trying toKeith Bostic
evict pages from the schema file. Close #189.
2012-05-25Rename the session.open_cursor flag "clear_on_close" to be "statistics_clear",Keith Bostic
that way it sorts with the "statistics" config string, it's just easier to understand that way.
2012-05-25Merge branch 'develop' into reconcile-errKeith Bostic
2012-05-25If a page ever reaches the point where its oldest update is 2^31 ↵Michael Cahill
transactions behind the current point, those updates would become invisible. Force eviction of pages (well) before that point to avoid the issue. closes #222
2012-05-24Changes to handle write errors in the system.Keith Bostic
If reconciliation fails, discard any pages we've written (directly from the reconciliation code for any new pages we've written, and from the tracking code for new overflow objects we've written). Add a new tracking flag, WT_TRK_JUST_ADDED, set when an object is first added to the tracking list, and cleared after the each successful reconciliation of the page.
2012-05-24Track from where scratch buffers were allocated in DIAGNOSTIC mode.Keith Bostic
2012-05-24Merge pull request #213 from wiredtiger/feature/transactionsMichael Cahill
Add support for non-durable transactions. closes #138
2012-05-24Default to "transactional=on" in the API, update docs to match.Michael Cahill
refs #138
2012-05-24Add a comment explaining the transaction ID comparison.Michael Cahill
refs #138
2012-05-23Give __wt_calloc_def and __wt_free symbolic argument names.Keith Bostic
2012-05-23Merge branch 'develop' into feature/transactionsMichael Cahill
Conflicts: src/include/api.h src/session/session_api.c
2012-05-23Add more documentation for transactions.Michael Cahill
refs #138 --HG-- rename : src/docs/using.dox => src/docs/admin.dox rename : src/docs/using.dox => src/docs/programming.dox rename : src/docs/snapshot.dox => src/docs/snapshots.dox
2012-05-23Rename WT_TXN_{INVALID,NONE} to WT_TXN_{NONE,ABORTED}.Michael Cahill
2012-05-23Update docs for transactions.Michael Cahill
refs #138
2012-05-22Merge pull request #212 from wiredtiger/max-sessionMichael Cahill
closes #186
2012-05-22Only try to forcibly evict modified pages.Michael Cahill
refs #214 As well as an optimization for pathological cases where clean pages in memory are more than 20x larger than their on-disk representation, this also avoids forced eviction during special operations such as verify.
2012-05-21Add comments to clarify the transaction changes.Michael Cahill
refs #138
2012-05-21Merge branch 'develop' into feature/transactionsMichael Cahill
2012-05-21The hazard array cannot be free'd or its reference cleared duringKeith Bostic
session close, we might race with the eviction thread reviewing it. Change is to leave session hazard array references in place until connection close, and to not clear the reference when closing the session.
2012-05-21Typo: we took a copy of conn->session_cnt, but didn't use it.Keith Bostic
2012-05-21Merge branch 'develop' into max-sessionKeith Bostic
2012-05-21If the __wt_evict_page_request() function is no longer called fromKeith Bostic
inside the serialization function, there's nothing to prevent threads from racing when updating the request slot. Add a spinlock around the update: there's no need for anything tricky, this function should not be called very often.
2012-05-19The check to see if a page needs to be forcibly evicted is performedKeith Bostic
within the serialization wrap-up function (and, if the page does need to be forcibly evicted, the thread additionally schedules the eviction and wakes the eviction server at the same time). The problem is the thread is holding a hazard reference: if the eviction server not only wakes up attempts to evict the page before the thread releases the hazard reference, the eviction attempt will fail, and the cycle will repeat infinitely in the tcbench program, at least on pixiebob (the problem won't occur if the eviction thread doesn't make significant progress before the thread releases its hazard reference). This is unlikely to be an interesting performance problem, but it does affect simple benchmarks where a single thread of control is inserting data as quickly as possible, especially if the inserts are in ascending or descending order. Instead of checking for forcible eviction when a page is modified, this check when a hazard reference is being released. Further, instead of doing "size check, then schedule eviction, then wake eviction server, then release hazard reference" do "size check, schedule eviction, release hazard reference, wake eviction server"; this is required because we can't release the hazard reference before scheduling the eviction: if the hazard reference is the last one on the page, the page might be gone before we schedule the eviction. This simplifies some things: we no longer call the routine to schedule an eviction inside a serialization function (there's no significance to that other than simplifying the world a bit). Finally, I removed the check for general cache size checking at the same time as we were checking the individual page size. We check the general cache size every time we read a page into memory, I don't see why that isn't going to be sufficient.
2012-05-18Rename wt_internal.in -> wt_internal.h, it doesn't require any processing.Keith Bostic
2012-05-18Delete conn->sessions (rename conn->session_array to be conn->sessions),Keith Bostic
but we now access the array of session handles directly. This means we can no longer use the NULL vs. non-NULL test to know if a session handle is active, add an active field that's non-zero if the session handle is in use. Stop shuffling the session array elements to keep them tightly packed: allocate the lowest available slot we when allocating a new session, decrement conn->session_cnt to the largest active slot when we close a session.
2012-05-18Fix the transaction ID comparison to correctly deal with corner cases.Michael Cahill
2012-05-17Fix the barrier instruction for reading the session count.Keith Bostic
2012-05-17Move critical transaction functions inline.Michael Cahill
--HG-- rename : src/txn/txn.c => src/include/txn.i
2012-05-17Only mark pages clean if reconciliation doesn't skip any updates (apart from ↵Michael Cahill
updates that have been rolled back).
2012-05-17Implement checkpoints.Michael Cahill
refs #138 --HG-- rename : src/meta/meta_api.c => src/meta/meta_apply.c
2012-05-17Merge branch 'develop' into feature/transactionsMichael Cahill
2012-05-16We no longer copy the hazard reference array, which means there's noKeith Bostic
reason for it to be maintained outside of the WT_SESSION_IMPL structure. Move the hazard array into the WT_SESSION_IMPL structure, which makes it easy to limit the hazard references being checked during eviction to the set of active sessions.
2012-05-16Add a "maximum active sessions" value to bound how many hazard referenceKeith Bostic
array slots we have to walk during page evictions. Ref #186.
2012-05-15__wt_assert is marked "noreturn", so it shouldn't return.Michael Cahill
2012-05-15Mark __wt_assert with a "noreturn" attribute to reduce false positives in ↵Michael Cahill
clang analysis.
2012-05-15Build with "clang -Wall -Werror"Michael Cahill