mirror of
https://github.com/MariaDB/server.git
synced 2025-01-19 13:32:33 +01:00
scan should not send fragmented signal
use new sendSignal method instead new send signal method which sends segments remove unused method sendFragmentedSignalUnCond
This commit is contained in:
parent
1f646ecc7c
commit
bbe970beab
3 changed files with 36 additions and 7 deletions
|
@ -612,7 +612,7 @@ NdbScanOperation::send_next_scan(Uint32 cnt, bool stopScanFlag){
|
|||
LinearSectionPtr ptr[3];
|
||||
ptr[0].p = prep_array;
|
||||
ptr[0].sz = cnt;
|
||||
ret = tp->sendFragmentedSignal(&tSignal, nodeId, ptr, 1);
|
||||
ret = tp->sendSignal(&tSignal, nodeId, ptr, 1);
|
||||
} else {
|
||||
tSignal.setLength(4+cnt);
|
||||
ret = tp->sendSignal(&tSignal, nodeId);
|
||||
|
@ -803,7 +803,7 @@ NdbScanOperation::doSendScan(int aProcessorId)
|
|||
LinearSectionPtr ptr[3];
|
||||
ptr[0].p = m_prepared_receivers;
|
||||
ptr[0].sz = theParallelism;
|
||||
if (tp->sendFragmentedSignal(tSignal, aProcessorId, ptr, 1) == -1) {
|
||||
if (tp->sendSignal(tSignal, aProcessorId, ptr, 1) == -1) {
|
||||
setErrorCode(4002);
|
||||
return -1;
|
||||
}
|
||||
|
|
|
@ -955,6 +955,38 @@ TransporterFacade::sendFragmentedSignal(NdbApiSignal* aSignal, NodeId aNode,
|
|||
return ret;
|
||||
}
|
||||
|
||||
int
|
||||
TransporterFacade::sendSignal(NdbApiSignal* aSignal, NodeId aNode,
|
||||
LinearSectionPtr ptr[3], Uint32 secs){
|
||||
aSignal->m_noOfSections = secs;
|
||||
if(getIsNodeSendable(aNode) == true){
|
||||
#ifdef API_TRACE
|
||||
if(setSignalLog() && TRACE_GSN(aSignal->theVerId_signalNumber)){
|
||||
Uint32 tmp = aSignal->theSendersBlockRef;
|
||||
aSignal->theSendersBlockRef = numberToRef(tmp, theOwnId);
|
||||
signalLogger.sendSignal(* aSignal,
|
||||
1,
|
||||
aSignal->getDataPtrSend(),
|
||||
aNode,
|
||||
ptr, secs);
|
||||
signalLogger.flushSignalLog();
|
||||
aSignal->theSendersBlockRef = tmp;
|
||||
}
|
||||
#endif
|
||||
SendStatus ss = theTransporterRegistry->prepareSend
|
||||
(aSignal,
|
||||
1, // JBB
|
||||
aSignal->getDataPtrSend(),
|
||||
aNode,
|
||||
ptr);
|
||||
assert(ss != SEND_MESSAGE_TOO_BIG);
|
||||
aSignal->m_noOfSections = 0;
|
||||
return (ss == SEND_OK ? 0 : -1);
|
||||
}
|
||||
aSignal->m_noOfSections = 0;
|
||||
return -1;
|
||||
}
|
||||
|
||||
/******************************************************************************
|
||||
* CONNECTION METHODS Etc
|
||||
******************************************************************************/
|
||||
|
|
|
@ -69,14 +69,11 @@ public:
|
|||
|
||||
// Only sends to nodes which are alive
|
||||
int sendSignal(NdbApiSignal * signal, NodeId nodeId);
|
||||
int sendSignal(NdbApiSignal*, NodeId,
|
||||
LinearSectionPtr ptr[3], Uint32 secs);
|
||||
int sendFragmentedSignal(NdbApiSignal*, NodeId,
|
||||
LinearSectionPtr ptr[3], Uint32 secs);
|
||||
|
||||
//Dirrrrty
|
||||
int sendFragmentedSignalUnCond(NdbApiSignal*, NodeId,
|
||||
LinearSectionPtr ptr[3], Uint32 secs);
|
||||
|
||||
|
||||
// Is node available for running transactions
|
||||
bool get_node_alive(NodeId nodeId) const;
|
||||
bool get_node_stopping(NodeId nodeId) const;
|
||||
|
|
Loading…
Reference in a new issue