From: Date: November 14 2008 12:18pm Subject: bzr commit into mysql-5.1 branch (jonas:2737) Bug#40734 List-Archive: http://lists.mysql.com/commits/58761 X-Bug: 40734 Message-Id: <20081114111803.60A604E1B0@perch.localdomain> MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit #At file:///home/jonas/src/telco-6.2/ 2737 Jonas Oreland 2008-11-14 ndb - bug#40734 - only sync redo-files at end during initial redo creation modified: storage/ndb/src/kernel/blocks/dblqh/Dblqh.hpp storage/ndb/src/kernel/blocks/dblqh/DblqhMain.cpp === modified file 'storage/ndb/src/kernel/blocks/dblqh/Dblqh.hpp' --- a/storage/ndb/src/kernel/blocks/dblqh/Dblqh.hpp 2008-05-30 06:33:46 +0000 +++ b/storage/ndb/src/kernel/blocks/dblqh/Dblqh.hpp 2008-11-14 11:17:53 +0000 @@ -2264,7 +2264,8 @@ private: void writeFileHeaderOpen(Signal* signal, Uint32 type); void writeInitMbyte(Signal* signal); void writeSinglePage(Signal* signal, Uint32 pageNo, - Uint32 wordWritten, Uint32 place); + Uint32 wordWritten, Uint32 place, + bool sync = true); void buildLinkedLogPageList(Signal* signal); void changeMbyte(Signal* signal); Uint32 checkIfExecLog(Signal* signal); === modified file 'storage/ndb/src/kernel/blocks/dblqh/DblqhMain.cpp' --- a/storage/ndb/src/kernel/blocks/dblqh/DblqhMain.cpp 2008-11-08 20:45:48 +0000 +++ b/storage/ndb/src/kernel/blocks/dblqh/DblqhMain.cpp 2008-11-14 11:17:53 +0000 @@ -13399,7 +13399,7 @@ void Dblqh::openFileInitLab(Signal* sign logFilePtr.p->logFileStatus = LogFileRecord::OPEN_INIT; seizeLogpage(signal); writeSinglePage(signal, (clogFileSize * ZPAGES_IN_MBYTE) - 1, - ZPAGE_SIZE - 1, __LINE__); + ZPAGE_SIZE - 1, __LINE__, false); lfoPtr.p->lfoState = LogFileOperationRecord::INIT_WRITE_AT_END; return; }//Dblqh::openFileInitLab() @@ -13440,7 +13440,7 @@ void Dblqh::initFirstPageLab(Signal* sig logPagePtr.p->logPageWord[ZPOS_LOG_LAP] = 1; logPagePtr.p->logPageWord[ZPAGE_HEADER_SIZE] = ZCOMPLETED_GCI_TYPE; logPagePtr.p->logPageWord[ZPAGE_HEADER_SIZE + 1] = 1; - writeSinglePage(signal, 1, ZPAGE_SIZE - 1, __LINE__); + writeSinglePage(signal, 1, ZPAGE_SIZE - 1, __LINE__, false); lfoPtr.p->lfoState = LogFileOperationRecord::WRITE_GCI_ZERO; return; }//if @@ -13911,12 +13911,13 @@ void Dblqh::writeFileHeaderOpen(Signal* /* LOG FILE. THIS HAS SPECIAL SIGNIFANCE TO FIND */ /* THE END OF THE LOG AT SYSTEM RESTART. */ /* ------------------------------------------------------- */ - writeSinglePage(signal, 0, ZPAGE_SIZE - 1, __LINE__); if (wmoType == ZINIT) { jam(); + writeSinglePage(signal, 0, ZPAGE_SIZE - 1, __LINE__, false); lfoPtr.p->lfoState = LogFileOperationRecord::INIT_FIRST_PAGE; } else { jam(); + writeSinglePage(signal, 0, ZPAGE_SIZE - 1, __LINE__, true); lfoPtr.p->lfoState = LogFileOperationRecord::FIRST_PAGE_WRITE_IN_LOGFILE; }//if logFilePtr.p->filePosition = 1; @@ -13946,7 +13947,7 @@ void Dblqh::writeInitMbyte(Signal* signa { initLogpage(signal); writeSinglePage(signal, logFilePtr.p->currentMbyte * ZPAGES_IN_MBYTE, - ZPAGE_SIZE - 1, __LINE__); + ZPAGE_SIZE - 1, __LINE__, false); lfoPtr.p->lfoState = LogFileOperationRecord::WRITE_INIT_MBYTE; }//Dblqh::writeInitMbyte() @@ -13957,7 +13958,8 @@ void Dblqh::writeInitMbyte(Signal* signa /* SUBROUTINE SHORT NAME: WSP */ /* ------------------------------------------------------------------------- */ void Dblqh::writeSinglePage(Signal* signal, Uint32 pageNo, - Uint32 wordWritten, Uint32 place) + Uint32 wordWritten, Uint32 place, + bool sync) { seizeLfo(signal); initLfo(signal); @@ -13979,7 +13981,7 @@ void Dblqh::writeSinglePage(Signal* sign signal->theData[0] = logFilePtr.p->fileRef; signal->theData[1] = cownref; signal->theData[2] = lfoPtr.i; - signal->theData[3] = ZLIST_OF_PAIRS_SYNCH; + signal->theData[3] = sync ? ZLIST_OF_PAIRS_SYNCH : ZLIST_OF_PAIRS; signal->theData[4] = ZVAR_NO_LOG_PAGE_WORD; signal->theData[5] = 1; /* ONE PAGE WRITTEN */ signal->theData[6] = logPagePtr.i;