diff options
author | Keith Bostic <keith.bostic@wiredtiger.com> | 2011-09-11 10:45:03 +0000 |
---|---|---|
committer | Keith Bostic <keith.bostic@wiredtiger.com> | 2011-09-11 10:45:03 +0000 |
commit | bae4cd52b0b72100714104eb2895b779783dcb5a (patch) | |
tree | 4aded7043b54fc3b56851b90d04714b14b5b88a7 /dist/serial.py | |
parent | ef58f2e8314c4828893dd4e2668101b3667dc92d (diff) | |
download | mongo-bae4cd52b0b72100714104eb2895b779783dcb5a.tar.gz |
Replace column-store page-extension code with a new skiplist, maintained
on the last page of the tree.
Replace the col_extend serialization function with a new append function
Pin the last page of the tree in memory so we can access it without
first acquiring a hazard reference. And, don't acquire/release hazard
references on pinned pages.
Don't ever try to evict a pinned page during a sync call.
Change sync to quit trying after 5 attempts -- the page is busy.
Always flush memory before we release a hazard referenced on a page
we've just pinned, make sure the pin hits memory before the hazard
reference is released.
Fix bugs where the row- and column-store code was calling the row_key
serialization function incorrectly, the WT_INSERT field was not
allocated and should not have been freed, also the insert serialization
function had a similar problem. Once this change was made, we no longer
needed to track the sizes of these items.
Change the row- and column-store code to not use per session buffers
for on-page structures, specifically the insert list heads, use normal
allocation memory instead.
Change the test/format code to test insert with fixed-length files,
again.
Create column.i: it's a few routines from cursor.i and the search
routine from col_srch.c.
Remove the btree/col_extend.c file, no longer used.
Remove the column_internal_extend, column_leaf_extend configuration
values, no longer used.
Remove the functions that let the workQ increase the count of pages in
memory, no longer used.
--HG--
rename : src/include/cursor.i => src/include/column.i
extra : rebase_source : ee32aeda7db964def30da0920abe6aaf59ba62a1
Diffstat (limited to 'dist/serial.py')
-rw-r--r-- | dist/serial.py | 26 |
1 files changed, 12 insertions, 14 deletions
diff --git a/dist/serial.py b/dist/serial.py index 7136b2f415f..c9520631fa4 100644 --- a/dist/serial.py +++ b/dist/serial.py @@ -17,23 +17,21 @@ class Serial: self.args = args msgtypes = [ +Serial('append', 'WT_WORKQ_FUNC', 1, [ + SerialArg('WT_INSERT_HEAD **', 'inshead'), + SerialArg('WT_INSERT ***', 'ins_stack'), + SerialArg('WT_INSERT_HEAD **', 'new_inslist', 1), + SerialArg('WT_INSERT_HEAD *', 'new_inshead', 1), + SerialArg('WT_INSERT *', 'new_ins', 0), + SerialArg('u_int', 'skipdepth'), + ]), + Serial('cache_read', 'WT_WORKQ_READ', 0, [ SerialArg('WT_PAGE *', 'parent'), SerialArg('WT_REF *', 'parent_ref'), SerialArg('int', 'dsk_verify'), ]), -Serial('col_extend', 'WT_WORKQ_FUNC', 1, [ - SerialArg('WT_PAGE *', 'page'), - SerialArg('WT_PAGE *', 'new_intl', 1), - SerialArg('WT_COL_REF *', 't', 1), - SerialArg('uint32_t', 'internal_extend'), - SerialArg('WT_PAGE *', 'new_leaf', 1), - SerialArg('void *', 'entries', 1), - SerialArg('uint32_t', 'leaf_extend'), - SerialArg('uint64_t', 'recno'), - ]), - Serial('evict_file', 'WT_WORKQ_EVICT', 0, [ SerialArg('int', 'close_method'), ]), @@ -45,8 +43,8 @@ Serial('insert', 'WT_WORKQ_FUNC', 1, [ SerialArg('WT_INSERT ***', 'ins_stack'), SerialArg('WT_INSERT_HEAD **', 'new_inslist', 1), SerialArg('WT_INSERT_HEAD *', 'new_inshead', 1), - SerialArg('WT_INSERT *', 'ins', 1), - SerialArg('uint32_t', 'depth'), + SerialArg('WT_INSERT *', 'new_ins', 0), + SerialArg('u_int', 'skipdepth'), ]), Serial('row_key', 'WT_WORKQ_FUNC', 1, [ @@ -60,7 +58,7 @@ Serial('update', 'WT_WORKQ_FUNC', 1, [ SerialArg('uint32_t', 'write_gen'), SerialArg('WT_UPDATE **', 'srch_upd'), SerialArg('WT_UPDATE **', 'new_upd', 1), - SerialArg('WT_UPDATE *', 'upd', 1), + SerialArg('WT_UPDATE *', 'upd', 0), ]), ] |