Merge whalegate.ndb.mysql.com:/home/tomas/mysql-5.0-ndb
into whalegate.ndb.mysql.com:/home/tomas/mysql-5.1-single-user
This commit is contained in:
commit
a84d2971fc
@ -148,7 +148,14 @@ public:
|
|||||||
*
|
*
|
||||||
* @return Char value.
|
* @return Char value.
|
||||||
*/
|
*/
|
||||||
Int8 char_value() const;
|
char char_value() const;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get value stored in NdbRecAttr object.
|
||||||
|
*
|
||||||
|
* @return Int8 value.
|
||||||
|
*/
|
||||||
|
Int8 int8_value() const;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get value stored in NdbRecAttr object.
|
* Get value stored in NdbRecAttr object.
|
||||||
@ -185,6 +192,13 @@ public:
|
|||||||
*/
|
*/
|
||||||
Uint8 u_char_value() const;
|
Uint8 u_char_value() const;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get value stored in NdbRecAttr object.
|
||||||
|
*
|
||||||
|
* @return Uint8 value.
|
||||||
|
*/
|
||||||
|
Uint8 u_8_value() const;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get value stored in NdbRecAttr object.
|
* Get value stored in NdbRecAttr object.
|
||||||
*
|
*
|
||||||
@ -309,8 +323,15 @@ NdbRecAttr::short_value() const
|
|||||||
}
|
}
|
||||||
|
|
||||||
inline
|
inline
|
||||||
Int8
|
char
|
||||||
NdbRecAttr::char_value() const
|
NdbRecAttr::char_value() const
|
||||||
|
{
|
||||||
|
return *(char*)theRef;
|
||||||
|
}
|
||||||
|
|
||||||
|
inline
|
||||||
|
Int8
|
||||||
|
NdbRecAttr::int8_value() const
|
||||||
{
|
{
|
||||||
return *(Int8*)theRef;
|
return *(Int8*)theRef;
|
||||||
}
|
}
|
||||||
@ -336,6 +357,13 @@ NdbRecAttr::u_char_value() const
|
|||||||
return *(Uint8*)theRef;
|
return *(Uint8*)theRef;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
inline
|
||||||
|
Uint8
|
||||||
|
NdbRecAttr::u_8_value() const
|
||||||
|
{
|
||||||
|
return *(Uint8*)theRef;
|
||||||
|
}
|
||||||
|
|
||||||
inline
|
inline
|
||||||
void
|
void
|
||||||
NdbRecAttr::release()
|
NdbRecAttr::release()
|
||||||
|
@ -628,6 +628,16 @@ MgmtSrvr::start(BaseString &error_string)
|
|||||||
ndbout_c("This is probably a bug.");
|
ndbout_c("This is probably a bug.");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
set api reg req frequency quite high:
|
||||||
|
|
||||||
|
100 ms interval to make sure we have fairly up-to-date
|
||||||
|
info from the nodes. This to make sure that this info
|
||||||
|
is not dependent on heart beat settings in the
|
||||||
|
configuration
|
||||||
|
*/
|
||||||
|
theFacade->theClusterMgr->set_max_api_reg_req_interval(100);
|
||||||
|
|
||||||
TransporterRegistry *reg = theFacade->get_registry();
|
TransporterRegistry *reg = theFacade->get_registry();
|
||||||
for(unsigned int i=0;i<reg->m_transporter_interface.size();i++) {
|
for(unsigned int i=0;i<reg->m_transporter_interface.size();i++) {
|
||||||
BaseString msg;
|
BaseString msg;
|
||||||
|
@ -61,6 +61,7 @@ ClusterMgr::ClusterMgr(TransporterFacade & _facade):
|
|||||||
clusterMgrThreadMutex = NdbMutex_Create();
|
clusterMgrThreadMutex = NdbMutex_Create();
|
||||||
waitForHBCond= NdbCondition_Create();
|
waitForHBCond= NdbCondition_Create();
|
||||||
waitingForHB= false;
|
waitingForHB= false;
|
||||||
|
m_max_api_reg_req_interval= 0xFFFFFFFF; // MAX_INT
|
||||||
noOfAliveNodes= 0;
|
noOfAliveNodes= 0;
|
||||||
noOfConnectedNodes= 0;
|
noOfConnectedNodes= 0;
|
||||||
theClusterMgrThread= 0;
|
theClusterMgrThread= 0;
|
||||||
@ -243,7 +244,7 @@ ClusterMgr::threadMain( ){
|
|||||||
}
|
}
|
||||||
|
|
||||||
theFacade.lock_mutex();
|
theFacade.lock_mutex();
|
||||||
for (int i = 1; i < MAX_NODES; i++){
|
for (int i = 1; i < MAX_NDB_NODES; i++){
|
||||||
/**
|
/**
|
||||||
* Send register request (heartbeat) to all available nodes
|
* Send register request (heartbeat) to all available nodes
|
||||||
* at specified timing intervals
|
* at specified timing intervals
|
||||||
@ -264,7 +265,8 @@ ClusterMgr::threadMain( ){
|
|||||||
}
|
}
|
||||||
|
|
||||||
theNode.hbCounter += timeSlept;
|
theNode.hbCounter += timeSlept;
|
||||||
if (theNode.hbCounter >= theNode.hbFrequency) {
|
if (theNode.hbCounter >= m_max_api_reg_req_interval ||
|
||||||
|
theNode.hbCounter >= theNode.hbFrequency) {
|
||||||
/**
|
/**
|
||||||
* It is now time to send a new Heartbeat
|
* It is now time to send a new Heartbeat
|
||||||
*/
|
*/
|
||||||
|
@ -50,6 +50,7 @@ public:
|
|||||||
void startThread();
|
void startThread();
|
||||||
|
|
||||||
void forceHB();
|
void forceHB();
|
||||||
|
void set_max_api_reg_req_interval(unsigned int millisec) { m_max_api_reg_req_interval = millisec; }
|
||||||
|
|
||||||
private:
|
private:
|
||||||
void threadMain();
|
void threadMain();
|
||||||
@ -89,6 +90,7 @@ public:
|
|||||||
|
|
||||||
Uint32 m_connect_count;
|
Uint32 m_connect_count;
|
||||||
private:
|
private:
|
||||||
|
Uint32 m_max_api_reg_req_interval;
|
||||||
Uint32 noOfAliveNodes;
|
Uint32 noOfAliveNodes;
|
||||||
Uint32 noOfConnectedNodes;
|
Uint32 noOfConnectedNodes;
|
||||||
Node theNodes[MAX_NODES];
|
Node theNodes[MAX_NODES];
|
||||||
|
@ -270,7 +270,7 @@ ndbrecattr_print_formatted(NdbOut& out, const NdbRecAttr &r,
|
|||||||
out << r.u_short_value();
|
out << r.u_short_value();
|
||||||
break;
|
break;
|
||||||
case NdbDictionary::Column::Tinyunsigned:
|
case NdbDictionary::Column::Tinyunsigned:
|
||||||
out << (unsigned) r.u_char_value();
|
out << (unsigned) r.u_8_value();
|
||||||
break;
|
break;
|
||||||
case NdbDictionary::Column::Bigint:
|
case NdbDictionary::Column::Bigint:
|
||||||
out << r.int64_value();
|
out << r.int64_value();
|
||||||
@ -285,7 +285,7 @@ ndbrecattr_print_formatted(NdbOut& out, const NdbRecAttr &r,
|
|||||||
out << r.short_value();
|
out << r.short_value();
|
||||||
break;
|
break;
|
||||||
case NdbDictionary::Column::Tinyint:
|
case NdbDictionary::Column::Tinyint:
|
||||||
out << (int) r.char_value();
|
out << (int) r.int8_value();
|
||||||
break;
|
break;
|
||||||
case NdbDictionary::Column::Binary:
|
case NdbDictionary::Column::Binary:
|
||||||
if (!f.hex_format)
|
if (!f.hex_format)
|
||||||
@ -411,7 +411,7 @@ ndbrecattr_print_formatted(NdbOut& out, const NdbRecAttr &r,
|
|||||||
break;
|
break;
|
||||||
case NdbDictionary::Column::Year:
|
case NdbDictionary::Column::Year:
|
||||||
{
|
{
|
||||||
uint year = 1900 + r.u_char_value();
|
uint year = 1900 + r.u_8_value();
|
||||||
char buf[40];
|
char buf[40];
|
||||||
sprintf(buf, "%04d", year);
|
sprintf(buf, "%04d", year);
|
||||||
out << buf;
|
out << buf;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user