mirror of
https://github.com/MariaDB/server.git
synced 2025-01-16 12:02:42 +01:00
WL#3072 Maria recovery
Progress reports on stderr if doing recovery from ha_maria; don't do checkpoints if activity since last checkpoint < 2MB (no change in fact as background thread is disabled for now); recovery trace is only if EXTRA_DEBUG now (better for benchmarks). storage/maria/ma_checkpoint.c: don't do checkpoints if activity (log writes plus page flushes) since last checkpoint was < 2MB. storage/maria/ma_recovery.c: progress reports in recovery (10%, transactions left to rollback etc); that is only if from ha_maria and is displayed on stderr. Recovery trace is now created only if EXTRA_DEBUG. storage/maria/ma_test_recovery.expected: update (--debug gone) storage/maria/ma_test_recovery: don't use --debug, as it can absent from binary
This commit is contained in:
parent
e57cccc65c
commit
8b5dddbc00
4 changed files with 303 additions and 236 deletions
|
@ -544,7 +544,9 @@ static int filter_flush_data_file_evenly(enum pagecache_page_type type,
|
|||
pthread_handler_t ma_checkpoint_background(void *arg __attribute__((unused)))
|
||||
{
|
||||
const uint sleep_unit= 1 /* 1 second */,
|
||||
time_between_checkpoints= 30; /* 30 sleep units */
|
||||
time_between_checkpoints= 30, /* 30 sleep units */
|
||||
/** @brief At least this of log/page bytes written between checkpoints */
|
||||
checkpoint_min_activity= 2*1024*1024;
|
||||
uint sleeps= 0;
|
||||
|
||||
my_thread_init();
|
||||
|
@ -570,16 +572,17 @@ pthread_handler_t ma_checkpoint_background(void *arg __attribute__((unused)))
|
|||
in the checkpoint.
|
||||
*/
|
||||
/*
|
||||
No checkpoint if no work of interest for recovery was done
|
||||
No checkpoint if little work of interest for recovery was done
|
||||
since last checkpoint. Such work includes log writing (lengthens
|
||||
recovery, checkpoint would shorten it), page flushing (checkpoint
|
||||
would decrease the amount of read pages in recovery).
|
||||
*/
|
||||
if ((translog_get_horizon() == log_horizon_at_last_checkpoint) &&
|
||||
(pagecache_flushes_at_last_checkpoint ==
|
||||
maria_pagecache->global_cache_write))
|
||||
if (((translog_get_horizon() - log_horizon_at_last_checkpoint) +
|
||||
(maria_pagecache->global_cache_write -
|
||||
pagecache_flushes_at_last_checkpoint) *
|
||||
maria_pagecache->block_size) < checkpoint_min_activity)
|
||||
{
|
||||
/* safety against errors during flush by this thread: */
|
||||
/* don't take checkpoint, so don't know what to flush */
|
||||
pages_to_flush_before_next_checkpoint= 0;
|
||||
break;
|
||||
}
|
||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -131,7 +131,7 @@ do
|
|||
for test_undo in 1 2 3
|
||||
do
|
||||
# first iteration tests rollback of insert, second tests rollback of delete
|
||||
set -- "ma_test1 $silent -M -T -c -N $blobs" "--testflag=1" "--testflag=2 --test-undo=" "ma_test1 $silent -M -T -c -N --debug=d:t:i:o,/tmp/ma_test1.trace $blobs" "--testflag=3" "--testflag=4 --test-undo=" "ma_test1 $silent -M -T -c -N --debug=d:t:i:o,/tmp/ma_test1.trace $blobs" "--testflag=2" "--testflag=3 --test-undo=" "ma_test2 $silent -L -K -W -P -M -T -c $blobs" "-t1" "-t2 -u"
|
||||
set -- "ma_test1 $silent -M -T -c -N $blobs" "--testflag=1" "--testflag=2 --test-undo=" "ma_test1 $silent -M -T -c -N $blobs" "--testflag=3" "--testflag=4 --test-undo=" "ma_test1 $silent -M -T -c -N $blobs" "--testflag=2" "--testflag=3 --test-undo=" "ma_test2 $silent -L -K -W -P -M -T -c $blobs" "-t1" "-t2 -u"
|
||||
# -N (create NULL fields) is needed because --test-undo adds it anyway
|
||||
while [ $# != 0 ]
|
||||
do
|
||||
|
|
|
@ -125,9 +125,9 @@ Differences in maria_chk -dvv, recovery not yet perfect !
|
|||
---
|
||||
> 1 2 6 unique number NULL 0 8192
|
||||
========DIFF END=======
|
||||
TEST WITH ma_test1 -s -M -T -c -N --debug=d:t:i:o,/tmp/ma_test1.trace --testflag=3 (commit at end)
|
||||
TEST WITH ma_test1 -s -M -T -c -N --testflag=3 (commit at end)
|
||||
Terminating after updates
|
||||
TEST WITH ma_test1 -s -M -T -c -N --debug=d:t:i:o,/tmp/ma_test1.trace --testflag=4 --test-undo=1 (additional aborted work)
|
||||
TEST WITH ma_test1 -s -M -T -c -N --testflag=4 --test-undo=1 (additional aborted work)
|
||||
Terminating after deletes
|
||||
Dying on request without maria_commit()/maria_close()
|
||||
applying log
|
||||
|
@ -150,9 +150,9 @@ Differences in maria_chk -dvv, recovery not yet perfect !
|
|||
---
|
||||
> 1 2 6 unique number NULL 0 8192
|
||||
========DIFF END=======
|
||||
TEST WITH ma_test1 -s -M -T -c -N --debug=d:t:i:o,/tmp/ma_test1.trace --testflag=2 (commit at end)
|
||||
TEST WITH ma_test1 -s -M -T -c -N --testflag=2 (commit at end)
|
||||
Terminating after inserts
|
||||
TEST WITH ma_test1 -s -M -T -c -N --debug=d:t:i:o,/tmp/ma_test1.trace --testflag=3 --test-undo=1 (additional aborted work)
|
||||
TEST WITH ma_test1 -s -M -T -c -N --testflag=3 --test-undo=1 (additional aborted work)
|
||||
Terminating after updates
|
||||
Dying on request without maria_commit()/maria_close()
|
||||
applying log
|
||||
|
@ -300,9 +300,9 @@ Differences in maria_chk -dvv, recovery not yet perfect !
|
|||
---
|
||||
> 1 2 6 unique number NULL 0 8192
|
||||
========DIFF END=======
|
||||
TEST WITH ma_test1 -s -M -T -c -N --debug=d:t:i:o,/tmp/ma_test1.trace --testflag=3 (commit at end)
|
||||
TEST WITH ma_test1 -s -M -T -c -N --testflag=3 (commit at end)
|
||||
Terminating after updates
|
||||
TEST WITH ma_test1 -s -M -T -c -N --debug=d:t:i:o,/tmp/ma_test1.trace --testflag=4 --test-undo=2 (additional aborted work)
|
||||
TEST WITH ma_test1 -s -M -T -c -N --testflag=4 --test-undo=2 (additional aborted work)
|
||||
Terminating after deletes
|
||||
Dying on request without maria_commit()/maria_close()
|
||||
applying log
|
||||
|
@ -325,9 +325,9 @@ Differences in maria_chk -dvv, recovery not yet perfect !
|
|||
---
|
||||
> 1 2 6 unique number NULL 0 8192
|
||||
========DIFF END=======
|
||||
TEST WITH ma_test1 -s -M -T -c -N --debug=d:t:i:o,/tmp/ma_test1.trace --testflag=2 (commit at end)
|
||||
TEST WITH ma_test1 -s -M -T -c -N --testflag=2 (commit at end)
|
||||
Terminating after inserts
|
||||
TEST WITH ma_test1 -s -M -T -c -N --debug=d:t:i:o,/tmp/ma_test1.trace --testflag=3 --test-undo=2 (additional aborted work)
|
||||
TEST WITH ma_test1 -s -M -T -c -N --testflag=3 --test-undo=2 (additional aborted work)
|
||||
Terminating after updates
|
||||
Dying on request without maria_commit()/maria_close()
|
||||
applying log
|
||||
|
@ -475,9 +475,9 @@ Differences in maria_chk -dvv, recovery not yet perfect !
|
|||
---
|
||||
> 1 2 6 unique number NULL 0 8192
|
||||
========DIFF END=======
|
||||
TEST WITH ma_test1 -s -M -T -c -N --debug=d:t:i:o,/tmp/ma_test1.trace --testflag=3 (commit at end)
|
||||
TEST WITH ma_test1 -s -M -T -c -N --testflag=3 (commit at end)
|
||||
Terminating after updates
|
||||
TEST WITH ma_test1 -s -M -T -c -N --debug=d:t:i:o,/tmp/ma_test1.trace --testflag=4 --test-undo=3 (additional aborted work)
|
||||
TEST WITH ma_test1 -s -M -T -c -N --testflag=4 --test-undo=3 (additional aborted work)
|
||||
Terminating after deletes
|
||||
Dying on request without maria_commit()/maria_close()
|
||||
applying log
|
||||
|
@ -500,9 +500,9 @@ Differences in maria_chk -dvv, recovery not yet perfect !
|
|||
---
|
||||
> 1 2 6 unique number NULL 0 8192
|
||||
========DIFF END=======
|
||||
TEST WITH ma_test1 -s -M -T -c -N --debug=d:t:i:o,/tmp/ma_test1.trace --testflag=2 (commit at end)
|
||||
TEST WITH ma_test1 -s -M -T -c -N --testflag=2 (commit at end)
|
||||
Terminating after inserts
|
||||
TEST WITH ma_test1 -s -M -T -c -N --debug=d:t:i:o,/tmp/ma_test1.trace --testflag=3 --test-undo=3 (additional aborted work)
|
||||
TEST WITH ma_test1 -s -M -T -c -N --testflag=3 --test-undo=3 (additional aborted work)
|
||||
Terminating after updates
|
||||
Dying on request without maria_commit()/maria_close()
|
||||
applying log
|
||||
|
@ -650,9 +650,9 @@ Differences in maria_chk -dvv, recovery not yet perfect !
|
|||
---
|
||||
> 1 2 6 unique varchar BLOB NULL 0 8192
|
||||
========DIFF END=======
|
||||
TEST WITH ma_test1 -s -M -T -c -N --debug=d:t:i:o,/tmp/ma_test1.trace -b --testflag=3 (commit at end)
|
||||
TEST WITH ma_test1 -s -M -T -c -N -b --testflag=3 (commit at end)
|
||||
Terminating after updates
|
||||
TEST WITH ma_test1 -s -M -T -c -N --debug=d:t:i:o,/tmp/ma_test1.trace -b --testflag=4 --test-undo=1 (additional aborted work)
|
||||
TEST WITH ma_test1 -s -M -T -c -N -b --testflag=4 --test-undo=1 (additional aborted work)
|
||||
Terminating after deletes
|
||||
Dying on request without maria_commit()/maria_close()
|
||||
applying log
|
||||
|
@ -675,9 +675,9 @@ Differences in maria_chk -dvv, recovery not yet perfect !
|
|||
---
|
||||
> 1 2 6 unique varchar BLOB NULL 0 8192
|
||||
========DIFF END=======
|
||||
TEST WITH ma_test1 -s -M -T -c -N --debug=d:t:i:o,/tmp/ma_test1.trace -b --testflag=2 (commit at end)
|
||||
TEST WITH ma_test1 -s -M -T -c -N -b --testflag=2 (commit at end)
|
||||
Terminating after inserts
|
||||
TEST WITH ma_test1 -s -M -T -c -N --debug=d:t:i:o,/tmp/ma_test1.trace -b --testflag=3 --test-undo=1 (additional aborted work)
|
||||
TEST WITH ma_test1 -s -M -T -c -N -b --testflag=3 --test-undo=1 (additional aborted work)
|
||||
Terminating after updates
|
||||
Dying on request without maria_commit()/maria_close()
|
||||
applying log
|
||||
|
@ -825,9 +825,9 @@ Differences in maria_chk -dvv, recovery not yet perfect !
|
|||
---
|
||||
> 1 2 6 unique varchar BLOB NULL 0 8192
|
||||
========DIFF END=======
|
||||
TEST WITH ma_test1 -s -M -T -c -N --debug=d:t:i:o,/tmp/ma_test1.trace -b --testflag=3 (commit at end)
|
||||
TEST WITH ma_test1 -s -M -T -c -N -b --testflag=3 (commit at end)
|
||||
Terminating after updates
|
||||
TEST WITH ma_test1 -s -M -T -c -N --debug=d:t:i:o,/tmp/ma_test1.trace -b --testflag=4 --test-undo=2 (additional aborted work)
|
||||
TEST WITH ma_test1 -s -M -T -c -N -b --testflag=4 --test-undo=2 (additional aborted work)
|
||||
Terminating after deletes
|
||||
Dying on request without maria_commit()/maria_close()
|
||||
applying log
|
||||
|
@ -850,9 +850,9 @@ Differences in maria_chk -dvv, recovery not yet perfect !
|
|||
---
|
||||
> 1 2 6 unique varchar BLOB NULL 0 8192
|
||||
========DIFF END=======
|
||||
TEST WITH ma_test1 -s -M -T -c -N --debug=d:t:i:o,/tmp/ma_test1.trace -b --testflag=2 (commit at end)
|
||||
TEST WITH ma_test1 -s -M -T -c -N -b --testflag=2 (commit at end)
|
||||
Terminating after inserts
|
||||
TEST WITH ma_test1 -s -M -T -c -N --debug=d:t:i:o,/tmp/ma_test1.trace -b --testflag=3 --test-undo=2 (additional aborted work)
|
||||
TEST WITH ma_test1 -s -M -T -c -N -b --testflag=3 --test-undo=2 (additional aborted work)
|
||||
Terminating after updates
|
||||
Dying on request without maria_commit()/maria_close()
|
||||
applying log
|
||||
|
@ -1000,9 +1000,9 @@ Differences in maria_chk -dvv, recovery not yet perfect !
|
|||
---
|
||||
> 1 2 6 unique varchar BLOB NULL 0 8192
|
||||
========DIFF END=======
|
||||
TEST WITH ma_test1 -s -M -T -c -N --debug=d:t:i:o,/tmp/ma_test1.trace -b --testflag=3 (commit at end)
|
||||
TEST WITH ma_test1 -s -M -T -c -N -b --testflag=3 (commit at end)
|
||||
Terminating after updates
|
||||
TEST WITH ma_test1 -s -M -T -c -N --debug=d:t:i:o,/tmp/ma_test1.trace -b --testflag=4 --test-undo=3 (additional aborted work)
|
||||
TEST WITH ma_test1 -s -M -T -c -N -b --testflag=4 --test-undo=3 (additional aborted work)
|
||||
Terminating after deletes
|
||||
Dying on request without maria_commit()/maria_close()
|
||||
applying log
|
||||
|
@ -1025,9 +1025,9 @@ Differences in maria_chk -dvv, recovery not yet perfect !
|
|||
---
|
||||
> 1 2 6 unique varchar BLOB NULL 0 8192
|
||||
========DIFF END=======
|
||||
TEST WITH ma_test1 -s -M -T -c -N --debug=d:t:i:o,/tmp/ma_test1.trace -b --testflag=2 (commit at end)
|
||||
TEST WITH ma_test1 -s -M -T -c -N -b --testflag=2 (commit at end)
|
||||
Terminating after inserts
|
||||
TEST WITH ma_test1 -s -M -T -c -N --debug=d:t:i:o,/tmp/ma_test1.trace -b --testflag=3 --test-undo=3 (additional aborted work)
|
||||
TEST WITH ma_test1 -s -M -T -c -N -b --testflag=3 --test-undo=3 (additional aborted work)
|
||||
Terminating after updates
|
||||
Dying on request without maria_commit()/maria_close()
|
||||
applying log
|
||||
|
|
Loading…
Reference in a new issue