Commit graph

1555 commits

Author SHA1 Message Date
Bradley C. Kuszmaul
8102ccf804 Fixup command line parsing
git-svn-id: file:///svn/tokudb@4473 c7de825b-a66e-492c-adef-691d508d4ae1
2008-06-11 18:02:43 +00:00
Yoni Fogel
62fa995705 Closes #904
Skip lock tree overhead (marshalling and calling)
when appropriate due to DB_PRELOCKED/DB_PRELOCKED_WRITE

git-svn-id: file:///svn/tokudb@4469 c7de825b-a66e-492c-adef-691d508d4ae1
2008-06-11 06:08:13 +00:00
Yoni Fogel
5764fdef8e Addresses #904
Add DB_PRELOCKED_WRITE flag

git-svn-id: file:///svn/tokudb@4462 c7de825b-a66e-492c-adef-691d508d4ae1
2008-06-10 19:46:00 +00:00
Bradley C. Kuszmaul
61974814e4 Implement a lighter versio nof {{{DBC->c_getf_next}}}. Addresses #902.
git-svn-id: file:///svn/tokudb@4460 c7de825b-a66e-492c-adef-691d508d4ae1
2008-06-10 18:56:10 +00:00
Bradley C. Kuszmaul
2d0adda90c Use the {{{db->pre_acquire_read_lock}}} method for scanscan.
So to use the lightweight cursors with the prelock one does:
{{{
./scanscan-tokudb --prelock --nohwc --lwc
}}}

Addresses #893.


git-svn-id: file:///svn/tokudb@4454 c7de825b-a66e-492c-adef-691d508d4ae1
2008-06-10 16:37:56 +00:00
Yoni Fogel
917a127c2f Renamed toku_rt_forest to rt_forest
git-svn-id: file:///svn/tokudb@4453 c7de825b-a66e-492c-adef-691d508d4ae1
2008-06-10 16:06:50 +00:00
Bradley C. Kuszmaul
750998c9da Implement {{{DBC->c_getf_next}}}, with a simple test. Addresses #902.
git-svn-id: file:///svn/tokudb@4452 c7de825b-a66e-492c-adef-691d508d4ae1
2008-06-10 15:39:31 +00:00
Bradley C. Kuszmaul
e0d124119b Pack the OMT. Fixes #897.
git-svn-id: file:///svn/tokudb@4421 c7de825b-a66e-492c-adef-691d508d4ae1
2008-06-08 16:14:31 +00:00
Bradley C. Kuszmaul
b2dd143d95 Clean up scanscan. Addresses #820.
git-svn-id: file:///svn/tokudb@4420 c7de825b-a66e-492c-adef-691d508d4ae1
2008-06-08 15:53:50 +00:00
Yoni Fogel
d9e9792d8c Addresses #893
Parameters to pre_lock are supposed to be const DBT*'s instead of DBT*'s.

git-svn-id: file:///svn/tokudb@4403 c7de825b-a66e-492c-adef-691d508d4ae1
2008-06-06 18:09:04 +00:00
Yoni Fogel
e22d67bb8e Addresses #893
Implement db->pre_acquire_read_lock(), db->dbt_pos_infty(), and db->dbt_neg_infty()
functions.

Example usage to lock entire table:
db->pre_acquire_read_lock(db, txn, db->dbt_neg_infty(), NULL, db->dbt_pos_infty(), NULL);
(Above is for db with no duplicates, i.e. primary index).

For db with duplicates:
db->pre_acquire_read_lock(db, txn, db->dbt_neg_infty(), db->dbt_neg_infty(), db->dbt_pos_infty(), db->dbt_pos_infty());

Will return same lock error codes as db calls do (when locks fail).
0 = success
DB_LOCK_NOTGRANTED = failed to obtain the lock.
We can theoretically sleep and try again here.

If you want to grab from DBT* A to infinity..
db->pre_acquire_read_lock(db, txn, A, NULL, db->dbt_pos_infty(), NULL);


git-svn-id: file:///svn/tokudb@4402 c7de825b-a66e-492c-adef-691d508d4ae1
2008-06-06 17:50:38 +00:00
Yoni Fogel
98feb20905 Addresses #889
Leaf boundary test now checks left to right and right to left.

git-svn-id: file:///svn/tokudb@4401 c7de825b-a66e-492c-adef-691d508d4ae1
2008-06-06 16:45:38 +00:00
Yoni Fogel
72c0171ab6 Addresses #889
Additional tests to verify we handle provdel leaf entries correctly
(when we need to cross between leaf boundaries.

git-svn-id: file:///svn/tokudb@4400 c7de825b-a66e-492c-adef-691d508d4ae1
2008-06-06 16:39:38 +00:00
Bradley C. Kuszmaul
33a145cf5d Don't run manyfiles.bdb. Addresses #891.
git-svn-id: file:///svn/tokudb@4397 c7de825b-a66e-492c-adef-691d508d4ae1
2008-06-06 13:07:25 +00:00
Bradley C. Kuszmaul
b3f35f217e Hash the cachetable too. Fixes #891.
git-svn-id: file:///svn/tokudb@4388 c7de825b-a66e-492c-adef-691d508d4ae1
2008-06-05 22:09:59 +00:00
Rich Prohaska
68e6ca2097 need to update the cursor when skipping provisionally deleted leaf entries. addresses #889
git-svn-id: file:///svn/tokudb@4367 c7de825b-a66e-492c-adef-691d508d4ae1
2008-06-04 22:58:07 +00:00
Bradley C. Kuszmaul
d12442d53e Implement 2nd scanscan, and allow txns to be turned off.
git-svn-id: file:///svn/tokudb@4351 c7de825b-a66e-492c-adef-691d508d4ae1
2008-06-03 21:55:47 +00:00
Bradley C. Kuszmaul
efe394f6b7 Finish cleanup. Addresses #855, #856.
git-svn-id: file:///svn/tokudb@4348 c7de825b-a66e-492c-adef-691d508d4ae1
2008-06-03 20:06:03 +00:00
Bradley C. Kuszmaul
d3815694af Add a bdb-layer test for the regression introduced by [4330]. Addresses #855, #856.
git-svn-id: file:///svn/tokudb@4347 c7de825b-a66e-492c-adef-691d508d4ae1
2008-06-03 20:03:29 +00:00
Yoni Fogel
f9982d4a47 Addresses #855, #856.
Bugfix in integration of omt cursors.
We were considering provdel leaf entries as not deleted.

git-svn-id: file:///svn/tokudb@4343 c7de825b-a66e-492c-adef-691d508d4ae1
2008-06-03 16:45:15 +00:00
Yoni Fogel
43d9a43f20 Addresses #855, #856. Reworked ExpectedO(1) cursors to be as close
as possible to the O(logn) cursors.
Semantics are now as close as possible, and may be a little faster now.

git-svn-id: file:///svn/tokudb@4339 c7de825b-a66e-492c-adef-691d508d4ae1
2008-06-03 04:25:28 +00:00
Yoni Fogel
2e01e6d00d Addresses #855, #856. Invalidates cursor on a failed toku_omt_find
git-svn-id: file:///svn/tokudb@4337 c7de825b-a66e-492c-adef-691d508d4ae1
2008-06-03 03:42:56 +00:00
Yoni Fogel
540d7247cd Addresses #855, #856. More 0s become NULLs. toku_omt_cursor_prev checks for index = 0
so that it can invalidate and return EINVAL (since index is unsigned)

git-svn-id: file:///svn/tokudb@4336 c7de825b-a66e-492c-adef-691d508d4ae1
2008-06-03 02:23:39 +00:00
Yoni Fogel
352566ea2f Addresses #855, #856. Standardize index to be unsigned, 32 bits. Used NULL instead of 0
git-svn-id: file:///svn/tokudb@4335 c7de825b-a66e-492c-adef-691d508d4ae1
2008-06-03 02:10:40 +00:00
Bradley C. Kuszmaul
77639084ce Get rid of ERANGE in favor of EINVAL. And fix up a couple of test cases. Addresses #855, #856.
git-svn-id: file:///svn/tokudb@4333 c7de825b-a66e-492c-adef-691d508d4ae1
2008-06-03 01:28:40 +00:00
Bradley C. Kuszmaul
9185a8549b Go to the O(logN)-integer-compare implementation, which is about 5% faster than the O(1) implementation. I cannot explain it. The old stuff is now in {{{omt-with-o1-cursors/}}}. Addresses #855, #856.
git-svn-id: file:///svn/tokudb@4329 c7de825b-a66e-492c-adef-691d508d4ae1
2008-06-03 00:50:14 +00:00
Yoni Fogel
eb41b7c0c7 Addresses #855, #856. Integrate OMT cursors with BRT for DB_PREV
git-svn-id: file:///svn/tokudb@4328 c7de825b-a66e-492c-adef-691d508d4ae1
2008-06-02 21:35:02 +00:00
Yoni Fogel
2ef26e0057 Converted all dos files to unix format (endlines only changed)
git-svn-id: file:///svn/tokudb@4327 c7de825b-a66e-492c-adef-691d508d4ae1
2008-06-02 21:28:03 +00:00
Yoni Fogel
6f7da78963 Integrate the omtcursors into the BRT. So far only DB_NEXT is implemented. Addresses #855, #856. Added missing information needed for commit
git-svn-id: file:///svn/tokudb@4326 c7de825b-a66e-492c-adef-691d508d4ae1
2008-06-02 21:21:32 +00:00
Bradley C. Kuszmaul
33d04ef55f Integrate the omtcursors into the BRT. So far only DB_NEXT is implemented. Addresses #855, #856.
git-svn-id: file:///svn/tokudb@4325 c7de825b-a66e-492c-adef-691d508d4ae1
2008-06-02 20:52:12 +00:00
Yoni Fogel
9c1a3057c9 Addresses #855
Bugfix in merge of tokudb.855 into trunk
Forgot to update all users of the omt

git-svn-id: file:///svn/tokudb@4309 c7de825b-a66e-492c-adef-691d508d4ae1
2008-05-30 21:58:32 +00:00
Vincenzo Liberatore
bf759aa8bb Closes #855 Merged back into trunk
git-svn-id: file:///svn/tokudb@4308 c7de825b-a66e-492c-adef-691d508d4ae1
2008-05-30 20:41:12 +00:00
Bradley C. Kuszmaul
5952205957 After swapping the order of the free and the alloc of the leafentry, I messed up because the alloc might move the leafentry, so the leafentry's size must be computed while the pointer is still good. Fixes #881.
git-svn-id: file:///svn/tokudb@4276 c7de825b-a66e-492c-adef-691d508d4ae1
2008-05-29 21:38:46 +00:00
Bradley C. Kuszmaul
e7150422f4 Probably repairs #880. Addresses #880.
git-svn-id: file:///svn/tokudb@4259 c7de825b-a66e-492c-adef-691d508d4ae1
2008-05-29 17:12:45 +00:00
Bradley C. Kuszmaul
0c5f094e26 Probably repairs #880. Addresses #880.
git-svn-id: file:///svn/tokudb@4258 c7de825b-a66e-492c-adef-691d508d4ae1
2008-05-29 17:05:03 +00:00
Bradley C. Kuszmaul
d4a80654d1 Simplfy the logic a little. Addresses #880.
git-svn-id: file:///svn/tokudb@4256 c7de825b-a66e-492c-adef-691d508d4ae1
2008-05-29 16:28:37 +00:00
Bradley C. Kuszmaul
8f6bbeb225 Please run the test case under the debugger (compiled with -O0), and then in gdb when it bombs do the following commands.
{{{
(gdb) print original_mp
(gdb) print last_total_size_needed
(gdb) up
(gdb) print *mp
(gdb) where
}}}


Addresses #880. 


git-svn-id: file:///svn/tokudb@4255 c7de825b-a66e-492c-adef-691d508d4ae1
2008-05-29 16:21:28 +00:00
Bradley C. Kuszmaul
e9323991d7 {{{
svn delete tokudb.872
cd tokudb
svn merge -r4187:4233 https://svn.tokutek.com/tokudb/tokudb.872
}}}

Fixes #849, #872.
Addresses #820.


git-svn-id: file:///svn/tokudb@4234 c7de825b-a66e-492c-adef-691d508d4ae1
2008-05-29 03:12:59 +00:00
Zardosht Kasheff
ed37a2cc1c addresses #846
change flag in toku_db_remove from DB_BTREE to DB_UNKNOWN

git-svn-id: file:///svn/tokudb@4203 c7de825b-a66e-492c-adef-691d508d4ae1
2008-05-28 13:44:23 +00:00
Bradley C. Kuszmaul
c82a8af504 Merge the changes for #871 and #406 into the main line as
{{{
$ cd tokudb; svn merge -r 4179:4181 https://svn.tokutek.com/tokudb/tokudb.871
$ svn delete tokudb.871
}}}

Fixes #871.  Addresses #406.  (Possibly fixes both.)


git-svn-id: file:///svn/tokudb@4182 c7de825b-a66e-492c-adef-691d508d4ae1
2008-05-28 01:22:51 +00:00
Bradley C. Kuszmaul
31144bf15b Make the leaf nodes have accurate memory footprint info.
git-svn-id: file:///svn/tokudb@4178 c7de825b-a66e-492c-adef-691d508d4ae1
2008-05-27 21:08:31 +00:00
Bradley C. Kuszmaul
7c0038357c A better fix for #865. Fixes #865.
git-svn-id: file:///svn/tokudb@4166 c7de825b-a66e-492c-adef-691d508d4ae1
2008-05-27 14:47:23 +00:00
Rich Prohaska
2f35b4cf16 port to i386
git-svn-id: file:///svn/tokudb@4161 c7de825b-a66e-492c-adef-691d508d4ae1
2008-05-27 12:26:08 +00:00
Bradley C. Kuszmaul
85d3c99dca Fix #865.
git-svn-id: file:///svn/tokudb@4160 c7de825b-a66e-492c-adef-691d508d4ae1
2008-05-27 11:29:33 +00:00
Yoni Fogel
45ab3f10cc Addresses #394
Removed deprecated (unused) code.

git-svn-id: file:///svn/tokudb@4122 c7de825b-a66e-492c-adef-691d508d4ae1
2008-05-24 17:28:21 +00:00
Yoni Fogel
b846ceaa9a Addresses #860
Removed extra mallocs and memcopies for toku_c_get
when the dbts use anything other than DB_DBT_USERMEM

git-svn-id: file:///svn/tokudb@4121 c7de825b-a66e-492c-adef-691d508d4ae1
2008-05-24 17:22:14 +00:00
Bradley C. Kuszmaul
fbc83b1cda Hacked fix for #832. Don't promote unless there's space for a max pivot key.
git-svn-id: file:///svn/tokudb@4105 c7de825b-a66e-492c-adef-691d508d4ae1
2008-05-23 17:04:21 +00:00
Bradley C. Kuszmaul
f60c54cad0 Fixes #22, #333 and Addresses #818:
* Create an exact bit (#818) for the sums (but doesn't calculate it.)
 * Add magic to the file header (#22)
 * Add per-subdb dupsort flags. (#333).

Did
{{{
$ cd tokudb
$ svn merge -r3990:4094 https://svn.tokutek.com/tokudb/tokudb.818/
$ cd ..
$ svn delete tokudb.818
}}}


git-svn-id: file:///svn/tokudb@4095 c7de825b-a66e-492c-adef-691d508d4ae1
2008-05-22 21:28:00 +00:00
Bradley C. Kuszmaul
7cc5c172bd Create a scan benchmark. Addresses #820.
git-svn-id: file:///svn/tokudb@4093 c7de825b-a66e-492c-adef-691d508d4ae1
2008-05-22 21:23:56 +00:00
Bradley C. Kuszmaul
0534cbcbaa Clean up the debug argument that is passed all around. Addresses #832.
git-svn-id: file:///svn/tokudb@4036 c7de825b-a66e-492c-adef-691d508d4ae1
2008-05-20 23:47:39 +00:00