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

- correction, use recomputed _actual_ redobuffer
parent 95ae6e68
...@@ -2668,7 +2668,8 @@ private: ...@@ -2668,7 +2668,8 @@ private:
UintR cfirstfreeLogFile; UintR cfirstfreeLogFile;
UintR clogFileFileSize; 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; LogFileOperationRecord *logFileOperationRecord;
LogFileOperationRecordPtr lfoPtr; LogFileOperationRecordPtr lfoPtr;
UintR cfirstfreeLfo; UintR cfirstfreeLfo;
...@@ -2685,7 +2686,7 @@ private: ...@@ -2685,7 +2686,7 @@ private:
UintR cfirstfreePageRef; UintR cfirstfreePageRef;
UintR cpageRefFileSize; UintR cpageRefFileSize;
#define ZSCANREC_FILE_SIZE 100 // Configurable
ArrayPool<ScanRecord> c_scanRecordPool; ArrayPool<ScanRecord> c_scanRecordPool;
ScanRecordPtr scanptr; ScanRecordPtr scanptr;
UintR cscanNoFreeRec; UintR cscanNoFreeRec;
......
...@@ -32,11 +32,11 @@ void Dblqh::initData() ...@@ -32,11 +32,11 @@ void Dblqh::initData()
chostFileSize = MAX_NDB_NODES; chostFileSize = MAX_NDB_NODES;
clcpFileSize = ZNO_CONCURRENT_LCP; clcpFileSize = ZNO_CONCURRENT_LCP;
clcpLocrecFileSize = ZLCP_LOCREC_FILE_SIZE; clcpLocrecFileSize = ZLCP_LOCREC_FILE_SIZE;
clfoFileSize = ZLFO_FILE_SIZE; clfoFileSize = 0;
clogFileFileSize = 0; clogFileFileSize = 0;
clogPartFileSize = ZLOG_PART_FILE_SIZE; clogPartFileSize = ZLOG_PART_FILE_SIZE;
cpageRefFileSize = ZPAGE_REF_FILE_SIZE; cpageRefFileSize = ZPAGE_REF_FILE_SIZE;
cscanrecFileSize = ZSCANREC_FILE_SIZE; cscanrecFileSize = 0;
ctabrecFileSize = 0; ctabrecFileSize = 0;
ctcConnectrecFileSize = 0; ctcConnectrecFileSize = 0;
ctcNodeFailrecFileSize = MAX_NDB_NODES; ctcNodeFailrecFileSize = MAX_NDB_NODES;
......
...@@ -7251,6 +7251,11 @@ void Dblqh::continueScanNextReqLab(Signal* signal) ...@@ -7251,6 +7251,11 @@ void Dblqh::continueScanNextReqLab(Signal* signal)
return; return;
} }
/* maximum number of log file operations */
clfoFileSize = clogPageFileSize;
if (clfoFileSize < ZLFO_MIN_FILE_SIZE)
clfoFileSize = ZLFO_MIN_FILE_SIZE;
// Update timer on tcConnectRecord // Update timer on tcConnectRecord
tcConnectptr.p->tcTimer = cLqhTimeOutCount; tcConnectptr.p->tcTimer = cLqhTimeOutCount;
init_acc_ptr_list(scanptr.p); 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