Loading storage/ndb/include/kernel/signaldata/SumaImpl.hpp +23 −4 Original line number Diff line number Diff line Loading @@ -302,13 +302,32 @@ struct SubTableData { Uint32 senderData; Uint32 gci; Uint32 tableId; Uint8 operation; Uint8 req_nodeid; Uint8 ndbd_nodeid; Uint8 not_used3; Uint32 requestInfo; Uint32 logType; Uint32 changeMask; Uint32 totalLen; static void setOperation(Uint32& ri, Uint32 val) { ri = (ri & 0xFFFFFF00) | val; } static void setReqNodeId(Uint32& ri, Uint32 val) { ri = (ri & 0xFFFF00FF) | (val << 8); } static void setNdbdNodeId(Uint32& ri, Uint32 val) { ri = (ri & 0xFF00FFFF) | (val << 16); } static Uint32 getOperation(const Uint32 & ri){ return (ri & 0xFF); } static Uint32 getReqNodeId(const Uint32 & ri){ return (ri >> 8) & 0xFF; } static Uint32 getNdbdNodeId(const Uint32 & ri){ return (ri >> 16) & 0xFF; } }; struct SubSyncContinueReq { Loading storage/ndb/src/common/debugger/signaldata/SumaImpl.cpp +2 −2 Original line number Diff line number Diff line Loading @@ -174,10 +174,10 @@ printSUB_TABLE_DATA(FILE * output, const Uint32 * theData, Uint32 len, Uint16 receiverBlockNo) { const SubTableData * const sig = (SubTableData *)theData; fprintf(output, " senderData: %x\n", sig->senderData); fprintf(output, " senderData: %x\n", sig->senderData); fprintf(output, " gci: %x\n", sig->gci); fprintf(output, " tableId: %x\n", sig->tableId); fprintf(output, " operation: %x\n", sig->operation); fprintf(output, " operation: %x\n", SubTableData::getOperation(sig->requestInfo)); return false; } Loading storage/ndb/src/kernel/blocks/suma/Suma.cpp +36 −18 Original line number Diff line number Diff line Loading @@ -2642,7 +2642,11 @@ Suma::sendSubStopComplete(Signal* signal, SubscriberPtr subbPtr) SubTableData * data = (SubTableData*)signal->getDataPtrSend(); data->gci = m_last_complete_gci + 1; // XXX ??? data->tableId = 0; data->operation = NdbDictionary::Event::_TE_STOP; data->requestInfo = 0; SubTableData::setOperation(data->requestInfo, NdbDictionary::Event::_TE_STOP); SubTableData::setNdbdNodeId(data->requestInfo, getOwnNodeId()); data->senderData = subbPtr.p->m_senderData; sendSignal(subbPtr.p->m_senderRef, GSN_SUB_TABLE_DATA, signal, SubTableData::SignalLength, JBB); Loading Loading @@ -2681,11 +2685,14 @@ Suma::reportAllSubscribers(Signal *signal, { data->gci = m_last_complete_gci + 1; data->tableId = subPtr.p->m_tableId; data->operation = NdbDictionary::Event::_TE_ACTIVE; data->ndbd_nodeid = refToNode(reference()); data->requestInfo = 0; SubTableData::setOperation(data->requestInfo, NdbDictionary::Event::_TE_ACTIVE); SubTableData::setNdbdNodeId(data->requestInfo, getOwnNodeId()); SubTableData::setReqNodeId(data->requestInfo, refToNode(subbPtr.p->m_senderRef)); data->changeMask = 0; data->totalLen = 0; data->req_nodeid = refToNode(subbPtr.p->m_senderRef); data->senderData = subbPtr.p->m_senderData; sendSignal(subbPtr.p->m_senderRef, GSN_SUB_TABLE_DATA, signal, SubTableData::SignalLength, JBB); Loading @@ -2707,8 +2714,9 @@ Suma::reportAllSubscribers(Signal *signal, //#endif data->gci = m_last_complete_gci + 1; data->tableId = subPtr.p->m_tableId; data->operation = table_event; data->ndbd_nodeid = refToNode(reference()); data->requestInfo = 0; SubTableData::setOperation(data->requestInfo, table_event); SubTableData::setNdbdNodeId(data->requestInfo, getOwnNodeId()); data->changeMask = 0; data->totalLen = 0; Loading @@ -2720,7 +2728,8 @@ Suma::reportAllSubscribers(Signal *signal, { if (i_subbPtr.p->m_subPtrI == subPtr.i) { data->req_nodeid = refToNode(subbPtr.p->m_senderRef); SubTableData::setReqNodeId(data->requestInfo, refToNode(subbPtr.p->m_senderRef)); data->senderData = i_subbPtr.p->m_senderData; sendSignal(i_subbPtr.p->m_senderRef, GSN_SUB_TABLE_DATA, signal, SubTableData::SignalLength, JBB); Loading @@ -2729,12 +2738,14 @@ Suma::reportAllSubscribers(Signal *signal, table_event == NdbDictionary::Event::_TE_SUBSCRIBE ? "SUBSCRIBE" : "UNSUBSCRIBE", (int) table_event, refToNode(i_subbPtr.p->m_senderRef), data->req_nodeid, data->senderData refToNode(subbPtr.p->m_senderRef), data->senderData ); //#endif if (i_subbPtr.i != subbPtr.i) { data->req_nodeid = refToNode(i_subbPtr.p->m_senderRef); SubTableData::setReqNodeId(data->requestInfo, refToNode(i_subbPtr.p->m_senderRef)); data->senderData = subbPtr.p->m_senderData; sendSignal(subbPtr.p->m_senderRef, GSN_SUB_TABLE_DATA, signal, SubTableData::SignalLength, JBB); Loading @@ -2743,7 +2754,7 @@ Suma::reportAllSubscribers(Signal *signal, table_event == NdbDictionary::Event::_TE_SUBSCRIBE ? "SUBSCRIBE" : "UNSUBSCRIBE", (int) table_event, refToNode(subbPtr.p->m_senderRef), data->req_nodeid, data->senderData refToNode(i_subbPtr.p->m_senderRef), data->senderData ); //#endif } Loading Loading @@ -3146,7 +3157,9 @@ Suma::execTRANSID_AI(Signal* signal) Uint32 ref = subPtr.p->m_senderRef; sdata->tableId = syncPtr.p->m_currentTableId; sdata->senderData = subPtr.p->m_senderData; sdata->operation = NdbDictionary::Event::_TE_SCAN; // Scan sdata->requestInfo = 0; SubTableData::setOperation(sdata->requestInfo, NdbDictionary::Event::_TE_SCAN); // Scan sdata->gci = 0; // Undefined #if PRINT_ONLY ndbout_c("GSN_SUB_TABLE_DATA (scan) #attr: %d len: %d", attribs, sum); Loading Loading @@ -3362,7 +3375,8 @@ Suma::execFIRE_TRIG_ORD(Signal* signal) SubTableData * data = (SubTableData*)signal->getDataPtrSend();//trg; data->gci = gci; data->tableId = tabPtr.p->m_tableId; data->operation = event; data->requestInfo = 0; SubTableData::setOperation(data->requestInfo, event); data->logType = 0; data->changeMask = 0; data->totalLen = ptrLen; Loading Loading @@ -3588,8 +3602,9 @@ Suma::execDROP_TAB_CONF(Signal *signal) SubTableData * data = (SubTableData*)signal->getDataPtrSend(); data->gci = m_last_complete_gci+1; data->tableId = tableId; data->operation = NdbDictionary::Event::_TE_DROP; data->req_nodeid = refToNode(senderRef); data->requestInfo = 0; SubTableData::setOperation(data->requestInfo,NdbDictionary::Event::_TE_DROP); SubTableData::setReqNodeId(data->requestInfo, refToNode(senderRef)); { LocalDLList<Subscriber> subbs(c_subscriberPool,tabPtr.p->c_subscribers); Loading Loading @@ -3667,8 +3682,10 @@ Suma::execALTER_TAB_REQ(Signal *signal) SubTableData * data = (SubTableData*)signal->getDataPtrSend(); data->gci = m_last_complete_gci+1; data->tableId = tableId; data->operation = NdbDictionary::Event::_TE_ALTER; data->req_nodeid = refToNode(senderRef); data->requestInfo = 0; SubTableData::setOperation(data->requestInfo, NdbDictionary::Event::_TE_ALTER); SubTableData::setReqNodeId(data->requestInfo, refToNode(senderRef)); data->logType = 0; data->changeMask = changeMask; data->totalLen = tabInfoPtr.sz; Loading Loading @@ -4898,7 +4915,8 @@ Suma::resend_bucket(Signal* signal, Uint32 buck, Uint32 min_gci, SubTableData * data = (SubTableData*)signal->getDataPtrSend();//trg; data->gci = last_gci; data->tableId = tabPtr.p->m_tableId; data->operation = event; data->requestInfo = 0; SubTableData::setOperation(data->requestInfo, event); data->logType = 0; data->changeMask = 0; data->totalLen = ptrLen; Loading storage/ndb/src/ndbapi/NdbBlob.cpp +2 −1 Original line number Diff line number Diff line Loading @@ -1894,7 +1894,8 @@ int NdbBlob::atNextEvent() { DBUG_ENTER("NdbBlob::atNextEvent"); Uint32 optype = theEventOp->m_data_item->sdata->operation; Uint32 optype = SubTableData::getOperation(theEventOp->m_data_item->sdata->requestInfo); DBUG_PRINT("info", ("this=%p op=%p blob op=%p version=%d optype=%u", this, theEventOp, theBlobEventOp, theEventBlobVersion, optype)); if (theState == Invalid) DBUG_RETURN(-1); Loading storage/ndb/src/ndbapi/NdbEventOperation.cpp +2 −2 Original line number Diff line number Diff line Loading @@ -192,12 +192,12 @@ void * NdbEventOperation::getCustomData() const int NdbEventOperation::getReqNodeId() const { return m_impl.m_data_item->sdata->req_nodeid; return SubTableData::getReqNodeId(m_impl.m_data_item->sdata->requestInfo); } int NdbEventOperation::getNdbdNodeId() const { return m_impl.m_data_item->sdata->ndbd_nodeid; return SubTableData::getNdbdNodeId(m_impl.m_data_item->sdata->requestInfo); } /* Loading Loading
storage/ndb/include/kernel/signaldata/SumaImpl.hpp +23 −4 Original line number Diff line number Diff line Loading @@ -302,13 +302,32 @@ struct SubTableData { Uint32 senderData; Uint32 gci; Uint32 tableId; Uint8 operation; Uint8 req_nodeid; Uint8 ndbd_nodeid; Uint8 not_used3; Uint32 requestInfo; Uint32 logType; Uint32 changeMask; Uint32 totalLen; static void setOperation(Uint32& ri, Uint32 val) { ri = (ri & 0xFFFFFF00) | val; } static void setReqNodeId(Uint32& ri, Uint32 val) { ri = (ri & 0xFFFF00FF) | (val << 8); } static void setNdbdNodeId(Uint32& ri, Uint32 val) { ri = (ri & 0xFF00FFFF) | (val << 16); } static Uint32 getOperation(const Uint32 & ri){ return (ri & 0xFF); } static Uint32 getReqNodeId(const Uint32 & ri){ return (ri >> 8) & 0xFF; } static Uint32 getNdbdNodeId(const Uint32 & ri){ return (ri >> 16) & 0xFF; } }; struct SubSyncContinueReq { Loading
storage/ndb/src/common/debugger/signaldata/SumaImpl.cpp +2 −2 Original line number Diff line number Diff line Loading @@ -174,10 +174,10 @@ printSUB_TABLE_DATA(FILE * output, const Uint32 * theData, Uint32 len, Uint16 receiverBlockNo) { const SubTableData * const sig = (SubTableData *)theData; fprintf(output, " senderData: %x\n", sig->senderData); fprintf(output, " senderData: %x\n", sig->senderData); fprintf(output, " gci: %x\n", sig->gci); fprintf(output, " tableId: %x\n", sig->tableId); fprintf(output, " operation: %x\n", sig->operation); fprintf(output, " operation: %x\n", SubTableData::getOperation(sig->requestInfo)); return false; } Loading
storage/ndb/src/kernel/blocks/suma/Suma.cpp +36 −18 Original line number Diff line number Diff line Loading @@ -2642,7 +2642,11 @@ Suma::sendSubStopComplete(Signal* signal, SubscriberPtr subbPtr) SubTableData * data = (SubTableData*)signal->getDataPtrSend(); data->gci = m_last_complete_gci + 1; // XXX ??? data->tableId = 0; data->operation = NdbDictionary::Event::_TE_STOP; data->requestInfo = 0; SubTableData::setOperation(data->requestInfo, NdbDictionary::Event::_TE_STOP); SubTableData::setNdbdNodeId(data->requestInfo, getOwnNodeId()); data->senderData = subbPtr.p->m_senderData; sendSignal(subbPtr.p->m_senderRef, GSN_SUB_TABLE_DATA, signal, SubTableData::SignalLength, JBB); Loading Loading @@ -2681,11 +2685,14 @@ Suma::reportAllSubscribers(Signal *signal, { data->gci = m_last_complete_gci + 1; data->tableId = subPtr.p->m_tableId; data->operation = NdbDictionary::Event::_TE_ACTIVE; data->ndbd_nodeid = refToNode(reference()); data->requestInfo = 0; SubTableData::setOperation(data->requestInfo, NdbDictionary::Event::_TE_ACTIVE); SubTableData::setNdbdNodeId(data->requestInfo, getOwnNodeId()); SubTableData::setReqNodeId(data->requestInfo, refToNode(subbPtr.p->m_senderRef)); data->changeMask = 0; data->totalLen = 0; data->req_nodeid = refToNode(subbPtr.p->m_senderRef); data->senderData = subbPtr.p->m_senderData; sendSignal(subbPtr.p->m_senderRef, GSN_SUB_TABLE_DATA, signal, SubTableData::SignalLength, JBB); Loading @@ -2707,8 +2714,9 @@ Suma::reportAllSubscribers(Signal *signal, //#endif data->gci = m_last_complete_gci + 1; data->tableId = subPtr.p->m_tableId; data->operation = table_event; data->ndbd_nodeid = refToNode(reference()); data->requestInfo = 0; SubTableData::setOperation(data->requestInfo, table_event); SubTableData::setNdbdNodeId(data->requestInfo, getOwnNodeId()); data->changeMask = 0; data->totalLen = 0; Loading @@ -2720,7 +2728,8 @@ Suma::reportAllSubscribers(Signal *signal, { if (i_subbPtr.p->m_subPtrI == subPtr.i) { data->req_nodeid = refToNode(subbPtr.p->m_senderRef); SubTableData::setReqNodeId(data->requestInfo, refToNode(subbPtr.p->m_senderRef)); data->senderData = i_subbPtr.p->m_senderData; sendSignal(i_subbPtr.p->m_senderRef, GSN_SUB_TABLE_DATA, signal, SubTableData::SignalLength, JBB); Loading @@ -2729,12 +2738,14 @@ Suma::reportAllSubscribers(Signal *signal, table_event == NdbDictionary::Event::_TE_SUBSCRIBE ? "SUBSCRIBE" : "UNSUBSCRIBE", (int) table_event, refToNode(i_subbPtr.p->m_senderRef), data->req_nodeid, data->senderData refToNode(subbPtr.p->m_senderRef), data->senderData ); //#endif if (i_subbPtr.i != subbPtr.i) { data->req_nodeid = refToNode(i_subbPtr.p->m_senderRef); SubTableData::setReqNodeId(data->requestInfo, refToNode(i_subbPtr.p->m_senderRef)); data->senderData = subbPtr.p->m_senderData; sendSignal(subbPtr.p->m_senderRef, GSN_SUB_TABLE_DATA, signal, SubTableData::SignalLength, JBB); Loading @@ -2743,7 +2754,7 @@ Suma::reportAllSubscribers(Signal *signal, table_event == NdbDictionary::Event::_TE_SUBSCRIBE ? "SUBSCRIBE" : "UNSUBSCRIBE", (int) table_event, refToNode(subbPtr.p->m_senderRef), data->req_nodeid, data->senderData refToNode(i_subbPtr.p->m_senderRef), data->senderData ); //#endif } Loading Loading @@ -3146,7 +3157,9 @@ Suma::execTRANSID_AI(Signal* signal) Uint32 ref = subPtr.p->m_senderRef; sdata->tableId = syncPtr.p->m_currentTableId; sdata->senderData = subPtr.p->m_senderData; sdata->operation = NdbDictionary::Event::_TE_SCAN; // Scan sdata->requestInfo = 0; SubTableData::setOperation(sdata->requestInfo, NdbDictionary::Event::_TE_SCAN); // Scan sdata->gci = 0; // Undefined #if PRINT_ONLY ndbout_c("GSN_SUB_TABLE_DATA (scan) #attr: %d len: %d", attribs, sum); Loading Loading @@ -3362,7 +3375,8 @@ Suma::execFIRE_TRIG_ORD(Signal* signal) SubTableData * data = (SubTableData*)signal->getDataPtrSend();//trg; data->gci = gci; data->tableId = tabPtr.p->m_tableId; data->operation = event; data->requestInfo = 0; SubTableData::setOperation(data->requestInfo, event); data->logType = 0; data->changeMask = 0; data->totalLen = ptrLen; Loading Loading @@ -3588,8 +3602,9 @@ Suma::execDROP_TAB_CONF(Signal *signal) SubTableData * data = (SubTableData*)signal->getDataPtrSend(); data->gci = m_last_complete_gci+1; data->tableId = tableId; data->operation = NdbDictionary::Event::_TE_DROP; data->req_nodeid = refToNode(senderRef); data->requestInfo = 0; SubTableData::setOperation(data->requestInfo,NdbDictionary::Event::_TE_DROP); SubTableData::setReqNodeId(data->requestInfo, refToNode(senderRef)); { LocalDLList<Subscriber> subbs(c_subscriberPool,tabPtr.p->c_subscribers); Loading Loading @@ -3667,8 +3682,10 @@ Suma::execALTER_TAB_REQ(Signal *signal) SubTableData * data = (SubTableData*)signal->getDataPtrSend(); data->gci = m_last_complete_gci+1; data->tableId = tableId; data->operation = NdbDictionary::Event::_TE_ALTER; data->req_nodeid = refToNode(senderRef); data->requestInfo = 0; SubTableData::setOperation(data->requestInfo, NdbDictionary::Event::_TE_ALTER); SubTableData::setReqNodeId(data->requestInfo, refToNode(senderRef)); data->logType = 0; data->changeMask = changeMask; data->totalLen = tabInfoPtr.sz; Loading Loading @@ -4898,7 +4915,8 @@ Suma::resend_bucket(Signal* signal, Uint32 buck, Uint32 min_gci, SubTableData * data = (SubTableData*)signal->getDataPtrSend();//trg; data->gci = last_gci; data->tableId = tabPtr.p->m_tableId; data->operation = event; data->requestInfo = 0; SubTableData::setOperation(data->requestInfo, event); data->logType = 0; data->changeMask = 0; data->totalLen = ptrLen; Loading
storage/ndb/src/ndbapi/NdbBlob.cpp +2 −1 Original line number Diff line number Diff line Loading @@ -1894,7 +1894,8 @@ int NdbBlob::atNextEvent() { DBUG_ENTER("NdbBlob::atNextEvent"); Uint32 optype = theEventOp->m_data_item->sdata->operation; Uint32 optype = SubTableData::getOperation(theEventOp->m_data_item->sdata->requestInfo); DBUG_PRINT("info", ("this=%p op=%p blob op=%p version=%d optype=%u", this, theEventOp, theBlobEventOp, theEventBlobVersion, optype)); if (theState == Invalid) DBUG_RETURN(-1); Loading
storage/ndb/src/ndbapi/NdbEventOperation.cpp +2 −2 Original line number Diff line number Diff line Loading @@ -192,12 +192,12 @@ void * NdbEventOperation::getCustomData() const int NdbEventOperation::getReqNodeId() const { return m_impl.m_data_item->sdata->req_nodeid; return SubTableData::getReqNodeId(m_impl.m_data_item->sdata->requestInfo); } int NdbEventOperation::getNdbdNodeId() const { return m_impl.m_data_item->sdata->ndbd_nodeid; return SubTableData::getNdbdNodeId(m_impl.m_data_item->sdata->requestInfo); } /* Loading