Bug #28653 Fast GCP + high load + high RedoBuffer causes ndbrequire

- correction, use recomputed _actual_ redobuffer
parent 95ae6e68
......@@ -2668,7 +2668,8 @@ private:
UintR cfirstfreeLogFile;
UintR clogFileFileSize;
#define ZLFO_FILE_SIZE 256 /* MAX 256 OUTSTANDING FILE OPERATIONS */
#define ZLFO_MIN_FILE_SIZE 256
// RedoBuffer/32K minimum ZLFO_MIN_FILE_SIZE
LogFileOperationRecord *logFileOperationRecord;
LogFileOperationRecordPtr lfoPtr;
UintR cfirstfreeLfo;
......@@ -2685,7 +2686,7 @@ private:
UintR cfirstfreePageRef;
UintR cpageRefFileSize;
#define ZSCANREC_FILE_SIZE 100
// Configurable
ArrayPool<ScanRecord> c_scanRecordPool;
ScanRecordPtr scanptr;
UintR cscanNoFreeRec;
......
......@@ -32,11 +32,11 @@ void Dblqh::initData()
chostFileSize = MAX_NDB_NODES;
clcpFileSize = ZNO_CONCURRENT_LCP;
clcpLocrecFileSize = ZLCP_LOCREC_FILE_SIZE;
clfoFileSize = ZLFO_FILE_SIZE;
clfoFileSize = 0;
clogFileFileSize = 0;
clogPartFileSize = ZLOG_PART_FILE_SIZE;
cpageRefFileSize = ZPAGE_REF_FILE_SIZE;
cscanrecFileSize = ZSCANREC_FILE_SIZE;
cscanrecFileSize = 0;
ctabrecFileSize = 0;
ctcConnectrecFileSize = 0;
ctcNodeFailrecFileSize = MAX_NDB_NODES;
......
......@@ -7251,6 +7251,11 @@ void Dblqh::continueScanNextReqLab(Signal* signal)
return;
}
/* maximum number of log file operations */
clfoFileSize = clogPageFileSize;
if (clfoFileSize < ZLFO_MIN_FILE_SIZE)
clfoFileSize = ZLFO_MIN_FILE_SIZE;
// Update timer on tcConnectRecord
tcConnectptr.p->tcTimer = cLqhTimeOutCount;
init_acc_ptr_list(scanptr.p);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment