Commit graph

179 commits

Author SHA1 Message Date
Bradley C. Kuszmaul
178820a688 Merge changes from 2216a to main (except possibly for the windows subdirectory, which Yoni will do separately).
2216a is no longer valid.
Refs #2216. [t:2216].
{{{
svn merge -r17301:18179 https://svn.tokutek.com/tokudb/toku/tokudb.2216a/src/tests
}}}



git-svn-id: file:///svn/toku/tokudb@18181 c7de825b-a66e-492c-adef-691d508d4ae1
2013-04-16 23:59:01 -04:00
Yoni Fogel
14d67581f0 closes[t:2391] Merge 2391 branch to main
git-svn-id: file:///svn/toku/tokudb@18153 c7de825b-a66e-492c-adef-691d508d4ae1
2013-04-16 23:59:01 -04:00
Yoni Fogel
adf3e7ae95 [t:2350] Added DB_NOOVERWRITE_NO_ERROR flag for DB->put.
Will return EINVAL for ENV->put_multiple.

Has same semantics as INSERT IGNORE in mysql.
(equivalently) Has same semantics as DB_NOOVERWRITE except that it returns 0 if there is a duplicate key error
instead of DB_KEYEXISTS

git-svn-id: file:///svn/toku/tokudb@17682 c7de825b-a66e-492c-adef-691d508d4ae1
2013-04-16 23:59:00 -04:00
Barry Perlman
0fecb0fd4d Addresses #2336 refs[t:2336] Undoes unnecessary bug fix, restore assert.
git-svn-id: file:///svn/toku/tokudb@17323 c7de825b-a66e-492c-adef-691d508d4ae1
2013-04-16 23:58:59 -04:00
Bradley C. Kuszmaul
56d2c6fdf8 Merge 2216 onto main (from 16706-17293) as
{{{
svn merge -r16706:17293 https://svn.tokutek.com/tokudb/toku/tokudb.2216
}}}

Refs #2216. [t:2216]


git-svn-id: file:///svn/toku/tokudb@17299 c7de825b-a66e-492c-adef-691d508d4ae1
2013-04-16 23:58:59 -04:00
Barry Perlman
ae499b39f9 Addresses #2336 refs[t:2336] Deleted overactive assert.
git-svn-id: file:///svn/toku/tokudb@17296 c7de825b-a66e-492c-adef-691d508d4ae1
2013-04-16 23:58:59 -04:00
Yoni Fogel
2146c3d242 [t:2318] Replace DB_DBT_TEMPMEMORY with flags==0
git-svn-id: file:///svn/toku/tokudb@17197 c7de825b-a66e-492c-adef-691d508d4ae1
2013-04-16 23:58:59 -04:00
Yoni Fogel
838e0e5b1c [t:2318] Merge #2318 back to main up to r17166
git-svn-id: file:///svn/toku/tokudb@17178 c7de825b-a66e-492c-adef-691d508d4ae1
2013-04-16 23:58:59 -04:00
Yoni Fogel
9557f27e82 Addresses #2249 [t:2249] Merge DB_ENV->put_multiple branch back onto main.
Fixed some makefile issues, ported recovery tests to use toku_hard_crash_on_purpose(), fixed db-benchmark-test to use default name
for 0th db

git-svn-id: file:///svn/toku/tokudb@16936 c7de825b-a66e-492c-adef-691d508d4ae1
2013-04-16 23:58:58 -04:00
Rich Prohaska
edaa294849 print checkpoint timestamps during recovery close[t:2255]
git-svn-id: file:///svn/toku/tokudb@16485 c7de825b-a66e-492c-adef-691d508d4ae1
2013-04-16 23:58:56 -04:00
Rich Prohaska
26ba255118 merge the recovery changes found by barry and rich during a code review to main closes[t:2231]
git-svn-id: file:///svn/toku/tokudb@16298 c7de825b-a66e-492c-adef-691d508d4ae1
2013-04-16 23:58:56 -04:00
Dave Wells
dec996c12a add ability to execute 2 callbacks during recovery - for [t:2028]
git-svn-id: file:///svn/toku/tokudb@16279 c7de825b-a66e-492c-adef-691d508d4ae1
2013-04-16 23:58:56 -04:00
Yoni Fogel
3d64b79078 Closes #2227 closes[t:2227] Change the way backwards recovery works for
fcreate/fclose/fassociate/fopen.  Files that potentially do not have a full header written will never be opened

git-svn-id: file:///svn/toku/tokudb@16238 c7de825b-a66e-492c-adef-691d508d4ae1
2013-04-16 23:58:55 -04:00
Yoni Fogel
e37c1ac397 Addresses #2218 refs[t:2218] Merge r1629 to main
git-svn-id: file:///svn/toku/tokudb@16130 c7de825b-a66e-492c-adef-691d508d4ae1
2013-04-16 23:58:55 -04:00
Rich Prohaska
5da081a536 rearrange the recovery progress refs[t:2191]
git-svn-id: file:///svn/toku/tokudb@15981 c7de825b-a66e-492c-adef-691d508d4ae1
2013-04-16 23:58:54 -04:00
Rich Prohaska
ebc6a25f03 describe the units of progress time refs[t:2191]
git-svn-id: file:///svn/toku/tokudb@15980 c7de825b-a66e-492c-adef-691d508d4ae1
2013-04-16 23:58:54 -04:00
Rich Prohaska
e73a7f83c0 test some recovery error paths closes[t:2199]
git-svn-id: file:///svn/toku/tokudb@15979 c7de825b-a66e-492c-adef-691d508d4ae1
2013-04-16 23:58:54 -04:00
Rich Prohaska
c0a2cb6fd2 improve recovery progress tracking refs[t:2191]
git-svn-id: file:///svn/toku/tokudb@15959 c7de825b-a66e-492c-adef-691d508d4ae1
2013-04-16 23:58:53 -04:00
Rich Prohaska
4f67746f66 print the number of log entries left to process during recovery refs[t:2191]
git-svn-id: file:///svn/toku/tokudb@15947 c7de825b-a66e-492c-adef-691d508d4ae1
2013-04-16 23:58:53 -04:00
Rich Prohaska
508adfd5a4 replace the timestamp and shutdown log entry with a comment log entry closes[t:2192]
git-svn-id: file:///svn/toku/tokudb@15946 c7de825b-a66e-492c-adef-691d508d4ae1
2013-04-16 23:58:53 -04:00
Rich Prohaska
e7fd532535 print recovery progress every 15 seconds closes[t:2191]
git-svn-id: file:///svn/toku/tokudb@15938 c7de825b-a66e-492c-adef-691d508d4ae1
2013-04-16 23:58:53 -04:00
Rich Prohaska
4c337193b6 rename __rolltmp to __tokudb_rolltmp closes[t:2184]
git-svn-id: file:///svn/toku/tokudb@15884 c7de825b-a66e-492c-adef-691d508d4ae1
2013-04-16 23:58:53 -04:00
Rich Prohaska
b89eb6ef9e speed up recovery by using a large cache table closes[t:2183]
git-svn-id: file:///svn/toku/tokudb@15875 c7de825b-a66e-492c-adef-691d508d4ae1
2013-04-16 23:58:53 -04:00
Rich Prohaska
6196e6efca cleanup recovery fprintf strings refs[t:2177]
git-svn-id: file:///svn/toku/tokudb@15870 c7de825b-a66e-492c-adef-691d508d4ae1
2013-04-16 23:58:53 -04:00
Yoni Fogel
972e1f6cf2 addresses #2155 refs[t:2155] Reverse part of r15848.
We run 'backward' recovery and 'forward recovery' on the item we turn around on, so do not set 'forward saw checkpoint begin' state
till we're in forward recovery.

git-svn-id: file:///svn/toku/tokudb@15849 c7de825b-a66e-492c-adef-691d508d4ae1
2013-04-16 23:58:52 -04:00
Yoni Fogel
3ab29cbd36 Addresses #2155 refs[t:2155] Renamed variables,
Added missing state transaction (turn around on checkpoint begin with no transactions)
Added error checking for unlink (anything but 0/ENOENT is real error)

Changes due to code review with Barry

git-svn-id: file:///svn/toku/tokudb@15848 c7de825b-a66e-492c-adef-691d508d4ae1
2013-04-16 23:58:52 -04:00
Rich Prohaska
0054c5cceb add sensible recovery tracing refs[t:2177]
git-svn-id: file:///svn/toku/tokudb@15845 c7de825b-a66e-492c-adef-691d508d4ae1
2013-04-16 23:58:52 -04:00
Yoni Fogel
6b7c5bdfff Closes #2155 closes[t:2155] Forward recovery split
* Before 'checkpoint begin'
  * fcreate
   * Will not create (treated as fopen)
   * Will not delete file
   * Will force rollback entry of fcreate (if file exists)
 * After checkpoint begin
  * fcreate
   * Will create
   * Will first delete file
   * Will force rollback entry of fcreate (if file exists)



git-svn-id: file:///svn/toku/tokudb@15844 c7de825b-a66e-492c-adef-691d508d4ae1
2013-04-16 23:58:52 -04:00
Yoni Fogel
7d6f6fef69 Closes #2180 closes[t:2180] Recovery forces 'fcreate' in rollback log (when replaying fcreate log entry)
git-svn-id: file:///svn/toku/tokudb@15841 c7de825b-a66e-492c-adef-691d508d4ae1
2013-04-16 23:58:52 -04:00
Barry Perlman
bb8cf498bd Addresses #652, #2170, #2178 refs[t:652,2170,2178] Merge from 3.0.0-logging branch with command: svn merge -r15784:HEAD https://svn.tokutek.com/tokudb/mysql.branches/3.0.0-logging/tokudb .
git-svn-id: file:///svn/toku/tokudb@15839 c7de825b-a66e-492c-adef-691d508d4ae1
2013-04-16 23:58:52 -04:00
Yoni Fogel
18c2c68f7c Addresses #2164 refs[t:2164] Zombie locking contract now enforced in rename/remove
Checkpoint holds entire brt open (as zombie if necessary) instead of just holding open the cachefile.

git-svn-id: file:///svn/toku/tokudb.2037b@15740 c7de825b-a66e-492c-adef-691d508d4ae1
2013-04-16 23:58:06 -04:00
Yoni Fogel
a4f65b1154 Comment
git-svn-id: file:///svn/toku/tokudb.2037b@15739 c7de825b-a66e-492c-adef-691d508d4ae1
2013-04-16 23:58:06 -04:00
Yoni Fogel
86a917a99d Closes #2160 closes[t:2160] Implement forward and backward recovery for fdelete.
fopen forward recovery: file missing (ENOENT) is not considered an error.

git-svn-id: file:///svn/toku/tokudb.2037b@15693 c7de825b-a66e-492c-adef-691d508d4ae1
2013-04-16 23:58:06 -04:00
Yoni Fogel
b3df0166e4 Closes #2158 closes[t:2158] Backwards recovery of fcreate does fclose (just like backwards fopen)
git-svn-id: file:///svn/toku/tokudb.2037b@15692 c7de825b-a66e-492c-adef-691d508d4ae1
2013-04-16 23:58:06 -04:00
Yoni Fogel
a522ceda16 Closes #2153 refs[t:2153] fopen logged only once (unless closed and reopened). Removed logger from cachefile_close,
removed txnid from logging of fopen.

git-svn-id: file:///svn/toku/tokudb.2037b@15691 c7de825b-a66e-492c-adef-691d508d4ae1
2013-04-16 23:58:06 -04:00
Yoni Fogel
6feac9ff0b Closes #2064 closes[t:2064] Forward recovery of fcreate sets initial descriptor in brt.
Added test (src/tests/recover-compare-db-descriptor.abortrecover) that fails before this change, succeeds with it.

git-svn-id: file:///svn/toku/tokudb.2037b@15589 c7de825b-a66e-492c-adef-691d508d4ae1
2013-04-16 23:58:05 -04:00
Yoni Fogel
ae5828e7b9 Closes #2058 closes[t:2058] Recovery passes a fake DB* (zeroed out DB struct) to brt
for purposes of DB comparison function.


git-svn-id: file:///svn/toku/tokudb@15583 c7de825b-a66e-492c-adef-691d508d4ae1
2013-04-16 23:58:05 -04:00
Yoni Fogel
580f5caafb Addresses #2037 refs[t:2037] Merged #2037 back into main
git-svn-id: file:///svn/toku/tokudb@15562 c7de825b-a66e-492c-adef-691d508d4ae1
2013-04-16 23:58:04 -04:00
Rich Prohaska
805eef87be rename the recover lock file closes[t:2095]
git-svn-id: file:///svn/toku/tokudb@15558 c7de825b-a66e-492c-adef-691d508d4ae1
2013-04-16 23:58:04 -04:00
Yoni Fogel
d2576d5f71 Closes #2057 closes[t:2057] Add warnings about code that needs to remain in certain order to prevent recovery errors,
Fixed bug where lsn in header could be wrong (or crash during recovery).

git-svn-id: file:///svn/toku/tokudb@14856 c7de825b-a66e-492c-adef-691d508d4ae1
2013-04-16 23:58:03 -04:00
Rich Prohaska
46ae126764 panic brt's if recovery fails close[t:2035]
git-svn-id: file:///svn/toku/tokudb@14783 c7de825b-a66e-492c-adef-691d508d4ae1
2013-04-16 23:58:03 -04:00
Rich Prohaska
a39e28d36b make recovery more robust refs[t:2035]
git-svn-id: file:///svn/toku/tokudb@14751 c7de825b-a66e-492c-adef-691d508d4ae1
2013-04-16 23:58:03 -04:00
Yoni Fogel
1f0a5815b1 Closes #1862 closes[t:1862] LSNs are logged/chosen during the actual close, if closed during recovery, the LSN is passed into close.
git-svn-id: file:///svn/toku/tokudb@14686 c7de825b-a66e-492c-adef-691d508d4ae1
2013-04-16 23:58:02 -04:00
Dave Wells
3106fcce80 Fix recover-missing-logfiles test. In the process, define DB_CLOSE_DONT_TRIM_LOG flag for db_close. Also, remove some old, unused code
git-svn-id: file:///svn/toku/tokudb@14631 c7de825b-a66e-492c-adef-691d508d4ae1
2013-04-16 23:58:02 -04:00
Rich Prohaska
191d616ee8 add another test case for nested txn recovery [t:1960]
git-svn-id: file:///svn/toku/tokudb@14557 c7de825b-a66e-492c-adef-691d508d4ae1
2013-04-16 23:58:02 -04:00
Rich Prohaska
9d4f1ee78e fix some recovery tests close[t:2005] close[t:2010]
git-svn-id: file:///svn/toku/tokudb@14546 c7de825b-a66e-492c-adef-691d508d4ae1
2013-04-16 23:58:02 -04:00
Dave Wells
5ed2e4dc34 fix logfile trimming code, change ydb.c to exclusively use toku_checkpoint
git-svn-id: file:///svn/toku/tokudb@14522 c7de825b-a66e-492c-adef-691d508d4ae1
2013-04-16 23:58:01 -04:00
Rich Prohaska
0b920d5f6c require an env to create a db [t:2001]
git-svn-id: file:///svn/toku/tokudb@14513 c7de825b-a66e-492c-adef-691d508d4ae1
2013-04-16 23:58:01 -04:00
Rich Prohaska
d4c7ca77d9 fix up some compile issues [t:2003]
git-svn-id: file:///svn/toku/tokudb@14490 c7de825b-a66e-492c-adef-691d508d4ae1
2013-04-16 23:58:01 -04:00
Yoni Fogel
2fefaf6428 Closes #2003 closes [t:2003] add 'table lock on empty' log entry, and recovery logic for it.
git-svn-id: file:///svn/toku/tokudb@14489 c7de825b-a66e-492c-adef-691d508d4ae1
2013-04-16 23:58:01 -04:00