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
2736 Jonas Oreland 2008-11-14
ndb - make ndb_version.h(.in) compile a c
by createing some extra scopes for local variables
modified:
storage/ndb/include/ndb_version.h.in
=== 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;
| Thread |
|---|
| • bzr push into mysql-5.1 branch (jonas:2736 to 2737) Bug#40734 | Jonas Oreland | 14 Nov |