17 #include <boost/assign.hpp>
18 #include <boost/thread.hpp>
24 using boost::get_system_time;
25 using boost::posix_time::time_duration;
26 using boost::system_time;
27 using namespace impala;
30 boost::assign::map_list_of
37 map<FailureDetector::PeerState, string>::const_iterator it =
44 const string& peer,
bool seen) {
46 lock_guard<mutex> l(
lock_);
53 lock_guard<mutex> l(
lock_);
57 time_duration duration = get_system_time() - heartbeat_record->second;
68 lock_guard<mutex> l(
lock_);
73 const string& peer,
bool seen) {
75 lock_guard<mutex> l(
lock_);
89 lock_guard<mutex> l(
lock_);
104 lock_guard<mutex> l(
lock_);
int32_t suspect_missed_heartbeats_
const boost::posix_time::time_duration suspect_timeout_
virtual PeerState GetPeerState(const std::string &peer)
Returns the current estimated state of a peer.
boost::mutex lock_
Protects all members.
virtual void EvictPeer(const std::string &peer)
Remove a peer from the failure detector completely.
static const map< FailureDetector::PeerState, string > PEER_STATE_TO_STRING
const boost::posix_time::time_duration failure_timeout_
virtual PeerState GetPeerState(const std::string &peer)
Returns the current estimated state of a peer.
virtual void EvictPeer(const std::string &peer)
Remove a peer from the failure detector completely.
boost::mutex lock_
Protects all members.
int32_t max_missed_heartbeats_
static const std::string & PeerStateToString(PeerState peer_state)
Utility method to convert a PeerState enum to a string.
std::map< std::string, boost::system_time > peer_heartbeat_record_
Record of last time a successful heartbeat was received.
std::map< std::string, int32_t > missed_heartbeat_counts_
Number of consecutive heartbeats missed by peer.
virtual PeerState UpdateHeartbeat(const std::string &peer, bool seen)
virtual PeerState UpdateHeartbeat(const std::string &peer, bool seen)