Below is the list of changes that have just been committed into a local
6.0 repository of . When does a push these changes will
be propagated to the main repository and, within 24 hours after the
push, to the public repository.
For information on how to access the public repository
see http://dev.mysql.com/doc/mysql/en/installing-source-tree.html
ChangeSet@stripped, 2007-10-25 15:11:13-04:00, jas@rowvwade. +2 -0
Fine tune recovery (i.e. make it work).
storage/falcon/SRLDataPage.cpp@stripped, 2007-10-25 15:11:06-04:00, jas@rowvwade. +6 -2
During recovery, remove subsequently re-used data pages
from active locator pages in SRLDataPage to avoid subsequent
trouble.
storage/falcon/SRLSectionLine.cpp@stripped, 2007-10-25 15:11:06-04:00, jas@rowvwade. +9 -4
Change debug logging for more convenient breakpoints.
diff -Nrup a/storage/falcon/SRLDataPage.cpp b/storage/falcon/SRLDataPage.cpp
--- a/storage/falcon/SRLDataPage.cpp 2007-10-25 12:32:18 -04:00
+++ b/storage/falcon/SRLDataPage.cpp 2007-10-25 15:11:06 -04:00
@@ -85,6 +85,7 @@ void SRLDataPage::pass1()
print();
log->bumpPageIncarnation(pageNumber, tableSpaceId, objInUse);
+ log->bumpPageIncarnation(locatorPageNumber, tableSpaceId, objInUse);
log->bumpSectionIncarnation(sectionId, tableSpaceId, objInUse);
}
@@ -94,7 +95,8 @@ void SRLDataPage::pass2()
print();
bool sectionActive = log->bumpSectionIncarnation(sectionId, tableSpaceId, objInUse);
-
+ bool locatorPageActive = log->bumpPageIncarnation(locatorPageNumber, tableSpaceId, objInUse);
+
if (log->bumpPageIncarnation(pageNumber, tableSpaceId, objInUse))
{
if (sectionActive)
@@ -105,12 +107,14 @@ void SRLDataPage::pass2()
else
log->redoFreePage(pageNumber, tableSpaceId);
}
+ else if (sectionActive && locatorPageActive)
+ Section::redoSectionLine(log->getDbb(tableSpaceId), locatorPageNumber, pageNumber);
}
void SRLDataPage::redo()
{
- //bool sectionActive =
log->bumpSectionIncarnation(sectionId, tableSpaceId, objInUse);
+ log->bumpPageIncarnation(locatorPageNumber, tableSpaceId, objInUse);
log->bumpPageIncarnation(pageNumber, tableSpaceId, objInUse);
}
diff -Nrup a/storage/falcon/SRLSectionLine.cpp b/storage/falcon/SRLSectionLine.cpp
--- a/storage/falcon/SRLSectionLine.cpp 2007-09-20 11:42:24 -04:00
+++ b/storage/falcon/SRLSectionLine.cpp 2007-10-25 15:11:06 -04:00
@@ -47,20 +47,22 @@ void SRLSectionLine::read(void)
pageNumber = getInt();
dataPageNumber = getInt();
-
- if (pageNumber == log->tracePage || dataPageNumber == log->tracePage)
- print();
}
void SRLSectionLine::pass1(void)
{
+ if (pageNumber == log->tracePage || dataPageNumber == log->tracePage)
+ print();
+
log->bumpPageIncarnation(pageNumber, tableSpaceId, objInUse);
log->bumpPageIncarnation(dataPageNumber, tableSpaceId, objInUse);
}
void SRLSectionLine::pass2(void)
{
- // bool dataPageActive =
+ if (pageNumber == log->tracePage || dataPageNumber == log->tracePage)
+ print();
+
log->bumpPageIncarnation(dataPageNumber, tableSpaceId, objInUse);
if (log->bumpPageIncarnation(pageNumber, tableSpaceId, objInUse))
@@ -70,6 +72,9 @@ void SRLSectionLine::pass2(void)
void SRLSectionLine::redo(void)
{
+ if (pageNumber == log->tracePage || dataPageNumber == log->tracePage)
+ print();
+
log->bumpPageIncarnation(pageNumber, tableSpaceId, objInUse);
log->bumpPageIncarnation(dataPageNumber, tableSpaceId, objInUse);
}
| Thread |
|---|
| • bk commit into 6.0 tree (jas:1.2679) | U-ROWVWADEjas | 25 Oct |