Loading ndb/include/kernel/ndb_limits.h +2 −0 Original line number Diff line number Diff line Loading @@ -62,6 +62,8 @@ #define MAX_KEY_SIZE_IN_WORDS 1023 #define MAX_FRM_DATA_SIZE 6000 #define MAX_WORDS_META_FILE 24576 #define MIN_ATTRBUF ((MAX_ATTRIBUTES_IN_TABLE/24) + 1) /* * Max Number of Records to fetch per SCAN_NEXTREQ in a scan in LQH. The Loading ndb/src/kernel/blocks/ERROR_codes.txt +3 −1 Original line number Diff line number Diff line Loading @@ -5,7 +5,7 @@ Next DBACC 3002 Next DBTUP 4014 Next DBLQH 5043 Next DBDICT 6006 Next DBDIH 7174 Next DBDIH 7178 Next DBTC 8038 Next CMVMI 9000 Next BACKUP 10022 Loading Loading @@ -66,6 +66,8 @@ Delay GCP_SAVEREQ by 10 secs 7030: Delay in GCP_PREPARE until node has completed a node failure 7031: Delay in GCP_PREPARE and die 3s later 7177: Delay copying of sysfileData in execCOPY_GCIREQ ERROR CODES FOR TESTING NODE FAILURE, LOCAL CHECKPOINT HANDLING: ----------------------------------------------------------------- Loading ndb/src/kernel/blocks/backup/Backup.cpp +2 −3 Original line number Diff line number Diff line Loading @@ -2323,9 +2323,8 @@ Backup::execDEFINE_BACKUP_REQ(Signal* signal) 0 // 3M }; const Uint32 maxInsert[] = { 2048, // Temporarily to solve TR515 //25, // 100 bytes 4096, // 4k MAX_WORDS_META_FILE, 4096, // 16k 16*3000, // Max 16 tuples }; Uint32 minWrite[] = { Loading ndb/src/kernel/blocks/backup/Backup.hpp +4 −2 Original line number Diff line number Diff line Loading @@ -513,7 +513,9 @@ public: Config c_defaults; Uint32 m_diskless; STATIC_CONST(NO_OF_PAGES_META_FILE = 2); STATIC_CONST(NO_OF_PAGES_META_FILE = (MAX_WORDS_META_FILE + BACKUP_WORDS_PER_PAGE - 1) / BACKUP_WORDS_PER_PAGE); /** * Pools Loading ndb/src/kernel/blocks/dbdih/DbdihMain.cpp +36 −7 Original line number Diff line number Diff line Loading @@ -626,21 +626,47 @@ void Dbdih::execCOPY_GCIREQ(Signal* signal) ndbrequire(c_copyGCISlave.m_copyReason == CopyGCIReq::IDLE); ndbrequire(c_copyGCISlave.m_expectedNextWord == tstart); ndbrequire(reason != CopyGCIReq::IDLE); bool isdone = (tstart + CopyGCIReq::DATA_SIZE) >= Sysfile::SYSFILE_SIZE32; if (ERROR_INSERTED(7177)) { jam(); if (signal->getLength() == 3) { jam(); goto done; } } arrGuard(tstart + CopyGCIReq::DATA_SIZE, sizeof(sysfileData)/4); for(Uint32 i = 0; i<CopyGCIReq::DATA_SIZE; i++) cdata[tstart+i] = copyGCI->data[i]; if ((tstart + CopyGCIReq::DATA_SIZE) >= Sysfile::SYSFILE_SIZE32) { if (ERROR_INSERTED(7177) && isMaster() && isdone) { sendSignalWithDelay(reference(), GSN_COPY_GCIREQ, signal, 1000, 3); return; } done: if (isdone) { jam(); c_copyGCISlave.m_expectedNextWord = 0; } else { } else { jam(); c_copyGCISlave.m_expectedNextWord += CopyGCIReq::DATA_SIZE; return; }//if } if (cmasterdihref != reference()) { jam(); memcpy(sysfileData, cdata, sizeof(sysfileData)); } c_copyGCISlave.m_copyReason = reason; c_copyGCISlave.m_senderRef = signal->senderBlockRef(); Loading Loading @@ -8352,14 +8378,17 @@ Dbdih::resetReplicaSr(TabRecordPtr tabPtr){ ConstPtr<ReplicaRecord> constReplicaPtr; constReplicaPtr.i = replicaPtr.i; constReplicaPtr.p = replicaPtr.p; if (setup_create_replica(fragPtr, if (tabPtr.p->storedTable == 0 || setup_create_replica(fragPtr, &createReplica, constReplicaPtr)) { jam(); removeOldStoredReplica(fragPtr, replicaPtr); linkStoredReplica(fragPtr, replicaPtr); } else { jam(); infoEvent("Forcing take-over of node %d due to unsufficient REDO" " for table %d fragment: %d", nodePtr.i, tabPtr.i, i); Loading Loading
ndb/include/kernel/ndb_limits.h +2 −0 Original line number Diff line number Diff line Loading @@ -62,6 +62,8 @@ #define MAX_KEY_SIZE_IN_WORDS 1023 #define MAX_FRM_DATA_SIZE 6000 #define MAX_WORDS_META_FILE 24576 #define MIN_ATTRBUF ((MAX_ATTRIBUTES_IN_TABLE/24) + 1) /* * Max Number of Records to fetch per SCAN_NEXTREQ in a scan in LQH. The Loading
ndb/src/kernel/blocks/ERROR_codes.txt +3 −1 Original line number Diff line number Diff line Loading @@ -5,7 +5,7 @@ Next DBACC 3002 Next DBTUP 4014 Next DBLQH 5043 Next DBDICT 6006 Next DBDIH 7174 Next DBDIH 7178 Next DBTC 8038 Next CMVMI 9000 Next BACKUP 10022 Loading Loading @@ -66,6 +66,8 @@ Delay GCP_SAVEREQ by 10 secs 7030: Delay in GCP_PREPARE until node has completed a node failure 7031: Delay in GCP_PREPARE and die 3s later 7177: Delay copying of sysfileData in execCOPY_GCIREQ ERROR CODES FOR TESTING NODE FAILURE, LOCAL CHECKPOINT HANDLING: ----------------------------------------------------------------- Loading
ndb/src/kernel/blocks/backup/Backup.cpp +2 −3 Original line number Diff line number Diff line Loading @@ -2323,9 +2323,8 @@ Backup::execDEFINE_BACKUP_REQ(Signal* signal) 0 // 3M }; const Uint32 maxInsert[] = { 2048, // Temporarily to solve TR515 //25, // 100 bytes 4096, // 4k MAX_WORDS_META_FILE, 4096, // 16k 16*3000, // Max 16 tuples }; Uint32 minWrite[] = { Loading
ndb/src/kernel/blocks/backup/Backup.hpp +4 −2 Original line number Diff line number Diff line Loading @@ -513,7 +513,9 @@ public: Config c_defaults; Uint32 m_diskless; STATIC_CONST(NO_OF_PAGES_META_FILE = 2); STATIC_CONST(NO_OF_PAGES_META_FILE = (MAX_WORDS_META_FILE + BACKUP_WORDS_PER_PAGE - 1) / BACKUP_WORDS_PER_PAGE); /** * Pools Loading
ndb/src/kernel/blocks/dbdih/DbdihMain.cpp +36 −7 Original line number Diff line number Diff line Loading @@ -626,21 +626,47 @@ void Dbdih::execCOPY_GCIREQ(Signal* signal) ndbrequire(c_copyGCISlave.m_copyReason == CopyGCIReq::IDLE); ndbrequire(c_copyGCISlave.m_expectedNextWord == tstart); ndbrequire(reason != CopyGCIReq::IDLE); bool isdone = (tstart + CopyGCIReq::DATA_SIZE) >= Sysfile::SYSFILE_SIZE32; if (ERROR_INSERTED(7177)) { jam(); if (signal->getLength() == 3) { jam(); goto done; } } arrGuard(tstart + CopyGCIReq::DATA_SIZE, sizeof(sysfileData)/4); for(Uint32 i = 0; i<CopyGCIReq::DATA_SIZE; i++) cdata[tstart+i] = copyGCI->data[i]; if ((tstart + CopyGCIReq::DATA_SIZE) >= Sysfile::SYSFILE_SIZE32) { if (ERROR_INSERTED(7177) && isMaster() && isdone) { sendSignalWithDelay(reference(), GSN_COPY_GCIREQ, signal, 1000, 3); return; } done: if (isdone) { jam(); c_copyGCISlave.m_expectedNextWord = 0; } else { } else { jam(); c_copyGCISlave.m_expectedNextWord += CopyGCIReq::DATA_SIZE; return; }//if } if (cmasterdihref != reference()) { jam(); memcpy(sysfileData, cdata, sizeof(sysfileData)); } c_copyGCISlave.m_copyReason = reason; c_copyGCISlave.m_senderRef = signal->senderBlockRef(); Loading Loading @@ -8352,14 +8378,17 @@ Dbdih::resetReplicaSr(TabRecordPtr tabPtr){ ConstPtr<ReplicaRecord> constReplicaPtr; constReplicaPtr.i = replicaPtr.i; constReplicaPtr.p = replicaPtr.p; if (setup_create_replica(fragPtr, if (tabPtr.p->storedTable == 0 || setup_create_replica(fragPtr, &createReplica, constReplicaPtr)) { jam(); removeOldStoredReplica(fragPtr, replicaPtr); linkStoredReplica(fragPtr, replicaPtr); } else { jam(); infoEvent("Forcing take-over of node %d due to unsufficient REDO" " for table %d fragment: %d", nodePtr.i, tabPtr.i, i); Loading