List:Commits« Previous MessageNext Message »
From:Kevin Lewis Date:August 26 2008 12:09am
Subject:bzr commit into mysql-6.0-falcon branch (klewis:2800) Bug#39025
View as plain text  
#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#39025Kevin Lewis26 Aug