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.
|
||||
*/
|
||||
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.
|
||||
@ -185,6 +192,13 @@ public:
|
||||
*/
|
||||
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.
|
||||
*
|
||||
@ -309,8 +323,15 @@ NdbRecAttr::short_value() const
|
||||
}
|
||||
|
||||
inline
|
||||
Int8
|
||||
char
|
||||
NdbRecAttr::char_value() const
|
||||
{
|
||||
return *(char*)theRef;
|
||||
}
|
||||
|
||||
inline
|
||||
Int8
|
||||
NdbRecAttr::int8_value() const
|
||||
{
|
||||
return *(Int8*)theRef;
|
||||
}
|
||||
@ -336,6 +357,13 @@ NdbRecAttr::u_char_value() const
|
||||
return *(Uint8*)theRef;
|
||||
}
|
||||
|
||||
inline
|
||||
Uint8
|
||||
NdbRecAttr::u_8_value() const
|
||||
{
|
||||
return *(Uint8*)theRef;
|
||||
}
|
||||
|
||||
inline
|
||||
void
|
||||
NdbRecAttr::release()
|
||||
|
@ -628,6 +628,16 @@ MgmtSrvr::start(BaseString &error_string)
|
||||
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();
|
||||
for(unsigned int i=0;i<reg->m_transporter_interface.size();i++) {
|
||||
BaseString msg;
|
||||
|
@ -61,6 +61,7 @@ ClusterMgr::ClusterMgr(TransporterFacade & _facade):
|
||||
clusterMgrThreadMutex = NdbMutex_Create();
|
||||
waitForHBCond= NdbCondition_Create();
|
||||
waitingForHB= false;
|
||||
m_max_api_reg_req_interval= 0xFFFFFFFF; // MAX_INT
|
||||
noOfAliveNodes= 0;
|
||||
noOfConnectedNodes= 0;
|
||||
theClusterMgrThread= 0;
|
||||
@ -243,7 +244,7 @@ ClusterMgr::threadMain( ){
|
||||
}
|
||||
|
||||
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
|
||||
* at specified timing intervals
|
||||
@ -264,7 +265,8 @@ ClusterMgr::threadMain( ){
|
||||
}
|
||||
|
||||
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
|
||||
*/
|
||||
|
@ -50,6 +50,7 @@ public:
|
||||
void startThread();
|
||||
|
||||
void forceHB();
|
||||
void set_max_api_reg_req_interval(unsigned int millisec) { m_max_api_reg_req_interval = millisec; }
|
||||
|
||||
private:
|
||||
void threadMain();
|
||||
@ -89,6 +90,7 @@ public:
|
||||
|
||||
Uint32 m_connect_count;
|
||||
private:
|
||||
Uint32 m_max_api_reg_req_interval;
|
||||
Uint32 noOfAliveNodes;
|
||||
Uint32 noOfConnectedNodes;
|
||||
Node theNodes[MAX_NODES];
|
||||
|
@ -270,7 +270,7 @@ ndbrecattr_print_formatted(NdbOut& out, const NdbRecAttr &r,
|
||||
out << r.u_short_value();
|
||||
break;
|
||||
case NdbDictionary::Column::Tinyunsigned:
|
||||
out << (unsigned) r.u_char_value();
|
||||
out << (unsigned) r.u_8_value();
|
||||
break;
|
||||
case NdbDictionary::Column::Bigint:
|
||||
out << r.int64_value();
|
||||
@ -285,7 +285,7 @@ ndbrecattr_print_formatted(NdbOut& out, const NdbRecAttr &r,
|
||||
out << r.short_value();
|
||||
break;
|
||||
case NdbDictionary::Column::Tinyint:
|
||||
out << (int) r.char_value();
|
||||
out << (int) r.int8_value();
|
||||
break;
|
||||
case NdbDictionary::Column::Binary:
|
||||
if (!f.hex_format)
|
||||
@ -411,7 +411,7 @@ ndbrecattr_print_formatted(NdbOut& out, const NdbRecAttr &r,
|
||||
break;
|
||||
case NdbDictionary::Column::Year:
|
||||
{
|
||||
uint year = 1900 + r.u_char_value();
|
||||
uint year = 1900 + r.u_8_value();
|
||||
char buf[40];
|
||||
sprintf(buf, "%04d", year);
|
||||
out << buf;
|
||||
|
Loading…
x
Reference in New Issue
Block a user