MySQL 8.3.0
Source Code Documentation
xcom_interface.h File Reference
#include "xcom/site_struct.h"
#include "xcom/xcom_cache.h"

Go to the source code of this file.


void deliver_view_msg (site_def const *site)
 Deliver a view message. More...
void deliver_global_view_msg (site_def const *site, node_set const ns, synode_no message_id)
void deliver_to_app (pax_machine *pma, app_data_ptr app, delivery_status app_status)
 Delivers the app payload to XCom's upper layer, e.g. More...
void deliver_config (app_data_ptr a)
void deinit_xcom_interface ()

Function Documentation

◆ deinit_xcom_interface()

void deinit_xcom_interface ( )

◆ deliver_config()

void deliver_config ( app_data_ptr  a)

◆ deliver_global_view_msg()

void deliver_global_view_msg ( site_def const *  site,
node_set const  ns,
synode_no  message_id 

◆ deliver_to_app()

void deliver_to_app ( pax_machine pma,
app_data_ptr  app,
delivery_status  app_status 

Delivers the app payload to XCom's upper layer, e.g.


Please note the following contract regarding the parameter of this function: If app_status is delivery_ok, then it means that XCom reached consensus on app. In this situation, pma MUST point to the Paxos instance (pax_machine) where app got consensus on. In other words, pma MUST NOT be NULL.

In summary, this function is expected to be called as follows if a payload p reached consensus:

deliver_to_app(<pointer to pax_machine where p was decided>, p, delivery_ok)

This function is expected to be called as follows if a payload p did NOT reach consensus:

deliver_to_app(_, p, delivery_failure)

Where the pma argument may be a pointer to the pax_machine where p failed to get consensus, or NULL.

Failure do adhere to this contract will result in an assert failure, at least on non-release builds.

pmaThe Paxos instance where the app payload obtained consensus
appThe payload that was decided for the Paxos instance pma
app_statusThe reason for app delivery: delivery_ok if the app payload reached consensus on the pma Paxos instance, or delivery_failure if XCom was unable to reach consensus

◆ deliver_view_msg()

void deliver_view_msg ( site_def const *  site)

Deliver a view message.