3132 Jonas Oreland 2008-11-26
ndb - make primary replicas are distributed evenly among threads
modified:
storage/ndb/src/kernel/blocks/dbdih/DbdihMain.cpp
3131 Jonas Oreland 2008-11-26
ndb - reduce no of calls to checkJobBuffers on platforms wo/ epoll
modified:
storage/ndb/src/common/transporter/TransporterRegistry.cpp
3130 Jonas Oreland 2008-11-25
ndb - try to fix build on powermac, by changing some externs...
modified:
sql/ha_ndbcluster_connection.cc
sql/mysqld.cc
sql/set_var.cc
storage/ndb/include/util/ndb_opts.h
storage/ndb/src/common/util/ndb_opts.c
=== modified file 'storage/ndb/src/common/transporter/TransporterRegistry.cpp'
--- a/storage/ndb/src/common/transporter/TransporterRegistry.cpp 2008-11-25 17:02:56 +0000
+++ b/storage/ndb/src/common/transporter/TransporterRegistry.cpp 2008-11-26 10:36:20 +0000
@@ -1065,9 +1065,9 @@ TransporterRegistry::get_tcp_data(TCP_Tr
{
const NodeId node_id = t->getRemoteNodeId();
bool hasdata = false;
- callbackObj->checkJobBuffer();
if (is_connected(node_id) && t->isConnected())
{
+ callbackObj->checkJobBuffer();
t->doReceive();
Uint32 *ptr;
@@ -1115,7 +1115,6 @@ TransporterRegistry::performReceive()
{
for (int i=0; i<nTCPTransporters; i++)
{
- callbackObj->checkJobBuffer();
TCP_Transporter *t = theTCPTransporters[i];
const NodeId nodeId = t->getRemoteNodeId();
const NDB_SOCKET_TYPE socket = t->getSocket();
@@ -1129,6 +1128,7 @@ TransporterRegistry::performReceive()
if (t->hasReceiveData())
{
+ callbackObj->checkJobBuffer();
Uint32 * ptr;
Uint32 sz = t->getReceiveData(&ptr);
callbackObj->transporter_recv_from(nodeId);
@@ -1146,18 +1146,18 @@ TransporterRegistry::performReceive()
//do prepareReceive on the SCI transporters (prepareReceive(t,,,,))
for (int i=0; i<nSCITransporters; i++)
{
- callbackObj->checkJobBuffer();
SCI_Transporter *t = theSCITransporters[i];
const NodeId nodeId = t->getRemoteNodeId();
if(is_connected(nodeId))
{
if(t->isConnected() && t->checkConnected())
{
- Uint32 * readPtr, * eodPtr;
- t->getReceivePtr(&readPtr, &eodPtr);
- callbackObj->transporter_recv_from(nodeId);
- Uint32 *newPtr = unpack(readPtr, eodPtr, nodeId, ioStates[nodeId]);
- t->updateReceivePtr(newPtr);
+ callbackObj->checkJobBuffer();
+ Uint32 * readPtr, * eodPtr;
+ t->getReceivePtr(&readPtr, &eodPtr);
+ callbackObj->transporter_recv_from(nodeId);
+ Uint32 *newPtr = unpack(readPtr, eodPtr, nodeId, ioStates[nodeId]);
+ t->updateReceivePtr(newPtr);
}
}
}
@@ -1165,17 +1165,17 @@ TransporterRegistry::performReceive()
#ifdef NDB_SHM_TRANSPORTER
for (int i=0; i<nSHMTransporters; i++)
{
- callbackObj->checkJobBuffer();
SHM_Transporter *t = theSHMTransporters[i];
const NodeId nodeId = t->getRemoteNodeId();
if(is_connected(nodeId)){
if(t->isConnected() && t->checkConnected())
{
- Uint32 * readPtr, * eodPtr;
- t->getReceivePtr(&readPtr, &eodPtr);
- callbackObj->transporter_recv_from(nodeId);
- Uint32 *newPtr = unpack(readPtr, eodPtr, nodeId, ioStates[nodeId]);
- t->updateReceivePtr(newPtr);
+ callbackObj->checkJobBuffer();
+ Uint32 * readPtr, * eodPtr;
+ t->getReceivePtr(&readPtr, &eodPtr);
+ callbackObj->transporter_recv_from(nodeId);
+ Uint32 *newPtr = unpack(readPtr, eodPtr, nodeId, ioStates[nodeId]);
+ t->updateReceivePtr(newPtr);
}
}
}
=== modified file 'storage/ndb/src/kernel/blocks/dbdih/DbdihMain.cpp'
--- a/storage/ndb/src/kernel/blocks/dbdih/DbdihMain.cpp 2008-11-16 15:27:09 +0000
+++ b/storage/ndb/src/kernel/blocks/dbdih/DbdihMain.cpp 2008-11-26 10:37:25 +0000
@@ -7018,7 +7018,7 @@ void Dbdih::execCREATE_FRAGMENTATION_REQ
}
const Uint32 max = NGPtr.p->nodeCount;
- fragments[count++] = NGPtr.p->m_next_log_part++; // Store logpart first
+ fragments[count++] = (NGPtr.p->m_next_log_part++ / cnoReplicas); // Store logpart first
Uint32 tmp= next_replica_node[NGPtr.i];
for(Uint32 replicaNo = 0; replicaNo < noOfReplicas; replicaNo++)
{
| Thread |
|---|
| • bzr push into mysql-5.1 branch (jonas:3130 to 3132) | Jonas Oreland | 26 Nov |