Format readwritesplit source code
Formatted all files with Astyle.
This commit is contained in:
@ -419,7 +419,7 @@ json_t* RWSplit::diagnostics_json() const
|
|||||||
uint64_t RWSplit::getCapabilities()
|
uint64_t RWSplit::getCapabilities()
|
||||||
{
|
{
|
||||||
return RCAP_TYPE_STMT_INPUT | RCAP_TYPE_TRANSACTION_TRACKING |
|
return RCAP_TYPE_STMT_INPUT | RCAP_TYPE_TRANSACTION_TRACKING |
|
||||||
RCAP_TYPE_PACKET_OUTPUT | RCAP_TYPE_SESSION_STATE_TRACKING;
|
RCAP_TYPE_PACKET_OUTPUT | RCAP_TYPE_SESSION_STATE_TRACKING;
|
||||||
}
|
}
|
||||||
|
|
||||||
MXS_BEGIN_DECLS
|
MXS_BEGIN_DECLS
|
||||||
|
|||||||
@ -108,7 +108,7 @@ bool RWBackend::reply_is_complete(GWBUF *buffer)
|
|||||||
{
|
{
|
||||||
// This is an OK packet and more results will follow
|
// This is an OK packet and more results will follow
|
||||||
ss_dassert(mxs_mysql_is_ok_packet(buffer) &&
|
ss_dassert(mxs_mysql_is_ok_packet(buffer) &&
|
||||||
mxs_mysql_more_results_after_ok(buffer));
|
mxs_mysql_more_results_after_ok(buffer));
|
||||||
|
|
||||||
if (have_next_packet(buffer))
|
if (have_next_packet(buffer))
|
||||||
{
|
{
|
||||||
|
|||||||
@ -441,8 +441,8 @@ bool RWSplitSession::route_session_write(GWBUF *querybuf, uint8_t command, uint3
|
|||||||
static inline bool rpl_lag_is_ok(SRWBackend& backend, int max_rlag)
|
static inline bool rpl_lag_is_ok(SRWBackend& backend, int max_rlag)
|
||||||
{
|
{
|
||||||
return max_rlag == MAX_RLAG_UNDEFINED ||
|
return max_rlag == MAX_RLAG_UNDEFINED ||
|
||||||
(backend->server()->rlag != MAX_RLAG_NOT_AVAILABLE &&
|
(backend->server()->rlag != MAX_RLAG_NOT_AVAILABLE &&
|
||||||
backend->server()->rlag <= max_rlag);
|
backend->server()->rlag <= max_rlag);
|
||||||
}
|
}
|
||||||
|
|
||||||
SRWBackend RWSplitSession::get_hinted_backend(char *name)
|
SRWBackend RWSplitSession::get_hinted_backend(char *name)
|
||||||
@ -680,7 +680,7 @@ SRWBackend RWSplitSession::handle_hinted_target(GWBUF *querybuf, route_target_t
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Handle slave target type
|
* Handle slave target type
|
||||||
*
|
*
|
||||||
* @param cmd Command being executed
|
* @param cmd Command being executed
|
||||||
* @param stmt_id Prepared statement ID
|
* @param stmt_id Prepared statement ID
|
||||||
@ -730,13 +730,14 @@ SRWBackend RWSplitSession::handle_slave_is_target(uint8_t cmd, uint32_t stmt_id)
|
|||||||
* @brief Log master write failure
|
* @brief Log master write failure
|
||||||
*/
|
*/
|
||||||
void RWSplitSession::log_master_routing_failure(bool found,
|
void RWSplitSession::log_master_routing_failure(bool found,
|
||||||
SRWBackend& old_master,
|
SRWBackend& old_master,
|
||||||
SRWBackend& curr_master)
|
SRWBackend& curr_master)
|
||||||
{
|
{
|
||||||
/** Both backends should either be empty, not connected or the DCB should
|
/** Both backends should either be empty, not connected or the DCB should
|
||||||
* be a backend (the last check is slightly redundant). */
|
* be a backend (the last check is slightly redundant). */
|
||||||
ss_dassert(!old_master || !old_master->in_use() || old_master->dcb()->dcb_role == DCB_ROLE_BACKEND_HANDLER);
|
ss_dassert(!old_master || !old_master->in_use() || old_master->dcb()->dcb_role == DCB_ROLE_BACKEND_HANDLER);
|
||||||
ss_dassert(!curr_master || !curr_master->in_use()|| curr_master->dcb()->dcb_role == DCB_ROLE_BACKEND_HANDLER);
|
ss_dassert(!curr_master || !curr_master->in_use() ||
|
||||||
|
curr_master->dcb()->dcb_role == DCB_ROLE_BACKEND_HANDLER);
|
||||||
char errmsg[MAX_SERVER_ADDRESS_LEN * 2 + 100]; // Extra space for error message
|
char errmsg[MAX_SERVER_ADDRESS_LEN * 2 + 100]; // Extra space for error message
|
||||||
|
|
||||||
if (!found)
|
if (!found)
|
||||||
@ -783,12 +784,12 @@ void RWSplitSession::log_master_routing_failure(bool found,
|
|||||||
bool RWSplitSession::should_replace_master(SRWBackend& target)
|
bool RWSplitSession::should_replace_master(SRWBackend& target)
|
||||||
{
|
{
|
||||||
return m_config.master_reconnection &&
|
return m_config.master_reconnection &&
|
||||||
// We have a target server and it's not the current master
|
// We have a target server and it's not the current master
|
||||||
target && target != m_current_master &&
|
target && target != m_current_master &&
|
||||||
// We are not inside a transaction (also checks for autocommit=1)
|
// We are not inside a transaction (also checks for autocommit=1)
|
||||||
!session_trx_is_active(m_client->session) &&
|
!session_trx_is_active(m_client->session) &&
|
||||||
// We are not locked to the old master
|
// We are not locked to the old master
|
||||||
!is_locked_to_master();
|
!is_locked_to_master();
|
||||||
}
|
}
|
||||||
|
|
||||||
void RWSplitSession::replace_master(SRWBackend& target)
|
void RWSplitSession::replace_master(SRWBackend& target)
|
||||||
@ -885,13 +886,13 @@ GWBUF* RWSplitSession::add_prefix_wait_gtid(SERVER *server, GWBUF *origin)
|
|||||||
|
|
||||||
GWBUF* rval = origin;
|
GWBUF* rval = origin;
|
||||||
const char* wait_func = (server->server_type == SERVER_TYPE_MARIADB) ?
|
const char* wait_func = (server->server_type == SERVER_TYPE_MARIADB) ?
|
||||||
MARIADB_WAIT_GTID_FUNC : MYSQL_WAIT_GTID_FUNC;
|
MARIADB_WAIT_GTID_FUNC : MYSQL_WAIT_GTID_FUNC;
|
||||||
const char *gtid_wait_timeout = m_router->config().causal_read_timeout.c_str();
|
const char *gtid_wait_timeout = m_router->config().causal_read_timeout.c_str();
|
||||||
const char *gtid_position = m_gtid_pos.c_str();
|
const char *gtid_position = m_gtid_pos.c_str();
|
||||||
|
|
||||||
/* Create a new buffer to store prefix sql */
|
/* Create a new buffer to store prefix sql */
|
||||||
size_t prefix_len = strlen(gtid_wait_stmt) + strlen(gtid_position) +
|
size_t prefix_len = strlen(gtid_wait_stmt) + strlen(gtid_position) +
|
||||||
strlen(gtid_wait_timeout) + strlen(wait_func);
|
strlen(gtid_wait_timeout) + strlen(wait_func);
|
||||||
|
|
||||||
// Only do the replacement if it fits into one packet
|
// Only do the replacement if it fits into one packet
|
||||||
if (gwbuf_length(origin) + prefix_len < GW_MYSQL_MAX_PACKET_LEN + MYSQL_HEADER_LEN)
|
if (gwbuf_length(origin) + prefix_len < GW_MYSQL_MAX_PACKET_LEN + MYSQL_HEADER_LEN)
|
||||||
|
|||||||
@ -340,11 +340,11 @@ void RWSplitSession::correct_packet_sequence(GWBUF *buffer)
|
|||||||
{
|
{
|
||||||
while (gwbuf_copy_data(buffer, offset, 3, header) == 3)
|
while (gwbuf_copy_data(buffer, offset, 3, header) == 3)
|
||||||
{
|
{
|
||||||
packet_len = MYSQL_GET_PAYLOAD_LEN(header) + MYSQL_HEADER_LEN;
|
packet_len = MYSQL_GET_PAYLOAD_LEN(header) + MYSQL_HEADER_LEN;
|
||||||
uint8_t *seq = gwbuf_byte_pointer(buffer, offset + MYSQL_SEQ_OFFSET);
|
uint8_t *seq = gwbuf_byte_pointer(buffer, offset + MYSQL_SEQ_OFFSET);
|
||||||
*seq = m_next_seq;
|
*seq = m_next_seq;
|
||||||
m_next_seq++;
|
m_next_seq++;
|
||||||
offset += packet_len;
|
offset += packet_len;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -577,7 +577,7 @@ void RWSplitSession::handleError(GWBUF *errmsgbuf, DCB *problem_dcb,
|
|||||||
{
|
{
|
||||||
ss_dassert(backend);
|
ss_dassert(backend);
|
||||||
MXS_ERROR("Server %s (%s) lost the master status while waiting"
|
MXS_ERROR("Server %s (%s) lost the master status while waiting"
|
||||||
" for a result. Client sessions will be closed.",
|
" for a result. Client sessions will be closed.",
|
||||||
backend->name(), backend->uri());
|
backend->name(), backend->uri());
|
||||||
backend->server()->master_err_is_logged = true;
|
backend->server()->master_err_is_logged = true;
|
||||||
}
|
}
|
||||||
@ -595,7 +595,7 @@ void RWSplitSession::handleError(GWBUF *errmsgbuf, DCB *problem_dcb,
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
if (m_target_node && m_target_node == backend &&
|
if (m_target_node && m_target_node == backend &&
|
||||||
session_trx_is_read_only(problem_dcb->session))
|
session_trx_is_read_only(problem_dcb->session))
|
||||||
{
|
{
|
||||||
/**
|
/**
|
||||||
* We were locked to a single node but the node died. Currently
|
* We were locked to a single node but the node died. Currently
|
||||||
@ -719,10 +719,10 @@ bool RWSplitSession::handle_error_new_connection(DCB *backend_dcb, GWBUF *errmsg
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
succp = m_router->select_connect_backend_servers(ses, m_backends,
|
succp = m_router->select_connect_backend_servers(ses, m_backends,
|
||||||
m_current_master,
|
m_current_master,
|
||||||
&m_sescmd_list,
|
&m_sescmd_list,
|
||||||
&m_expected_responses,
|
&m_expected_responses,
|
||||||
connection_type::SLAVE);
|
connection_type::SLAVE);
|
||||||
}
|
}
|
||||||
|
|
||||||
return succp;
|
return succp;
|
||||||
|
|||||||
@ -123,7 +123,7 @@ public:
|
|||||||
ClientHandleMap m_ps_handles; /**< Client PS handle to internal ID mapping */
|
ClientHandleMap m_ps_handles; /**< Client PS handle to internal ID mapping */
|
||||||
ExecMap m_exec_map; /**< Map of COM_STMT_EXECUTE statement IDs to Backends */
|
ExecMap m_exec_map; /**< Map of COM_STMT_EXECUTE statement IDs to Backends */
|
||||||
std::string m_gtid_pos; /**< Gtid position for causal read */
|
std::string m_gtid_pos; /**< Gtid position for causal read */
|
||||||
wait_gtid_state_t m_wait_gtid_state; /**< Determine boundray of wait gtid result and client query result */
|
wait_gtid_state_t m_wait_gtid_state; /**< Determine boundary of generated query result */
|
||||||
uint32_t m_next_seq; /**< Next packet's sequence number */
|
uint32_t m_next_seq; /**< Next packet's sequence number */
|
||||||
mxs::QueryClassifier m_qc; /**< The query classifier. */
|
mxs::QueryClassifier m_qc; /**< The query classifier. */
|
||||||
uint64_t m_retry_duration; /**< Total time spent retrying queries */
|
uint64_t m_retry_duration; /**< Total time spent retrying queries */
|
||||||
|
|||||||
Reference in New Issue
Block a user