#At file:///C:/Work/bzr/Merge/mysql-6.0-falcon/
2800 Kevin Lewis 2008-08-25
Bug#39025 Wrte pages to the serial log in this order;
1) The new right page first,
2) then the previously existing left page (which is now half full),
3) then the parent page
modified:
storage/falcon/Index2RootPage.cpp
storage/falcon/IndexRootPage.cpp
per-file messages:
storage/falcon/Index2RootPage.cpp
Bug#39025 Wrte pages to the serial log in this order;
1) The new right page first,
2) then the previously existing left page (which is now half full),
3) then the parent page
storage/falcon/IndexRootPage.cpp
Bug#39025 Wrte pages to the serial log in this order;
1) The new right page first,
2) then the previously existing left page (which is now half full),
3) then the parent page.
=== modified file 'storage/falcon/Index2RootPage.cpp'
--- a/storage/falcon/Index2RootPage.cpp 2008-03-27 06:09:29 +0000
+++ b/storage/falcon/Index2RootPage.cpp 2008-08-25 22:09:13 +0000
@@ -518,9 +518,9 @@ bool Index2RootPage::splitIndexPage(Dbb
leftPage->parentPage = bdb->pageNumber;
splitPage->parentPage = bdb->pageNumber;
- Index2Page::logIndexPage(bdb, transId);
Index2Page::logIndexPage(splitBdb, transId);
Index2Page::logIndexPage(leftBdb, transId);
+ Index2Page::logIndexPage(bdb, transId);
splitBdb->release(REL_HISTORY);
leftBdb->release(REL_HISTORY);
=== modified file 'storage/falcon/IndexRootPage.cpp'
--- a/storage/falcon/IndexRootPage.cpp 2008-05-14 18:39:57 +0000
+++ b/storage/falcon/IndexRootPage.cpp 2008-08-25 22:09:13 +0000
@@ -552,12 +552,16 @@ bool IndexRootPage::splitIndexPage(Dbb *
page->addNode(dbb, &dummy, END_LEVEL);
page->addNode(dbb, &leftKey, leftBdb->pageNumber);
page->addNode(dbb, &splitKey, splitBdb->pageNumber);
-
+
leftPage->parentPage = bdb->pageNumber;
splitPage->parentPage = bdb->pageNumber;
- IndexPage::logIndexPage(bdb, transId);
+
+ // the order of adding these to the serial log is important.
+ // Recovery must write them in this order incase recovery itself crashes.
+
IndexPage::logIndexPage(splitBdb, transId);
IndexPage::logIndexPage(leftBdb, transId);
+ IndexPage::logIndexPage(bdb, transId);
/***
IndexPage::printPage(bdb, false);
| Thread |
|---|
| • bzr commit into mysql-6.0-falcon branch (klewis:2800) Bug#39025 | Kevin Lewis | 26 Aug |