MySQL  8.0.19
Source Code Documentation
xcom_detector.c File Reference
#include <assert.h>
#include <stdlib.h>
#include "plugin/group_replication/libmysqlgcs/src/bindings/xcom/xcom/app_data.h"
#include "plugin/group_replication/libmysqlgcs/src/bindings/xcom/xcom/xcom_profile.h"
#include "my_compiler.h"
#include "plugin/group_replication/libmysqlgcs/src/bindings/xcom/xcom/node_list.h"
#include "plugin/group_replication/libmysqlgcs/src/bindings/xcom/xcom/node_no.h"
#include "plugin/group_replication/libmysqlgcs/src/bindings/xcom/xcom/node_set.h"
#include "plugin/group_replication/libmysqlgcs/src/bindings/xcom/xcom/pax_msg.h"
#include "plugin/group_replication/libmysqlgcs/src/bindings/xcom/xcom/server_struct.h"
#include "plugin/group_replication/libmysqlgcs/src/bindings/xcom/xcom/simset.h"
#include "plugin/group_replication/libmysqlgcs/src/bindings/xcom/xcom/site_def.h"
#include "plugin/group_replication/libmysqlgcs/src/bindings/xcom/xcom/site_struct.h"
#include "plugin/group_replication/libmysqlgcs/src/bindings/xcom/xcom/sock_probe.h"
#include "plugin/group_replication/libmysqlgcs/src/bindings/xcom/xcom/synode_no.h"
#include "plugin/group_replication/libmysqlgcs/src/bindings/xcom/xcom/task.h"
#include "plugin/group_replication/libmysqlgcs/src/bindings/xcom/xcom/task_debug.h"
#include "plugin/group_replication/libmysqlgcs/src/bindings/xcom/xcom/x_platform.h"
#include "plugin/group_replication/libmysqlgcs/src/bindings/xcom/xcom/xcom_base.h"
#include "plugin/group_replication/libmysqlgcs/src/bindings/xcom/xcom/xcom_common.h"
#include "plugin/group_replication/libmysqlgcs/src/bindings/xcom/xcom/xcom_detector.h"
#include "plugin/group_replication/libmysqlgcs/src/bindings/xcom/xcom/xcom_transport.h"
#include "plugin/group_replication/libmysqlgcs/xdr_gen/xcom_vp.h"

Macros

#define DETECT(site)
 

Functions

int may_be_dead (detector_state const ds, node_no i, double seconds)
 
void init_detector (detector_state ds)
 
void note_detected (site_def const *site, node_no node)
 
static void reset_detected (site_def const *site, u_int node)
 
static void reset_disjunct_servers (site_def const *old_site, site_def const *new_site)
 
static void dbg_detected (site_def *site)
 
void update_detected (site_def *site)
 
int enough_live_nodes (site_def const *site)
 
static void send_my_view (site_def const *site)
 
static void update_global_count (site_def *site)
 
static void check_global_node_set (site_def *site, int *notify)
 
static void check_local_node_set (site_def *site, int *notify)
 
static node_no leader (site_def const *s)
 
int iamtheleader (site_def const *s)
 
void invalidate_detector_sites (site_def *site)
 
int detector_task (task_arg arg)
 
node_set detector_node_set (site_def const *site)
 
static void validate_update_configuration (site_def const *site, synode_no alive_synode)
 
int alive_task (task_arg arg)
 

Variables

task_envdetector
 
int xcom_shutdown
 
synode_no executed_msg
 
synode_no max_synode
 
static site_deflast_p_site = 0
 
static site_deflast_x_site = 0
 

Macro Definition Documentation

◆ DETECT

#define DETECT (   site)
Value:
(i == get_nodeno(site)) || \
(site->detected[i] + DETECTOR_LIVE_TIMEOUT > task_now())

Function Documentation

◆ alive_task()

int alive_task ( task_arg  arg)

◆ check_global_node_set()

static void check_global_node_set ( site_def site,
int *  notify 
)
static

◆ check_local_node_set()

static void check_local_node_set ( site_def site,
int *  notify 
)
static

◆ dbg_detected()

static void dbg_detected ( site_def site)
static

◆ detector_node_set()

node_set detector_node_set ( site_def const *  site)

◆ detector_task()

int detector_task ( task_arg  arg)

◆ enough_live_nodes()

int enough_live_nodes ( site_def const *  site)

◆ iamtheleader()

int iamtheleader ( site_def const *  s)

◆ init_detector()

void init_detector ( detector_state  ds)

◆ invalidate_detector_sites()

void invalidate_detector_sites ( site_def site)

◆ leader()

static node_no leader ( site_def const *  s)
static

◆ may_be_dead()

int may_be_dead ( detector_state const  ds,
node_no  i,
double  seconds 
)

◆ note_detected()

void note_detected ( site_def const *  site,
node_no  node 
)

◆ reset_detected()

static void reset_detected ( site_def const *  site,
u_int  node 
)
static

◆ reset_disjunct_servers()

static void reset_disjunct_servers ( site_def const *  old_site,
site_def const *  new_site 
)
static

◆ send_my_view()

static void send_my_view ( site_def const *  site)
static

◆ update_detected()

void update_detected ( site_def site)

◆ update_global_count()

static void update_global_count ( site_def site)
static

◆ validate_update_configuration()

static void validate_update_configuration ( site_def const *  site,
synode_no  alive_synode 
)
static

Variable Documentation

◆ detector

task_env* detector

◆ executed_msg

synode_no executed_msg

◆ last_p_site

site_def* last_p_site = 0
static

◆ last_x_site

site_def* last_x_site = 0
static

◆ max_synode

synode_no max_synode

◆ xcom_shutdown

int xcom_shutdown
DETECTOR_LIVE_TIMEOUT
#define DETECTOR_LIVE_TIMEOUT
Definition: xcom_detector.h:32
task_now
double task_now()
Definition: task.c:306
get_nodeno
node_no get_nodeno(site_def const *site)
Definition: site_def.c:442