[MDEV-12103] Reduce the time of looking for MLOG_CHECKPOINT during crash recovery Created: 2017-02-21 Updated: 2019-01-25 Resolved: 2017-03-03 |
|
| Status: | Closed |
| Project: | MariaDB Server |
| Component/s: | Storage Engine - InnoDB |
| Affects Version/s: | 10.2.2 |
| Fix Version/s: | 10.2.5 |
| Type: | Bug | Priority: | Major |
| Reporter: | Marko Mäkelä | Assignee: | Marko Mäkelä |
| Resolution: | Fixed | Votes: | 0 |
| Labels: | None | ||
| Issue Links: |
|
||||||||||||||||||||||||
| Description |
|
We should fix MySQL Bug #80788 in MariaDB 10.2. When I made the InnoDB crash recovery more robust by implementing WL#7142, I also introduced an extra redo log scan pass that could be avoided. |
| Comments |
| Comment by Marko Mäkelä [ 2017-03-01 ] | |||||||||||||
| Comment by Jan Lindström (Inactive) [ 2017-03-02 ] | |||||||||||||
|
ok to push after considering the comment about removing the error message, there should be mechanism to detect that two or more redo log files do not form a consistent one redo log. | |||||||||||||
| Comment by Marko Mäkelä [ 2017-03-02 ] | |||||||||||||
|
The individual redo log files form one logical redo log file, as if the files had been catenated together. I am afraid that we cannot easily extend the consistency checks. In the long term, I would like to have a single log file only. Starting with 10.2 ( In this innodb.innodb_bug59641 test failure it is clear that some revision to the logic is needed. I can occasionally repeat the failure locally by running a few of the same preceding tests on the same instance:
The following should fix it:
I think that we need something more to ensure that we will catch tablespaces that are entered into recv_sys->addr_hash but missing from recv_spaces. Also a test for this kind of redo log corruption will be needed. | |||||||||||||
| Comment by Marko Mäkelä [ 2017-03-02 ] | |||||||||||||
|
After extending the test innodb.log_corruption, I found out that recv_sys->recovered_lsn should be used instead of recv_sys->scanned_lsn. The inconsistency will be reported in recv_init_crash_recovery_spaces(). | |||||||||||||
| Comment by Marko Mäkelä [ 2017-03-02 ] | |||||||||||||
| Comment by Jan Lindström (Inactive) [ 2017-03-02 ] | |||||||||||||
|
ok to push. |