Commit graph

59 commits

Author SHA1 Message Date
John Esmet
7316bacdeb FT-396 Rename TokuDB to TokuFT in each license header 2014-08-21 15:35:06 -04:00
John Esmet
2548a42617 FT-307 Add a 'memcmp magic' API, where users can specify that a
particular value for the first byte of a key means it may be compared
with memcmp and a length check.

FT-50 Implement toku_builtin_cmp_fun with memcmp and a length check
2014-07-08 15:37:35 -04:00
John Esmet
157e18040c FT-294 Move cachetable files to ft/cachetable, txn files to ft/txn
FT-295 Move ybt.h to utils/dbt.h
2014-07-03 12:36:13 -04:00
John Esmet
7ffd1fab11 FT-242 Break up fttypes.h completely.
FT-296 Move bytestring class to utils/
2014-07-03 12:29:48 -04:00
John Esmet
47f57224b7 FT-273 Use a comparator in the locktree instead of a
descriptor/ft_compare_func pair
2014-06-26 11:35:53 -04:00
John Esmet
55b38998e8 FT-278 Put ft_msg in its own class and file, organize deserialization
and upgrade code so there's less complexity in ft/ft_node-serialize.cc
2014-06-23 14:29:07 -04:00
John Esmet
b33e859c6a FT-273 Use a comparator object for fractal tree key comparisons when
possible, untangling the dependency between parameters 'ft->compare_fun' and
'ft->cmp_descriptor' in a sensible way. It is now much less necessary to
create a fake db (good) and some long parameter lists are now shorter
(it's a start)
2014-06-15 23:01:58 -04:00
John Esmet
6e2c421f10 FT-253 Remove remaining brt / brt_header era names 2014-06-15 14:57:36 -04:00
John Esmet
7fa10b52c2 Fix the osx build 2014-06-15 12:30:29 -04:00
John Esmet
e583525a40 FT-258 Move cursor code into ft/cursor.h and ft/cursor.cc 2014-06-14 20:25:34 -04:00
John Esmet
d2ab8a6253 FT-241 Use #pragma once as a header guard 2014-06-14 20:25:34 -04:00
John Esmet
39397aab93 FT-242 Begin breaking up fttypes.h by moving many things to their
appropriate headers
2014-06-14 20:24:46 -04:00
John Esmet
e0de0b2d96 fixes Use promotion to record the blocknum of the rightmost
non-root leaf node in each FT. When the FT detects a rightmost insertion
pattern, it attempts to do inserts and unique checks directly into the
rightmost leaf node, greatly optimizing sequential insert speed.
2014-05-25 12:42:52 -04:00
John Esmet
e61903510a Revert "FT-242 Begin breaking up fttypes.h by moving many things to their"
We will wait until after TokuMX 1.5.0 for these changes

This reverts commit 1927c6dd38.
2014-05-23 18:29:27 -04:00
John Esmet
c92c8cc967 FT-242 Begin breaking up fttypes.h by moving many things to their
appropriate headers
2014-05-23 18:10:29 -04:00
Rich Prohaska
b2d2d85e0c cursor set range with bound 2014-04-25 13:41:57 -04:00
John Esmet
e20bccc17a fixes Add dynamic-value omt clone (dmt) and use it to implement basement nodes 2014-03-02 22:46:49 -05:00
John Esmet
d037524b70 fixes Renamed the last brt artifacts to ft_handle. Tried to keep
comments etc sane by not dropping a big sed bomb. Hopefully things make
sense from here on out.
2014-03-02 18:04:37 -05:00
John Esmet
dfcffcc714 Allow txn manager state to be created cheaply, with the option to later
initialize it for full gc if we think it is worth it. This allows for
full gc to run when bringing a basement node up to date.
2014-02-21 19:57:19 -05:00
John Esmet
fb76250b7a Consolidate garbage collection information into txn_gc_info. Explicitly
separate the difference between the oldest referenced xid we can use for
implicit promotion vs simple garbage collection.
2014-02-20 13:32:25 -05:00
John Esmet
8fc37abdcd fixes Add a parameter for the nonleaf partial eviction strategy 2014-01-22 12:56:45 -05:00
John Esmet
96a2a6fc96 fixes Add the get/set/change_fanout API 2014-01-09 14:34:23 -05:00
Zardosht Kasheff
439e846e3d refs , add a callback function to the cursor to check for interrupts.
This allows callers to prevent a cursor that churns through many many committed
deletes to run amok.
2013-12-06 15:01:28 -05:00
Rich Prohaska
2796c2d35c add US Patent 8,489,638 2013-10-04 16:49:53 -04:00
Yoni Fogel
6a74f0aacd Refs Tokutek/ft-engine/#40 Add c_restrict_to_range function to force cursor to keep track of prelocked range 2013-07-17 14:55:23 -07:00
Leif Walsh
77c7cdd7fe implement db->get_key_after_bytes closes
squashed commits:

create db->get_key_after_bytes() api down to the ft layer, and start a unit test
refs 

setup/teardown for get_key_after_bytes test
refs 

rename test because it really is going to be a small unit test
refs 

implement a few initial checks
refs 

adding actually_skipped parameter because we will want it in splitVector
refs 

NULL -> nullptr, I'm rusty from mongo work
refs 

fix some old apis to fit what get_key_after_bytes needs:

make keyrange_compare_s hold an FT instead of FT_HANDLE to prepare for reuse refs 

make keyrange_compare_s hold a const dbt refs 

fix const-correctness of fill_bfe functions refs 

add unit test for an empty dictionary
refs 

implement get_key_after_bytes for a single basement node, passes simple tests
refs 

add test for multiple basement nodes
refs 

fix usage of ft_search_t, we do need a full one after all
refs 

check actually_skipped for correctness (even though it's an estimate)
refs 

restructure test to be faster, and test keys before the beginning of the table
refs 

don't try to read in the right basement node, just check the bns you have
refs 

implement get_key_after_bytes for height > 0 trees
refs 

return the amount skipped even if we hit the end of the table
refs 

add inexact test for height > 0 trees, adjust constants so it's faster
refs 

don't do I/O to bring in basement nodes just for get_key_after_bytes
refs 

don't blindly check the first basement node, it's not guaranteed to be there anymore
refs 

fix leak in get_key_after_bytes_unit.tdb
refs 

add get_key_after_bytes to test_stress5
refs 

switch to a callback API to save mallocs and memcpys
refs 
2013-05-24 18:02:29 -04:00
Leif Walsh
9f99932a76 refs fix typo in license text
git-svn-id: file:///svn/toku/tokudb@55577 c7de825b-a66e-492c-adef-691d508d4ae1
2013-04-17 00:01:36 -04:00
Leif Walsh
9fd20e61a4 refs add license text to all C/C++ files as a comment near the top
git-svn-id: file:///svn/toku/tokudb@55574 c7de825b-a66e-492c-adef-691d508d4ae1
2013-04-17 00:01:35 -04:00
Leif Walsh
84fef672e4 refs update all copyright strings to reflect an end year of 2013
git-svn-id: file:///svn/toku/tokudb@55567 c7de825b-a66e-492c-adef-691d508d4ae1
2013-04-17 00:01:35 -04:00
Yoni Fogel
b77c165c15 fixes Merge 6086 to main. We now read in basement nodes if a full keyrange resides in it so that we can answer more accurately.
git-svn-id: file:///svn/toku/tokudb@54342 c7de825b-a66e-492c-adef-691d508d4ae1
2013-04-17 00:01:30 -04:00
Zardosht Kasheff
f3dc3fdea2 refs , merge Direct I/O to main
git-svn-id: file:///svn/toku/tokudb@52238 c7de825b-a66e-492c-adef-691d508d4ae1
2013-04-17 00:01:27 -04:00
Zardosht Kasheff
67eb050b40 closes , merge to main from tokudb.5773, Merging r51027 through r51078 into '.'
git-svn-id: file:///svn/toku/tokudb@51079 c7de825b-a66e-492c-adef-691d508d4ae1
2013-04-17 00:01:23 -04:00
Leif Walsh
a8ccc301fd closes merge information_schema.tokudb_fractal_tree_info and information_schema.tokudb_fractal_tree_block_map to main
git-svn-id: file:///svn/toku/tokudb@50863 c7de825b-a66e-492c-adef-691d508d4ae1
2013-04-17 00:01:21 -04:00
Zardosht Kasheff
a0eeedd5f5 refs , merge to main
git-svn-id: file:///svn/toku/tokudb@50517 c7de825b-a66e-492c-adef-691d508d4ae1
2013-04-17 00:01:19 -04:00
Yoni Fogel
3af91c0f51 refs merge "kill put loader, fix hot indexer freeze issue" onto main
git-svn-id: file:///svn/toku/tokudb@50137 c7de825b-a66e-492c-adef-691d508d4ae1
2013-04-17 00:01:17 -04:00
John Esmet
53e33b7531 fixes get rid of the last nodup stuff
git-svn-id: file:///svn/toku/tokudb@48251 c7de825b-a66e-492c-adef-691d508d4ae1
2013-04-17 00:01:10 -04:00
John Esmet
0bc5013e30 fixes fixes fixes fixes fsync always succeeds and returns void, no more ft panic or logger panic, no more impossible error paths
git-svn-id: file:///svn/toku/tokudb@48076 c7de825b-a66e-492c-adef-691d508d4ae1
2013-04-17 00:01:08 -04:00
John Esmet
01068d0c1d fixes support blackhole option in tokudb, add it to the stress test framework as well as an option for prelocked write. we also fix the flags api in the ft layer to return void since they can't fail.
git-svn-id: file:///svn/toku/tokudb@46644 c7de825b-a66e-492c-adef-691d508d4ae1
2013-04-17 00:01:02 -04:00
Yoni Fogel
d4cf29525f refs Replace all usage:
BOOL->bool
FALSE->false
TRUE->true
u_int*_t->uint*_t

Also poisoned all of the variables

git-svn-id: file:///svn/toku/tokudb@46157 c7de825b-a66e-492c-adef-691d508d4ae1
2013-04-17 00:01:01 -04:00
Leif Walsh
958c447641 closes merge c++ changes to mainline
git-svn-id: file:///svn/toku/tokudb@45903 c7de825b-a66e-492c-adef-691d508d4ae1
2013-04-17 00:00:59 -04:00
Leif Walsh
a367232ad2 refs merge work making our code c99 and c++11 compatible, to mainline
git-svn-id: file:///svn/toku/tokudb@45632 c7de825b-a66e-492c-adef-691d508d4ae1
2013-04-17 00:00:58 -04:00
Zardosht Kasheff
665f1acff4 refs , refs , merge changes of adding db->change_XXX functions to main
git-svn-id: file:///svn/toku/tokudb@44890 c7de825b-a66e-492c-adef-691d508d4ae1
2013-04-17 00:00:53 -04:00
John Esmet
0a1d95065c [t:4838] the locktree now opens its own ft handle when created to ensure that the ft stays in memory so long as the lock tree is in memory. we use an on_create and on_destroy callback to keep the txn/ft logic out of the locktree. the api for toku_ltm_get_lt is a little hairy now. a better solution may come in the future. for now, the original failing test passes.
git-svn-id: file:///svn/toku/tokudb@44819 c7de825b-a66e-492c-adef-691d508d4ae1
2013-04-17 00:00:52 -04:00
John Esmet
99568e9652 [t:5113] carefully document a non-obvious contract requirement for change descriptor. clients may ONLY update a FT's cmp descriptor if it's the first operation done after open, before any reads or writes. further, remove the test - it's user error.
git-svn-id: file:///svn/toku/tokudb@44804 c7de825b-a66e-492c-adef-691d508d4ae1
2013-04-17 00:00:52 -04:00
John Esmet
08531ecc0a [t:5112] removed the fd param from update descriptor, improved the name, removed some unnecessary return codes from functions that cannot fail
git-svn-id: file:///svn/toku/tokudb@44771 c7de825b-a66e-492c-adef-691d508d4ae1
2013-04-17 00:00:52 -04:00
John Esmet
d6b5f0b432 close[t:5100] close[t:4930] the api for closing a ft has been simplified for normal use. for recovery, there is a new function that internally asserts the underlying ft is close and passes a valid lsn to the cachefile for closing
git-svn-id: file:///svn/toku/tokudb@44748 c7de825b-a66e-492c-adef-691d508d4ae1
2013-04-17 00:00:51 -04:00
John Esmet
719d534277 [t:5101] toku_ft_update and toku_ft_set_update are dead code.
git-svn-id: file:///svn/toku/tokudb@44716 c7de825b-a66e-492c-adef-691d508d4ae1
2013-04-17 00:00:51 -04:00
John Esmet
4cfdf9d21b [t:5101] show ft blocknums is dead code
git-svn-id: file:///svn/toku/tokudb@44715 c7de825b-a66e-492c-adef-691d508d4ae1
2013-04-17 00:00:51 -04:00
John Esmet
e01fda0615 [t:5101] do_push_command is dead code
git-svn-id: file:///svn/toku/tokudb@44714 c7de825b-a66e-492c-adef-691d508d4ae1
2013-04-17 00:00:51 -04:00
John Esmet
2595599eff [t:5101] height of root is dead code
git-svn-id: file:///svn/toku/tokudb@44713 c7de825b-a66e-492c-adef-691d508d4ae1
2013-04-17 00:00:51 -04:00