* Block allocation is now first-fit.
* There is a better test for the block allocator.
* brt_stat64 returns data in a struct instead of a bunch of arguments.
* Nodes are set clean after serialization.
git-svn-id: file:///svn/toku/tokudb@14214 c7de825b-a66e-492c-adef-691d508d4ae1
Added option to easily toggle implicit promotion on query
Disabled for now because of tickets [t:1903] [t:1906]
git-svn-id: file:///svn/toku/tokudb@13679 c7de825b-a66e-492c-adef-691d508d4ae1
Fix bug where assert was hit when transactions are off.
Cleaned up some code.
git-svn-id: file:///svn/toku/tokudb@13625 c7de825b-a66e-492c-adef-691d508d4ae1
Cursors take a copy of oldest living xid upon creation, which they use for implicit promotion
git-svn-id: file:///svn/toku/tokudb@13606 c7de825b-a66e-492c-adef-691d508d4ae1
Current tests fail (not regressions, they fail as of 13461)
* {{{x1.tdbrun}}}
* {{{test_log(2,3,4,5,6,7,8,9,10).recover}}}
* {{{test-recover(1,2,3).tdbrun}}}
* {{{test1324.tdbrun}}}
ULE_DEBUG disabled (defined to 0) Can be re-enabled for test purposes (set to 1).
refs [t:1125]
Merging into the temp branch (tokudb.main_13461+1125)
{{{svn merge --accept=postpone -r 12527:13461 ../tokudb.1125 ./}}}
Merging into main
{{{svn merge --accept=postpone -r13462:13463 ../tokudb.main_13461+1125/ ./}}}
git-svn-id: file:///svn/toku/tokudb@13464 c7de825b-a66e-492c-adef-691d508d4ae1
When a new brt is open, it takes over responsibilities of all existing zombie brts, and closes them.
When a brt closes, if other brts exist, it passes off responsibilities and closes immediately. It only becomes a zombie if no other brts exist.
(Everything above is in context of a single header).
git-svn-id: file:///svn/toku/tokudb@11533 c7de825b-a66e-492c-adef-691d508d4ae1
Remove transactions' need to count references to cachefiles (they already have references to brts)
Errors in rolling back certain functions were ignored (r = blah; return something_else);
They are now reported, so diskfull had to be updated to expect ENOSPC under certain circumstances.
git-svn-id: file:///svn/toku/tokudb@11371 c7de825b-a66e-492c-adef-691d508d4ae1
We clear it when the transaction closes (this means we cannot change it when it is already set till that transaction finishes).
This fixes a crash in windows in root_fifo_2.tdb
git-svn-id: file:///svn/toku/tokudb@11365 c7de825b-a66e-492c-adef-691d508d4ae1
version now comes before 'size' in header
Some cleanup/defined new error codes instead of '-1'
git-svn-id: file:///svn/toku/tokudb@11304 c7de825b-a66e-492c-adef-691d508d4ae1
If descriptor contents stay the same but version goes up, record new version (instead of ignore it).
git-svn-id: file:///svn/toku/tokudb@11263 c7de825b-a66e-492c-adef-691d508d4ae1
Serialize descriptor with each brtnode (leaf and nonleaf)
Deserialize descriptor with each brtnode (to be thrown away).
Don't malloc+memdup the descriptor for brtnodes, since that would waste time.
git-svn-id: file:///svn/toku/tokudb@11200 c7de825b-a66e-492c-adef-691d508d4ae1
Added versioning to descriptor.
Changing a descriptor REQUIRES the version to increase.
Version 0 is reserved for a non-descriptor db. (cannot be set).
Not yet added to brtnodes.
Still possible to change descriptor with an open brt (which would not be upgraded).
git-svn-id: file:///svn/toku/tokudb@11198 c7de825b-a66e-492c-adef-691d508d4ae1
Will aid in having multiple DB handles to a single brt, which is needed to kill root fifo
git-svn-id: file:///svn/toku/tokudb@11157 c7de825b-a66e-492c-adef-691d508d4ae1
Several fixes are included, particulary db remove after db truncate (with descriptor) does not crash anymore.
svn merge -r 10931:11019 ../tokudb.1510
git-svn-id: file:///svn/toku/tokudb@11020 c7de825b-a66e-492c-adef-691d508d4ae1