mariadb/newbrt
Bradley C. Kuszmaul 7dcf06384a {{{test_log10.recover}}} now works. Fixes #548.
The final fix for this bug involves writing zeros into the unused bytes of the disk when serializing nodes.  
This is important for two reasons:
 1. It makes the files the same the bit-level.  (The problem showed up because a node of size near 1MB was written, and then the node split, causing the node to shrink, and when the node was written again, some left over bits from the previous node were still on disk.  Then the file compare failed after recovery.)
 1. It causes the file system to actually allocate the space for a node, so that when a node grows, it will all be contiguous on disk.

It has the disadvantage of writing more to disk than we did before, possibly reducing performance.  It probably doesn't matter much, however. 


git-svn-id: file:///svn/tokudb@2916 c7de825b-a66e-492c-adef-691d508d4ae1
2008-03-18 12:08:56 +00:00
..
checksum-benchmarks Up 2007-11-14 17:58:38 +00:00
locking-benchmarks Check interprocess pthread rwlocks o see if they work. Fixes #4 2007-11-19 22:01:16 +00:00
benchmark-test.c Use toku_assert instead of assert. Addresses #354. 2008-02-08 03:17:38 +00:00
brt-internal.h Deal with the multithreaded cursor DBT memory allocaiton problem. Addresses #538. (I'm going to write a few more tests before calling it fixed.) 2008-03-15 19:06:39 +00:00
brt-search.h update documentation. addresses #202 2008-01-27 13:45:27 +00:00
brt-serialize-test.c Break up brt-test some more. Addresses #475. Also make the fanout flexible. Fixes #126. 2008-03-06 21:46:57 +00:00
brt-serialize.c {{{test_log10.recover}}} now works. Fixes #548. 2008-03-18 12:08:56 +00:00
brt-test-cursor-2.c Deal with the multithreaded cursor DBT memory allocaiton problem. Addresses #538. (I'm going to write a few more tests before calling it fixed.) 2008-03-15 19:06:39 +00:00
brt-test-cursor.c Deal with the multithreaded cursor DBT memory allocaiton problem. Addresses #538. (I'm going to write a few more tests before calling it fixed.) 2008-03-15 19:06:39 +00:00
brt-test-helpers.c Separate some of the test helpers from brt.c to brt-test-helpers.c. Addresses #472. 2008-03-05 18:34:32 +00:00
brt-test.c Deal with the multithreaded cursor DBT memory allocaiton problem. Addresses #538. (I'm going to write a few more tests before calling it fixed.) 2008-03-15 19:06:39 +00:00
brt-test3.c Break up brt-test some more. Addresses #475. Also make the fanout flexible. Fixes #126. 2008-03-06 21:46:57 +00:00
brt-test4.c Break out test4 from brt-test. brt-test runs in 13 seconds, brt-test4 in 9 seconds, brt-test-cursor in 4 seconds, so we have halved the critical path. Fixes #475. 2008-03-06 16:35:18 +00:00
brt-verify.c Use toku_assert instead of assert. Addresses #354. 2008-02-08 03:17:38 +00:00
brt-XY.c Rename a bunch of symbols to toku_symbols. Addresses #8. 2007-11-29 15:09:14 +00:00
brt.c Fixes many problems in {{{test_log10}}}. There's a memory leak and the recovered files still differ, however. Addresses #548. 2008-03-18 10:19:41 +00:00
brt.h Deal with the multithreaded cursor DBT memory allocaiton problem. Addresses #538. (I'm going to write a few more tests before calling it fixed.) 2008-03-15 19:06:39 +00:00
brt2.c set_lg_max is ipmlemented, tested, and documented. Fixes #79. 2008-03-08 13:02:32 +00:00
brtdump.c {{{test_log8}}} recovers now. Fixes #544. 2008-03-17 02:40:59 +00:00
brttypes.h Segrate rollback and recover functions. Write a brt-level test for the cursor static variable problem. Addresses #536, #538. 2008-03-14 19:14:31 +00:00
cachetable-test.c Rollback during abort. Fixes #448. 2008-02-26 17:47:40 +00:00
cachetable-test2.c Rollback during abort. Fixes #448. 2008-02-26 17:47:40 +00:00
cachetable.c Logging improvements. Mostly fixes #27. Addresses #455, #27. 2008-02-29 20:47:11 +00:00
cachetable.h Rollback during abort. Fixes #448. 2008-02-26 17:47:40 +00:00
crc.h Minor modifications to remove some warnings. 2008-02-01 18:47:40 +00:00
fifo-test.c Use toku_assert instead of assert. Addresses #354. 2008-02-08 03:17:38 +00:00
fifo.c Fixes many problems in {{{test_log10}}}. There's a memory leak and the recovered files still differ, however. Addresses #548. 2008-03-18 10:19:41 +00:00
fifo.h Fixes many problems in {{{test_log10}}}. There's a memory leak and the recovered files still differ, however. Addresses #548. 2008-03-18 10:19:41 +00:00
fingerprint.c Use toku_assert instead of assert. Addresses #354. 2008-02-08 03:17:38 +00:00
hashfun.h Add copyright 2008. Fixes #283. 2008-01-24 15:10:32 +00:00
hclip.c A tool for only printing the first few columns 2008-01-31 13:03:35 +00:00
key.c Use toku_assert instead of assert. Addresses #354. 2008-02-08 03:17:38 +00:00
key.h Rename the last bunch of symbols to toku_symbols. Closes #8. 2007-11-29 18:14:40 +00:00
kv-pair.h Minor modifications to remove some warnings. 2008-02-01 18:47:40 +00:00
list-test.c Use toku_assert instead of assert. Addresses #354. 2008-02-08 03:17:38 +00:00
list.h Rollback is working a little better. Addresses #27. 2008-02-14 19:23:25 +00:00
lock.h Add copyright 2008. Fixes #283. 2008-01-24 15:10:32 +00:00
log-internal.h Segrate rollback and recover functions. Write a brt-level test for the cursor static variable problem. Addresses #536, #538. 2008-03-14 19:14:31 +00:00
log-test.c Update log-test to work better and test some logging as unit tests. Addresses #484. 2008-03-11 18:51:26 +00:00
log-test2.c Update log-test to work better and test some logging as unit tests. Addresses #484. 2008-03-11 18:51:26 +00:00
log-test3.c Create log-test3.c 2008-03-11 18:55:42 +00:00
log-test4.c Group commit working in tokulogger. Need to release some locks in ydb. Addresses #484. 2008-03-12 17:55:11 +00:00
log-test5.c Group commit working in tokulogger. Need to release some locks in ydb. Addresses #484. 2008-03-12 17:55:11 +00:00
log-test6.c Group commit working in tokulogger. Need to release some locks in ydb. Addresses #484. 2008-03-12 17:55:11 +00:00
log.c Work on getting test_log8 to recover. Addresse #544. 2008-03-16 22:22:26 +00:00
log.h Make recovery work when called from {{{DB_ENV->open}}}. Fixes #483. 2008-03-12 19:40:38 +00:00
logformat.c Segrate rollback and recover functions. Write a brt-level test for the cursor static variable problem. Addresses #536, #538. 2008-03-14 19:14:31 +00:00
Makefile Segrate rollback and recover functions. Write a brt-level test for the cursor static variable problem. Addresses #536, #538. 2008-03-14 19:14:31 +00:00
memory.c Deal with the multithreaded cursor DBT memory allocaiton problem. Addresses #538. (I'm going to write a few more tests before calling it fixed.) 2008-03-15 19:06:39 +00:00
memory.h Break up brt-test some more. Addresses #475. Also make the fanout flexible. Fixes #126. 2008-03-06 21:46:57 +00:00
mempool.c Use toku_assert instead of assert. Addresses #354. 2008-02-08 03:17:38 +00:00
mempool.h Add copyrights using #ident on the top of newbrt sources. Addresses #54. 2007-11-29 14:18:54 +00:00
memtest.c Use toku_assert instead of assert. Addresses #354. 2008-02-08 03:17:38 +00:00
pma-cursor.h Improvements to rollback. Addresses #27. 2008-02-27 11:05:19 +00:00
pma-internal.h Rework the way transactions ids are used in the log (xid's on messages are used when inserting something into a leaf.) Addresses #27. 2008-02-08 19:54:00 +00:00
pma-test.c {{{test_log8}}} recovers now. Fixes #544. 2008-03-17 02:40:59 +00:00
pma.c {{{test_log8}}} recovers now. Fixes #544. 2008-03-17 02:40:59 +00:00
pma.h {{{test_log8}}} recovers now. Fixes #544. 2008-03-17 02:40:59 +00:00
primes.c Use toku_assert instead of assert. Addresses #354. 2008-02-08 03:17:38 +00:00
primes.h Create {{{toku_assert}}} (Fixes #354). Make the primes test actually work (Fixes #355). Addresses #277. 2008-02-07 16:35:39 +00:00
randdb4.c Use toku_assert instead of assert. Addresses #354. 2008-02-08 03:17:38 +00:00
rbuf.h Add copyrights using #ident on the top of newbrt sources. Addresses #54. 2007-11-29 14:18:54 +00:00
recover.c Call {{{toku_malloc_cleanup}}} in {{{tdb_recover}}}. Fixes #552. 2008-03-18 11:01:44 +00:00
roll.c Segrate rollback and recover functions. Write a brt-level test for the cursor static variable problem. Addresses #536, #538. 2008-03-14 19:14:31 +00:00
rwlock.c Add copyrights using #ident on the top of newbrt sources. Addresses #54. 2007-11-29 14:18:54 +00:00
tdb-recover.c Call {{{toku_malloc_cleanup}}} in {{{tdb_recover}}}. Fixes #552. 2008-03-18 11:01:44 +00:00
tdb_logprint.c Use toku_assert instead of assert. Addresses #354. 2008-02-08 03:17:38 +00:00
test-assert.c Use toku_assert instead of assert. Addresses #354. 2008-02-08 03:17:38 +00:00
test-brt-delete-both.c Forgot to commit something. Addresses #27. 2008-02-26 15:54:14 +00:00
test-del-inorder.c Many things: 2008-02-25 22:46:48 +00:00
test-inc-split.c Many things: 2008-02-25 22:46:48 +00:00
test-primes.c add test-primes. addresses #277 2008-01-17 19:35:12 +00:00
test.h Many things: 2008-02-25 22:46:48 +00:00
test_oexcl.c Use toku_assert instead of assert. Addresses #354. 2008-02-08 03:17:38 +00:00
test_toku_malloc_plain_free.c mixing toku_malloc and malloc is not a problem. At least with BUFFERED_MALLOC not defined. Added a test, and a {{{#error}}} inside {{{memory.c}}}. Fixes #161. 2007-12-10 11:28:00 +00:00
toku_assert.c Use toku_assert instead of assert. Addresses #354. 2008-02-08 03:17:38 +00:00
toku_assert.h Use toku_assert instead of assert. Addresses #354. 2008-02-08 03:17:38 +00:00
wbuf.h Use toku_assert instead of assert. Addresses #354. 2008-02-08 03:17:38 +00:00
ybt-test.c Use toku_assert instead of assert. Addresses #354. 2008-02-08 03:17:38 +00:00
ybt.c set the data and length to 0 for zero length things. dbt's with malloc flags are unchanged. closes #367 2008-02-08 22:53:08 +00:00
ybt.h Rename a bunch of symbols to toku_symbols. Addresses #8. 2007-11-29 15:17:46 +00:00
yerror.h Add copyrights using #ident on the top of newbrt sources. Addresses #54. 2007-11-29 14:18:54 +00:00