Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
M
MariaDB
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
nexedi
MariaDB
Commits
0067fe33
Commit
0067fe33
authored
Sep 08, 2005
by
unknown
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Bug #12594:
Added debug info to all log page headers
parent
49d10fb9
Changes
3
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
88 additions
and
27 deletions
+88
-27
ndb/src/kernel/blocks/dblqh/Dblqh.hpp
ndb/src/kernel/blocks/dblqh/Dblqh.hpp
+17
-3
ndb/src/kernel/blocks/dblqh/DblqhMain.cpp
ndb/src/kernel/blocks/dblqh/DblqhMain.cpp
+60
-24
ndb/src/kernel/blocks/dblqh/redoLogReader/records.hpp
ndb/src/kernel/blocks/dblqh/redoLogReader/records.hpp
+11
-0
No files found.
ndb/src/kernel/blocks/dblqh/Dblqh.hpp
View file @
0067fe33
...
@@ -86,6 +86,17 @@
...
@@ -86,6 +86,17 @@
#define ZCURR_PAGE_INDEX 8
#define ZCURR_PAGE_INDEX 8
#define ZLAST_LOG_PREP_REF 10
#define ZLAST_LOG_PREP_REF 10
#define ZPOS_DIRTY 11
#define ZPOS_DIRTY 11
/* A number of debug items written in the page header of all log files */
#define ZPOS_LOG_TIMER 12
#define ZPOS_PAGE_I 13
#define ZPOS_PLACE_WRITTEN_FROM 14
#define ZPOS_PAGE_NO 15
#define ZPOS_FILE_NO 16
#define ZPOS_WORD_WRITTEN 17
#define ZPOS_IN_WRITING 18
#define ZPOS_PREV_PAGE_NO 19
#define ZPOS_IN_FREE_LIST 20
/* ------------------------------------------------------------------------- */
/* ------------------------------------------------------------------------- */
/* CONSTANTS FOR THE VARIOUS REPLICA AND NODE TYPES. */
/* CONSTANTS FOR THE VARIOUS REPLICA AND NODE TYPES. */
/* ------------------------------------------------------------------------- */
/* ------------------------------------------------------------------------- */
...
@@ -2294,7 +2305,8 @@ private:
...
@@ -2294,7 +2305,8 @@ private:
void
writeFileDescriptor
(
Signal
*
signal
);
void
writeFileDescriptor
(
Signal
*
signal
);
void
writeFileHeaderOpen
(
Signal
*
signal
,
Uint32
type
);
void
writeFileHeaderOpen
(
Signal
*
signal
,
Uint32
type
);
void
writeInitMbyte
(
Signal
*
signal
);
void
writeInitMbyte
(
Signal
*
signal
);
void
writeSinglePage
(
Signal
*
signal
,
Uint32
pageNo
,
Uint32
wordWritten
);
void
writeSinglePage
(
Signal
*
signal
,
Uint32
pageNo
,
Uint32
wordWritten
,
Uint32
place
);
void
buildLinkedLogPageList
(
Signal
*
signal
);
void
buildLinkedLogPageList
(
Signal
*
signal
);
void
changeMbyte
(
Signal
*
signal
);
void
changeMbyte
(
Signal
*
signal
);
Uint32
checkIfExecLog
(
Signal
*
signal
);
Uint32
checkIfExecLog
(
Signal
*
signal
);
...
@@ -2303,7 +2315,7 @@ private:
...
@@ -2303,7 +2315,7 @@ private:
void
checkScanTcCompleted
(
Signal
*
signal
);
void
checkScanTcCompleted
(
Signal
*
signal
);
void
checkSrCompleted
(
Signal
*
signal
);
void
checkSrCompleted
(
Signal
*
signal
);
void
closeFile
(
Signal
*
signal
,
LogFileRecordPtr
logFilePtr
);
void
closeFile
(
Signal
*
signal
,
LogFileRecordPtr
logFilePtr
);
void
completedLogPage
(
Signal
*
signal
,
Uint32
clpType
);
void
completedLogPage
(
Signal
*
signal
,
Uint32
clpType
,
Uint32
place
);
void
deleteFragrec
(
Uint32
fragId
);
void
deleteFragrec
(
Uint32
fragId
);
void
deleteTransidHash
(
Signal
*
signal
);
void
deleteTransidHash
(
Signal
*
signal
);
void
findLogfile
(
Signal
*
signal
,
void
findLogfile
(
Signal
*
signal
,
...
@@ -2399,7 +2411,9 @@ private:
...
@@ -2399,7 +2411,9 @@ private:
void
writeAbortLog
(
Signal
*
signal
);
void
writeAbortLog
(
Signal
*
signal
);
void
writeCommitLog
(
Signal
*
signal
,
LogPartRecordPtr
regLogPartPtr
);
void
writeCommitLog
(
Signal
*
signal
,
LogPartRecordPtr
regLogPartPtr
);
void
writeCompletedGciLog
(
Signal
*
signal
);
void
writeCompletedGciLog
(
Signal
*
signal
);
void
writeDirty
(
Signal
*
signal
);
void
writeDbgInfoPageHeader
(
LogPageRecordPtr
logPagePtr
,
Uint32
place
,
Uint32
pageNo
,
Uint32
wordWritten
);
void
writeDirty
(
Signal
*
signal
,
Uint32
place
);
void
writeKey
(
Signal
*
signal
);
void
writeKey
(
Signal
*
signal
);
void
writeLogHeader
(
Signal
*
signal
);
void
writeLogHeader
(
Signal
*
signal
);
void
writeLogWord
(
Signal
*
signal
,
Uint32
data
);
void
writeLogWord
(
Signal
*
signal
,
Uint32
data
);
...
...
ndb/src/kernel/blocks/dblqh/DblqhMain.cpp
View file @
0067fe33
...
@@ -12132,6 +12132,7 @@ void Dblqh::initFsopenconf(Signal* signal)
...
@@ -12132,6 +12132,7 @@ void Dblqh::initFsopenconf(Signal* signal)
/* ========================================================================= */
/* ========================================================================= */
void Dblqh::initFsrwconf(Signal* signal)
void Dblqh::initFsrwconf(Signal* signal)
{
{
LogPageRecordPtr logP;
lfoPtr.i = signal->theData[0];
lfoPtr.i = signal->theData[0];
ptrCheckGuard(lfoPtr, clfoFileSize, logFileOperationRecord);
ptrCheckGuard(lfoPtr, clfoFileSize, logFileOperationRecord);
logFilePtr.i = lfoPtr.p->logFileRec;
logFilePtr.i = lfoPtr.p->logFileRec;
...
@@ -12140,6 +12141,16 @@ void Dblqh::initFsrwconf(Signal* signal)
...
@@ -12140,6 +12141,16 @@ void Dblqh::initFsrwconf(Signal* signal)
ptrCheckGuard(logPartPtr, clogPartFileSize, logPartRecord);
ptrCheckGuard(logPartPtr, clogPartFileSize, logPartRecord);
logPagePtr.i = lfoPtr.p->firstLfoPage;
logPagePtr.i = lfoPtr.p->firstLfoPage;
ptrCheckGuard(logPagePtr, clogPageFileSize, logPageRecord);
ptrCheckGuard(logPagePtr, clogPageFileSize, logPageRecord);
logP= logPagePtr;
for (;;)
{
logP.p->logPageWord[ZPOS_IN_WRITING]= 0;
logP.p->logPageWord[ZPOS_IN_FREE_LIST]= 0;
if (logP.p->logPageWord[ZNEXT_PAGE] == RNIL)
return;
logP.i= logP.p->logPageWord[ZNEXT_PAGE];
ptrCheckGuard(logP, clogPageFileSize, logPageRecord);
}
}//Dblqh::initFsrwconf()
}//Dblqh::initFsrwconf()
/* ######################################################################### */
/* ######################################################################### */
...
@@ -12227,7 +12238,7 @@ void Dblqh::timeSup(Signal* signal)
...
@@ -12227,7 +12238,7 @@ void Dblqh::timeSup(Signal* signal)
ndbrequire(wordWritten < ZPAGE_SIZE);
ndbrequire(wordWritten < ZPAGE_SIZE);
if (logFilePtr.p->noLogpagesInBuffer > 0) {
if (logFilePtr.p->noLogpagesInBuffer > 0) {
jam();
jam();
completedLogPage
(
signal
,
ZENFORCE_WRITE
);
completedLogPage(signal, ZENFORCE_WRITE
, 11
);
/*---------------------------------------------------------------------------*/
/*---------------------------------------------------------------------------*/
/*SINCE WE ARE ONLY WRITING PART OF THE LAST PAGE WE HAVE TO UPDATE THE WORD */
/*SINCE WE ARE ONLY WRITING PART OF THE LAST PAGE WE HAVE TO UPDATE THE WORD */
/*WRITTEN TO REFLECT THE REAL LAST WORD WRITTEN. WE ALSO HAVE TO MOVE THE */
/*WRITTEN TO REFLECT THE REAL LAST WORD WRITTEN. WE ALSO HAVE TO MOVE THE */
...
@@ -12249,7 +12260,8 @@ void Dblqh::timeSup(Signal* signal)
...
@@ -12249,7 +12260,8 @@ void Dblqh::timeSup(Signal* signal)
releaseLogpage(signal);
releaseLogpage(signal);
} else {
} else {
jam();
jam();
writeSinglePage
(
signal
,
logFilePtr
.
p
->
currentFilepage
,
wordWritten
);
writeSinglePage(signal, logFilePtr.p->currentFilepage,
wordWritten, 1);
lfoPtr.p->lfoState = LogFileOperationRecord::ACTIVE_WRITE_LOG;
lfoPtr.p->lfoState = LogFileOperationRecord::ACTIVE_WRITE_LOG;
}//if
}//if
}//if
}//if
...
@@ -12385,7 +12397,7 @@ void Dblqh::firstPageWriteLab(Signal* signal)
...
@@ -12385,7 +12397,7 @@ void Dblqh::firstPageWriteLab(Signal* signal)
logPagePtr.i = logFilePtr.p->logPageZero;
logPagePtr.i = logFilePtr.p->logPageZero;
ptrCheckGuard(logPagePtr, clogPageFileSize, logPageRecord);
ptrCheckGuard(logPagePtr, clogPageFileSize, logPageRecord);
logPagePtr.p->logPageWord[ZPAGE_HEADER_SIZE + ZPOS_FILE_NO] = fileNo;
logPagePtr.p->logPageWord[ZPAGE_HEADER_SIZE + ZPOS_FILE_NO] = fileNo;
writeSinglePage
(
signal
,
0
,
ZPAGE_SIZE
-
1
);
writeSinglePage(signal, 0, ZPAGE_SIZE - 1
, 2
);
lfoPtr.p->logFileRec = currLogFile;
lfoPtr.p->logFileRec = currLogFile;
lfoPtr.p->lfoState = LogFileOperationRecord::WRITE_PAGE_ZERO;
lfoPtr.p->lfoState = LogFileOperationRecord::WRITE_PAGE_ZERO;
return;
return;
...
@@ -12474,7 +12486,7 @@ void Dblqh::lastWriteInFileLab(Signal* signal)
...
@@ -12474,7 +12486,7 @@ void Dblqh::lastWriteInFileLab(Signal* signal)
logPagePtr.i = logFilePtr.p->logPageZero;
logPagePtr.i = logFilePtr.p->logPageZero;
ptrCheckGuard(logPagePtr, clogPageFileSize, logPageRecord);
ptrCheckGuard(logPagePtr, clogPageFileSize, logPageRecord);
logPagePtr.p->logPageWord[ZPAGE_HEADER_SIZE + ZPOS_FILE_NO] = fileNo;
logPagePtr.p->logPageWord[ZPAGE_HEADER_SIZE + ZPOS_FILE_NO] = fileNo;
writeSinglePage
(
signal
,
0
,
ZPAGE_SIZE
-
1
);
writeSinglePage(signal, 0, ZPAGE_SIZE - 1
, 3
);
lfoPtr.p->logFileRec = currLogFile;
lfoPtr.p->logFileRec = currLogFile;
lfoPtr.p->lfoState = LogFileOperationRecord::WRITE_PAGE_ZERO;
lfoPtr.p->lfoState = LogFileOperationRecord::WRITE_PAGE_ZERO;
return;
return;
...
@@ -12509,7 +12521,8 @@ void Dblqh::openFileInitLab(Signal* signal)
...
@@ -12509,7 +12521,8 @@ void Dblqh::openFileInitLab(Signal* signal)
{
{
logFilePtr.p->logFileStatus = LogFileRecord::OPEN_INIT;
logFilePtr.p->logFileStatus = LogFileRecord::OPEN_INIT;
seizeLogpage(signal);
seizeLogpage(signal);
writeSinglePage
(
signal
,
(
ZNO_MBYTES_IN_FILE
*
ZPAGES_IN_MBYTE
)
-
1
,
ZPAGE_SIZE
-
1
);
writeSinglePage(signal, (ZNO_MBYTES_IN_FILE * ZPAGES_IN_MBYTE) - 1,
ZPAGE_SIZE - 1, 4);
lfoPtr.p->lfoState = LogFileOperationRecord::INIT_WRITE_AT_END;
lfoPtr.p->lfoState = LogFileOperationRecord::INIT_WRITE_AT_END;
return;
return;
}//Dblqh::openFileInitLab()
}//Dblqh::openFileInitLab()
...
@@ -12550,7 +12563,7 @@ void Dblqh::initFirstPageLab(Signal* signal)
...
@@ -12550,7 +12563,7 @@ void Dblqh::initFirstPageLab(Signal* signal)
logPagePtr.p->logPageWord[ZPOS_LOG_LAP] = 1;
logPagePtr.p->logPageWord[ZPOS_LOG_LAP] = 1;
logPagePtr.p->logPageWord[ZPAGE_HEADER_SIZE] = ZCOMPLETED_GCI_TYPE;
logPagePtr.p->logPageWord[ZPAGE_HEADER_SIZE] = ZCOMPLETED_GCI_TYPE;
logPagePtr.p->logPageWord[ZPAGE_HEADER_SIZE + 1] = 1;
logPagePtr.p->logPageWord[ZPAGE_HEADER_SIZE + 1] = 1;
writeSinglePage
(
signal
,
1
,
ZPAGE_SIZE
-
1
);
writeSinglePage(signal, 1, ZPAGE_SIZE - 1
, 5
);
lfoPtr.p->lfoState = LogFileOperationRecord::WRITE_GCI_ZERO;
lfoPtr.p->lfoState = LogFileOperationRecord::WRITE_GCI_ZERO;
return;
return;
}//if
}//if
...
@@ -12852,17 +12865,13 @@ void Dblqh::releaseLogpage(Signal* signal)
...
@@ -12852,17 +12865,13 @@ void Dblqh::releaseLogpage(Signal* signal)
{
{
#ifdef VM_TRACE
#ifdef VM_TRACE
// Check that log page isn't already in free list
// Check that log page isn't already in free list
LogPageRecordPtr
TlogPagePtr
;
ndbrequire(logPagePtr.p->logPageWord[ZPOS_IN_FREE_LIST] == 0);
TlogPagePtr
.
i
=
cfirstfreeLogPage
;
while
(
TlogPagePtr
.
i
!=
RNIL
){
ptrCheckGuard
(
TlogPagePtr
,
clogPageFileSize
,
logPageRecord
);
ndbrequire
(
TlogPagePtr
.
i
!=
logPagePtr
.
i
);
TlogPagePtr
.
i
=
TlogPagePtr
.
p
->
logPageWord
[
ZNEXT_PAGE
];
}
#endif
#endif
cnoOfLogPages++;
cnoOfLogPages++;
logPagePtr.p->logPageWord[ZNEXT_PAGE] = cfirstfreeLogPage;
logPagePtr.p->logPageWord[ZNEXT_PAGE] = cfirstfreeLogPage;
logPagePtr.p->logPageWord[ZPOS_IN_WRITING]= 0;
logPagePtr.p->logPageWord[ZPOS_IN_FREE_LIST]= 1;
cfirstfreeLogPage = logPagePtr.i;
cfirstfreeLogPage = logPagePtr.i;
}//Dblqh::releaseLogpage()
}//Dblqh::releaseLogpage()
...
@@ -12908,6 +12917,7 @@ void Dblqh::seizeLogpage(Signal* signal)
...
@@ -12908,6 +12917,7 @@ void Dblqh::seizeLogpage(Signal* signal)
/* ------------------------------------------------------------------------- */
/* ------------------------------------------------------------------------- */
cfirstfreeLogPage = logPagePtr.p->logPageWord[ZNEXT_PAGE];
cfirstfreeLogPage = logPagePtr.p->logPageWord[ZNEXT_PAGE];
logPagePtr.p->logPageWord[ZNEXT_PAGE] = RNIL;
logPagePtr.p->logPageWord[ZNEXT_PAGE] = RNIL;
logPagePtr.p->logPageWord[ZPOS_IN_FREE_LIST] = 0;
}//Dblqh::seizeLogpage()
}//Dblqh::seizeLogpage()
/* ------------------------------------------------------------------------- */
/* ------------------------------------------------------------------------- */
...
@@ -13015,7 +13025,7 @@ void Dblqh::writeFileHeaderOpen(Signal* signal, Uint32 wmoType)
...
@@ -13015,7 +13025,7 @@ void Dblqh::writeFileHeaderOpen(Signal* signal, Uint32 wmoType)
/* LOG FILE. THIS HAS SPECIAL SIGNIFANCE TO FIND */
/* LOG FILE. THIS HAS SPECIAL SIGNIFANCE TO FIND */
/* THE END OF THE LOG AT SYSTEM RESTART. */
/* THE END OF THE LOG AT SYSTEM RESTART. */
/* ------------------------------------------------------- */
/* ------------------------------------------------------- */
writeSinglePage
(
signal
,
0
,
ZPAGE_SIZE
-
1
);
writeSinglePage(signal, 0, ZPAGE_SIZE - 1
, 6
);
if (wmoType == ZINIT) {
if (wmoType == ZINIT) {
jam();
jam();
lfoPtr.p->lfoState = LogFileOperationRecord::INIT_FIRST_PAGE;
lfoPtr.p->lfoState = LogFileOperationRecord::INIT_FIRST_PAGE;
...
@@ -13049,7 +13059,8 @@ void Dblqh::writeFileHeaderOpen(Signal* signal, Uint32 wmoType)
...
@@ -13049,7 +13059,8 @@ void Dblqh::writeFileHeaderOpen(Signal* signal, Uint32 wmoType)
void Dblqh::writeInitMbyte(Signal* signal)
void Dblqh::writeInitMbyte(Signal* signal)
{
{
initLogpage(signal);
initLogpage(signal);
writeSinglePage
(
signal
,
logFilePtr
.
p
->
currentMbyte
*
ZPAGES_IN_MBYTE
,
ZPAGE_SIZE
-
1
);
writeSinglePage(signal, logFilePtr.p->currentMbyte * ZPAGES_IN_MBYTE,
ZPAGE_SIZE - 1, 7);
lfoPtr.p->lfoState = LogFileOperationRecord::WRITE_INIT_MBYTE;
lfoPtr.p->lfoState = LogFileOperationRecord::WRITE_INIT_MBYTE;
}//Dblqh::writeInitMbyte()
}//Dblqh::writeInitMbyte()
...
@@ -13059,13 +13070,15 @@ void Dblqh::writeInitMbyte(Signal* signal)
...
@@ -13059,13 +13070,15 @@ void Dblqh::writeInitMbyte(Signal* signal)
/* INPUT: TWSP_PAGE_NO THE PAGE NUMBER WRITTEN */
/* INPUT: TWSP_PAGE_NO THE PAGE NUMBER WRITTEN */
/* SUBROUTINE SHORT NAME: WSP */
/* SUBROUTINE SHORT NAME: WSP */
/* ------------------------------------------------------------------------- */
/* ------------------------------------------------------------------------- */
void
Dblqh
::
writeSinglePage
(
Signal
*
signal
,
Uint32
pageNo
,
Uint32
wordWritten
)
void Dblqh::writeSinglePage(Signal* signal, Uint32 pageNo,
Uint32 wordWritten, Uint32 place)
{
{
seizeLfo(signal);
seizeLfo(signal);
initLfo(signal);
initLfo(signal);
lfoPtr.p->firstLfoPage = logPagePtr.i;
lfoPtr.p->firstLfoPage = logPagePtr.i;
logPagePtr.p->logPageWord[ZNEXT_PAGE] = RNIL;
logPagePtr.p->logPageWord[ZNEXT_PAGE] = RNIL;
writeDbgInfoPageHeader(logPagePtr, place, pageNo, wordWritten);
// Calculate checksum for page
// Calculate checksum for page
logPagePtr.p->logPageWord[ZPOS_CHECKSUM] = calcPageCheckSum(logPagePtr);
logPagePtr.p->logPageWord[ZPOS_CHECKSUM] = calcPageCheckSum(logPagePtr);
...
@@ -14534,7 +14547,7 @@ void Dblqh::execSr(Signal* signal)
...
@@ -14534,7 +14547,7 @@ void Dblqh::execSr(Signal* signal)
* IN THIS WE HAVE COMPLETED EXECUTION OF THE CURRENT LOG PAGE
* IN THIS WE HAVE COMPLETED EXECUTION OF THE CURRENT LOG PAGE
* AND CAN WRITE IT TO DISK SINCE IT IS DIRTY.
* AND CAN WRITE IT TO DISK SINCE IT IS DIRTY.
* ----------------------------------------------------------------- */
* ----------------------------------------------------------------- */
writeDirty
(
signal
);
writeDirty(signal
, 12
);
return;
return;
break;
break;
case LogPartRecord::LES_EXEC_LOG:
case LogPartRecord::LES_EXEC_LOG:
...
@@ -14545,7 +14558,7 @@ void Dblqh::execSr(Signal* signal)
...
@@ -14545,7 +14558,7 @@ void Dblqh::execSr(Signal* signal)
* ------------------------------------------------------------------- */
* ------------------------------------------------------------------- */
if (logFilePtr.p->currentLogpage != logPartPtr.p->prevLogpage) {
if (logFilePtr.p->currentLogpage != logPartPtr.p->prevLogpage) {
jam();
jam();
writeDirty
(
signal
);
writeDirty(signal
, 13
);
return;
return;
}//if
}//if
break;
break;
...
@@ -14989,7 +15002,8 @@ void Dblqh::invalidateLogAfterLastGCI(Signal* signal) {
...
@@ -14989,7 +15002,8 @@ void Dblqh::invalidateLogAfterLastGCI(Signal* signal) {
// This page must be invalidated.
// This page must be invalidated.
logPagePtr.p->logPageWord[ZPOS_LOG_LAP] = 0;
logPagePtr.p->logPageWord[ZPOS_LOG_LAP] = 0;
// Contact NDBFS. Real time break.
// Contact NDBFS. Real time break.
writeSinglePage
(
signal
,
logPartPtr
.
p
->
invalidatePageNo
,
ZPAGE_SIZE
-
1
);
writeSinglePage(signal, logPartPtr.p->invalidatePageNo,
ZPAGE_SIZE - 1, 0);
lfoPtr.p->lfoState = LogFileOperationRecord::WRITE_SR_INVALIDATE_PAGES;
lfoPtr.p->lfoState = LogFileOperationRecord::WRITE_SR_INVALIDATE_PAGES;
} else {
} else {
// We are done with invalidating. Finish start phase 3.4.
// We are done with invalidating. Finish start phase 3.4.
...
@@ -15937,7 +15951,7 @@ void Dblqh::closeFile(Signal* signal, LogFileRecordPtr clfLogFilePtr)
...
@@ -15937,7 +15951,7 @@ void Dblqh::closeFile(Signal* signal, LogFileRecordPtr clfLogFilePtr)
// logPartPtr
// logPartPtr
// Defines lfoPtr
// Defines lfoPtr
/* ---------------------------------------------------------------- */
/* ---------------------------------------------------------------- */
void
Dblqh
::
completedLogPage
(
Signal
*
signal
,
Uint32
clpType
)
void Dblqh::completedLogPage(Signal* signal, Uint32 clpType
, Uint32 place
)
{
{
LogPageRecordPtr clpLogPagePtr;
LogPageRecordPtr clpLogPagePtr;
LogPageRecordPtr wlpLogPagePtr;
LogPageRecordPtr wlpLogPagePtr;
...
@@ -15980,6 +15994,9 @@ void Dblqh::completedLogPage(Signal* signal, Uint32 clpType)
...
@@ -15980,6 +15994,9 @@ void Dblqh::completedLogPage(Signal* signal, Uint32 clpType)
twlpNoPages++;
twlpNoPages++;
ptrCheckGuard(wlpLogPagePtr, clogPageFileSize, logPageRecord);
ptrCheckGuard(wlpLogPagePtr, clogPageFileSize, logPageRecord);
writeDbgInfoPageHeader(wlpLogPagePtr, place,
logFilePtr.p->filePosition + twlpNoPages - 1,
ZPAGE_SIZE);
// Calculate checksum for page
// Calculate checksum for page
wlpLogPagePtr.p->logPageWord[ZPOS_CHECKSUM] = calcPageCheckSum(wlpLogPagePtr);
wlpLogPagePtr.p->logPageWord[ZPOS_CHECKSUM] = calcPageCheckSum(wlpLogPagePtr);
wlpLogPagePtr.i = wlpLogPagePtr.p->logPageWord[ZNEXT_PAGE];
wlpLogPagePtr.i = wlpLogPagePtr.p->logPageWord[ZNEXT_PAGE];
...
@@ -16382,6 +16399,8 @@ void Dblqh::initialiseLogPage(Signal* signal)
...
@@ -16382,6 +16399,8 @@ void Dblqh::initialiseLogPage(Signal* signal)
refresh_watch_dog();
refresh_watch_dog();
ptrAss(logPagePtr, logPageRecord);
ptrAss(logPagePtr, logPageRecord);
logPagePtr.p->logPageWord[ZNEXT_PAGE] = logPagePtr.i + 1;
logPagePtr.p->logPageWord[ZNEXT_PAGE] = logPagePtr.i + 1;
logPagePtr.p->logPageWord[ZPOS_IN_FREE_LIST]= 1;
logPagePtr.p->logPageWord[ZPOS_IN_WRITING]= 0;
}//for
}//for
logPagePtr.i = clogPageFileSize - 1;
logPagePtr.i = clogPageFileSize - 1;
ptrAss(logPagePtr, logPageRecord);
ptrAss(logPagePtr, logPageRecord);
...
@@ -18038,10 +18057,14 @@ void Dblqh::writeCompletedGciLog(Signal* signal)
...
@@ -18038,10 +18057,14 @@ void Dblqh::writeCompletedGciLog(Signal* signal)
*
*
* SUBROUTINE SHORT NAME: WD
* SUBROUTINE SHORT NAME: WD
* ------------------------------------------------------------------------- */
* ------------------------------------------------------------------------- */
void
Dblqh
::
writeDirty
(
Signal
*
signal
)
void Dblqh::writeDirty(Signal* signal
, Uint32 place
)
{
{
logPagePtr.p->logPageWord[ZPOS_DIRTY] = ZNOT_DIRTY;
logPagePtr.p->logPageWord[ZPOS_DIRTY] = ZNOT_DIRTY;
ndbassert(logPartPtr.p->prevFilepage ==
logPagePtr.p->logPageWord[ZPOS_PAGE_NO]);
writeDbgInfoPageHeader(logPagePtr, place, logPartPtr.p->prevFilepage,
ZPAGE_SIZE);
// Calculate checksum for page
// Calculate checksum for page
logPagePtr.p->logPageWord[ZPOS_CHECKSUM] = calcPageCheckSum(logPagePtr);
logPagePtr.p->logPageWord[ZPOS_CHECKSUM] = calcPageCheckSum(logPagePtr);
...
@@ -18075,7 +18098,7 @@ void Dblqh::writeLogWord(Signal* signal, Uint32 data)
...
@@ -18075,7 +18098,7 @@ void Dblqh::writeLogWord(Signal* signal, Uint32 data)
logPagePtr.p->logPageWord[ZCURR_PAGE_INDEX] = logPos + 1;
logPagePtr.p->logPageWord[ZCURR_PAGE_INDEX] = logPos + 1;
if ((logPos + 1) == ZPAGE_SIZE) {
if ((logPos + 1) == ZPAGE_SIZE) {
jam();
jam();
completedLogPage
(
signal
,
ZNORMAL
);
completedLogPage(signal, ZNORMAL
, 8
);
seizeLogpage(signal);
seizeLogpage(signal);
initLogpage(signal);
initLogpage(signal);
logFilePtr.p->currentLogpage = logPagePtr.i;
logFilePtr.p->currentLogpage = logPagePtr.i;
...
@@ -18133,7 +18156,7 @@ void Dblqh::writeNextLog(Signal* signal)
...
@@ -18133,7 +18156,7 @@ void Dblqh::writeNextLog(Signal* signal)
/* -------------------------------------------------- */
/* -------------------------------------------------- */
/* WE HAVE TO CHANGE LOG FILE */
/* WE HAVE TO CHANGE LOG FILE */
/* -------------------------------------------------- */
/* -------------------------------------------------- */
completedLogPage
(
signal
,
ZLAST_WRITE_IN_FILE
);
completedLogPage(signal, ZLAST_WRITE_IN_FILE
, 9
);
if (wnlNextLogFilePtr.p->fileNo == 0) {
if (wnlNextLogFilePtr.p->fileNo == 0) {
jam();
jam();
/* -------------------------------------------------- */
/* -------------------------------------------------- */
...
@@ -18152,7 +18175,7 @@ void Dblqh::writeNextLog(Signal* signal)
...
@@ -18152,7 +18175,7 @@ void Dblqh::writeNextLog(Signal* signal)
/* INCREMENT THE CURRENT MBYTE */
/* INCREMENT THE CURRENT MBYTE */
/* SET PAGE INDEX TO PAGE HEADER SIZE */
/* SET PAGE INDEX TO PAGE HEADER SIZE */
/* -------------------------------------------------- */
/* -------------------------------------------------- */
completedLogPage
(
signal
,
ZENFORCE_WRITE
);
completedLogPage(signal, ZENFORCE_WRITE
, 10
);
twnlNewMbyte = logFilePtr.p->currentMbyte + 1;
twnlNewMbyte = logFilePtr.p->currentMbyte + 1;
}//if
}//if
/* -------------------------------------------------- */
/* -------------------------------------------------- */
...
@@ -18520,3 +18543,16 @@ Uint32 Dblqh::calcPageCheckSum(LogPageRecordPtr logP){
...
@@ -18520,3 +18543,16 @@ Uint32 Dblqh::calcPageCheckSum(LogPageRecordPtr logP){
return checkSum;
return checkSum;
}
}
void Dblqh::writeDbgInfoPageHeader(LogPageRecordPtr logP, Uint32 place,
Uint32 pageNo, Uint32 wordWritten)
{
logP.p->logPageWord[ZPOS_LOG_TIMER]= logPartPtr.p->logTimer;
logP.p->logPageWord[ZPOS_PREV_PAGE_NO]= logP.p->logPageWord[ZPOS_PAGE_NO];
logP.p->logPageWord[ZPOS_PAGE_I]= logP.i;
logP.p->logPageWord[ZPOS_PLACE_WRITTEN_FROM]= place;
logP.p->logPageWord[ZPOS_PAGE_NO]= pageNo;
logP.p->logPageWord[ZPOS_FILE_NO]= logFilePtr.p->fileNo;
logP.p->logPageWord[ZPOS_WORD_WRITTEN]= wordWritten;
logP.p->logPageWord[ZPOS_IN_WRITING]= 1;
}
ndb/src/kernel/blocks/dblqh/redoLogReader/records.hpp
View file @
0067fe33
...
@@ -147,6 +147,17 @@ protected:
...
@@ -147,6 +147,17 @@ protected:
Uint32
m_old_prepare_file_number
;
Uint32
m_old_prepare_file_number
;
Uint32
m_old_prepare_page_reference
;
Uint32
m_old_prepare_page_reference
;
Uint32
m_dirty_flag
;
Uint32
m_dirty_flag
;
/* Debug info Start */
Uint32
m_log_timer
;
Uint32
m_page_i_value
;
Uint32
m_place_written_from
;
Uint32
m_page_no
;
Uint32
m_file_no
;
Uint32
m_word_written
;
Uint32
m_in_writing_flag
;
Uint32
m_prev_page_no
;
Uint32
m_in_free_list
;
/* Debug info End */
};
};
//----------------------------------------------------------------
//----------------------------------------------------------------
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment