diff options
author | unknown <stewart@mysql.com> | 2005-07-22 20:29:25 +1000 |
---|---|---|
committer | unknown <stewart@mysql.com> | 2005-07-22 20:29:25 +1000 |
commit | f4b560008328bdecd875da85a2ff882a185e8d94 (patch) | |
tree | 2e76db089b0c90e71a5f914ccc90b309cee75ee1 /ndb/include/transporter | |
parent | ef45f4b688b29d61cf7449dcfced91aa1dc6217b (diff) | |
download | mariadb-git-f4b560008328bdecd875da85a2ff882a185e8d94.tar.gz |
WL#2347 - Load independent heartbeats
Reset missed heartbeat count on receipt of signal from node.
This fixes a bug where that under high network load, the heartbeat packets could be
delayed, causing the appearance of node failure (due to lost heartbeats).
ndb/include/kernel/NodeInfo.hpp:
Add m_heartbeat_cnt to track missed heartbeats
ndb/include/transporter/TransporterCallback.hpp:
add prototype for transporter_recv_from()
Called on receipt from a node.
ndb/src/common/transporter/TransporterRegistry.cpp:
Add calls to transporter_receive_from when data is received (before unpack)
ndb/src/kernel/blocks/qmgr/Qmgr.hpp:
remove NodeRec::alarmCount. missed heartbeat count now kept in NodeInfo
ndb/src/kernel/blocks/qmgr/QmgrMain.cpp:
Use NodeInfo::m_heartbeat_cnt for missed heartbeat count
ndb/src/kernel/vm/TransporterCallback.cpp:
add transporter_recv_from(), which is called on receipt of signals.
It resets missed heartbeat count for that node.
ndb/src/ndbapi/ClusterMgr.cpp:
Use NodeInfo::m_heartbeat_cnt for missed heartbeat count
ndb/src/ndbapi/ClusterMgr.hpp:
Use NodeInfo::m_heartbeat_cnt instead of ClusterMgr::Node::hbSent for missed
heartbeat count.
We now use the same storage for API and Kernel heartbeats.
Add ClusterMgr::hb_received(nodeId) to reset hbSent (as if we received a heartbeat,
but callable from elsewhere - e.g. when signal received)
ndb/src/ndbapi/TransporterFacade.cpp:
Implement transporter_recv_from for ndbapi - which resets hbSent
ndb/src/ndbapi/TransporterFacade.hpp:
Add hb_received(nodeId)
Diffstat (limited to 'ndb/include/transporter')
-rw-r--r-- | ndb/include/transporter/TransporterCallback.hpp | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/ndb/include/transporter/TransporterCallback.hpp b/ndb/include/transporter/TransporterCallback.hpp index 9f910f31728..f2432edd394 100644 --- a/ndb/include/transporter/TransporterCallback.hpp +++ b/ndb/include/transporter/TransporterCallback.hpp @@ -341,5 +341,8 @@ enum TransporterError { */ void reportError(void * callbackObj, NodeId nodeId, TransporterError errorCode); + +void +transporter_recv_from(void* callbackObj, NodeId node); #endif |