Commit graph

1271 commits

Author SHA1 Message Date
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
Rich Prohaska
1c5ba7650b force recovery down an error path refs[t:2224]
git-svn-id: file:///svn/toku/tokudb@16219 c7de825b-a66e-492c-adef-691d508d4ae1
2013-04-16 23:58:55 -04:00
Rich Prohaska
4fdf978767 closes[t:2221] recovery does not call ydb callbacks
git-svn-id: file:///svn/toku/tokudb@16155 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
Bradley C. Kuszmaul
a3a8d8cce6 Merge from 2212 branch. Fixes #2212. Fixes[t:2212].
git-svn-id: file:///svn/toku/tokudb@16106 c7de825b-a66e-492c-adef-691d508d4ae1
2013-04-16 23:58:55 -04:00
Bradley C. Kuszmaul
ee8d5b670e Remove about 15 lines of dead code. Refs [t:2208]
git-svn-id: file:///svn/toku/tokudb@16068 c7de825b-a66e-492c-adef-691d508d4ae1
2013-04-16 23:58:55 -04:00
Barry Perlman
645ef221d7 Add some carriage returns to dump_translation().
git-svn-id: file:///svn/toku/tokudb@16034 c7de825b-a66e-492c-adef-691d508d4ae1
2013-04-16 23:58:54 -04:00
Bradley C. Kuszmaul
4726801d1a Fixes[t:2209] Fixes #2209.
git-svn-id: file:///svn/toku/tokudb@16032 c7de825b-a66e-492c-adef-691d508d4ae1
2013-04-16 23:58:54 -04:00
Rich Prohaska
903d51eb35 add a test for a missing tokudb file during recovery refs[t:2199]
git-svn-id: file:///svn/toku/tokudb@15998 c7de825b-a66e-492c-adef-691d508d4ae1
2013-04-16 23:58:54 -04:00
Rich Prohaska
be78fe5408 fix a valgrind bug refs[t:2199]
git-svn-id: file:///svn/toku/tokudb@15995 c7de825b-a66e-492c-adef-691d508d4ae1
2013-04-16 23:58:54 -04:00
Barry Perlman
c3738f4487 Addresses #2197 refs[t:2197] brtdump: Provide cachefile for brt header.
git-svn-id: file:///svn/toku/tokudb@15989 c7de825b-a66e-492c-adef-691d508d4ae1
2013-04-16 23:58:54 -04:00
Yoni Fogel
daa83b2d17 Addresses #2194 refs[t:2194] Windows port work: set default for 'open' to be binary.
Set open of logfiles to be binary

git-svn-id: file:///svn/toku/tokudb@15986 c7de825b-a66e-492c-adef-691d508d4ae1
2013-04-16 23:58:54 -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
722f0aea3f remove the fifo peek cmdstruct cruft refs[t:2189]
git-svn-id: file:///svn/toku/tokudb@15965 c7de825b-a66e-492c-adef-691d508d4ae1
2013-04-16 23:58:54 -04:00
Barry Perlman
887a53259d Addresses #2090 refs[t:2090] Bugfix in cachetable_reserve_filenum(), added test program to exercise filenum reservation/release.
git-svn-id: file:///svn/toku/tokudb@15963 c7de825b-a66e-492c-adef-691d508d4ae1
2013-04-16 23:58:54 -04:00
Rich Prohaska
6c30f3916d remove the fifo_msg cruft from the newbrt refs[t:2189]
git-svn-id: file:///svn/toku/tokudb@15962 c7de825b-a66e-492c-adef-691d508d4ae1
2013-04-16 23:58:54 -04:00
Barry Perlman
25cfe8a64d Addresses #1924 refs[t:1924] Disable automatic upgrade until we decide to actually do it.
We don't want to partially upgrade a database and we don't have the logic to automatically
create the fileops directory.  This is done simply by setting 
  BRT_LAYOUT_MIN_SUPPORTED_VERSION = BRT_LAYOUT_VERSION
and leaving some unused code in place.


git-svn-id: file:///svn/toku/tokudb@15960 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
6282f73348 remove some more logging cruft refs[t:2189]
git-svn-id: file:///svn/toku/tokudb@15957 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
0ff48bb664 imp DB_TXN_SYNC ref[t:2190]
git-svn-id: file:///svn/toku/tokudb@15936 c7de825b-a66e-492c-adef-691d508d4ae1
2013-04-16 23:58:53 -04:00
Barry Perlman
e1877dbb59 Closes #2187 refs[t:2187] Call toku_checkpoint_destroy() from toku_brt_destroy().
git-svn-id: file:///svn/toku/tokudb@15931 c7de825b-a66e-492c-adef-691d508d4ae1
2013-04-16 23:58:53 -04:00
Rich Prohaska
f9ac445e55 delete logging cruft closes[t:2189]
git-svn-id: file:///svn/toku/tokudb@15929 c7de825b-a66e-492c-adef-691d508d4ae1
2013-04-16 23:58:53 -04:00
Rich Prohaska
c9ed5c989f remove varray closes[t:2186]
git-svn-id: file:///svn/toku/tokudb@15923 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
Yoni Fogel
223fc2395a Addresses #2164 refs[t:2164] Take brtheader lock when accessing zombie/live lists during fdelete on commit.
git-svn-id: file:///svn/toku/tokudb@15878 c7de825b-a66e-492c-adef-691d508d4ae1
2013-04-16 23:58:53 -04:00
Yoni Fogel
c3a51b5f34 Addresses #2164 refs[t:2164] Remove race condition from accessing live/zombie lists.
git-svn-id: file:///svn/toku/tokudb@15877 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
Rich Prohaska
e8a671d611 imp toku_file_fsync in the port layer closes[t:1748]
git-svn-id: file:///svn/toku/tokudb@15805 c7de825b-a66e-492c-adef-691d508d4ae1
2013-04-16 23:58:52 -04:00
Yoni Fogel
357ebc950d Addresses #2172 refs[t:2172] Bugfix of commit r15040 (Addresses #2037 refs[t:2037])
Was not holding cachetable lock to access rwlock (whose mutex was cachetable lock).
This caused a race condition that you would sometimes grab the cachetable lock on exiting the lock but didn't have it before.

We believe this caused the deadlock

git-svn-id: file:///svn/toku/tokudb@15802 c7de825b-a66e-492c-adef-691d508d4ae1
2013-04-16 23:58:52 -04:00
Rich Prohaska
58cf363b8d speedup the db-benchmark-test buffer generator refs[t:2123]
git-svn-id: file:///svn/toku/tokudb@15775 c7de825b-a66e-492c-adef-691d508d4ae1
2013-04-16 23:58:52 -04:00
Yoni Fogel
c943ab3b1c Addresses #2168 refs[t:2168] Skip fsync for transactions that have done no (modify) work.
i.e. only queries

git-svn-id: file:///svn/toku/tokudb.2037b@15766 c7de825b-a66e-492c-adef-691d508d4ae1
2013-04-16 23:58:07 -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