MySQL 8.4.0
Source Code Documentation
routing.h File Reference
#include "mysqlrouter/base_protocol.h"
#include "mysqlrouter/mysql_session.h"
#include <chrono>
#include <map>
#include <string>

Go to the source code of this file.

Namespaces

namespace  routing
 

Typedefs

using routing::Mode = RoutingMode
 

Enumerations

enum class  routing::RoutingBootstrapSectionType {
  routing::kClassicRw , routing::kClassicRo , routing::kXRw , routing::kXRo ,
  routing::kRwSplit
}
 
enum class  routing::RoutingMode { routing::kUndefined = 0 , routing::kReadWrite = 1 , routing::kReadOnly = 2 }
 Modes supported by Routing plugin. More...
 
enum class  routing::AccessMode { routing::kUndefined = 0 , routing::kAuto = 1 }
 
enum class  routing::RoutingStrategy {
  routing::kUndefined = 0 , routing::kFirstAvailable = 1 , routing::kNextAvailable = 2 , routing::kRoundRobin = 3 ,
  routing::kRoundRobinWithFallback = 4
}
 Routing strategies supported by Routing plugin. More...
 

Functions

std::string routing::get_access_mode_names ()
 Get comma separated list of all access mode names. More...
 
AccessMode routing::get_access_mode (const std::string &value)
 Returns AccessMode for its literal representation. More...
 
std::string routing::get_access_mode_name (AccessMode access_mode) noexcept
 Returns literal name of given access mode. More...
 
std::string routing::get_routing_strategy_names (bool metadata_cache)
 Get comma separated list of all routing stategy names for a given routing type (metadata cache or static) More...
 
RoutingStrategy routing::get_routing_strategy (const std::string &value)
 Returns RoutingStrategy for its literal representation. More...
 
std::string routing::get_routing_strategy_name (RoutingStrategy routing_strategy) noexcept
 Returns literal name of given routing strategy. More...
 
RoutingBootstrapSectionType routing::get_section_type_from_routing_name (const std::string &name)
 
BaseProtocol::Type routing::get_default_protocol (RoutingBootstrapSectionType section_type)
 
uint16_t routing::get_default_port (RoutingBootstrapSectionType section_type)
 
RoutingStrategy routing::get_default_routing_strategy (RoutingBootstrapSectionType section_type)
 
std::string routing::get_destinations_role (RoutingBootstrapSectionType section_type)
 
std::string routing::get_default_routing_name (RoutingBootstrapSectionType section_type)
 
AccessMode routing::get_default_access_mode (RoutingBootstrapSectionType section_type)
 
bool routing::get_default_connection_sharing (RoutingBootstrapSectionType section_type)
 
bool routing::get_default_router_require_enforce (RoutingBootstrapSectionType section_type)
 

Variables

constexpr int routing::kDefaultWaitTimeout {0}
 Timeout for idling clients (in seconds). More...
 
constexpr int routing::kDefaultMaxConnections {0}
 Max number of active routes for this routing instance. More...
 
constexpr std::chrono::seconds routing::kDefaultDestinationConnectionTimeout
 Timeout connecting to destination (in seconds). More...
 
constexpr unsigned long long routing::kDefaultMaxConnectErrors {100}
 Maximum connect or handshake errors per host. More...
 
constexpr std::string_view routing::kDefaultBindAddress {"127.0.0.1"}
 Default bind address used when no bind address is configured. More...
 
constexpr std::string_view routing::kDefaultBindAddressBootstrap {"0.0.0.0"}
 Default bind address written to the config file during bootstrap. More...
 
constexpr unsigned int routing::kDefaultNetBufferLength {16384}
 Default net buffer length. More...
 
constexpr std::chrono::seconds routing::kDefaultClientConnectTimeout {9}
 Timeout waiting for handshake response from client. More...
 
constexpr std::chrono::milliseconds routing::kDefaultConnectionSharingDelay {1000}
 delay in milliseconds before an idling connection may be moved to the pool when connection sharing is allowed. More...
 
constexpr std::chrono::seconds routing::kDefaultUnreachableDestinationRefreshInterval {1}
 The number of seconds that MySQL Router waits between checking for reachability of an unreachable destination. More...
 
constexpr bool routing::kDefaultSslSessionCacheMode {true}
 Default SSL session cache mode. More...
 
constexpr unsigned int routing::kDefaultSslSessionCacheSize {1024}
 Default SSL session cache size. More...
 
constexpr std::chrono::seconds routing::kDefaultSslSessionCacheTimeout {300}
 Default SSL session cache timeout. More...
 
constexpr std::chrono::seconds routing::kDefaultConnectRetryTimeout {7}
 Default Connect Retry timeout. More...
 
constexpr bool routing::kDefaultWaitForMyWrites {true}
 Default Wait For My Writes timeout. More...
 
constexpr std::chrono::seconds routing::kDefaultWaitForMyWritesTimeout {2}
 Default Wait For My Writes timeout. More...
 
constexpr std::string_view routing::kDefaultClientSslMode {""}
 Default client SSL mode used when none is configured. More...
 
constexpr std::string_view routing::kDefaultClientSslModeBootstrap {"PREFERRED"}
 Default client SSL mode written to the configuration file on bootstrap. More...
 
constexpr std::string_view routing::kDefaultClientSslCipherBootstrap {""}
 Default client SSL cipher written to the configuration file on bootstrap. More...
 
constexpr std::string_view routing::kDefaultClientSslCurvesBootstrap {""}
 Default client SSL curves written to the configuration file on bootstrap. More...
 
constexpr std::string_view routing::kDefaultClientSslDhParamsBootstrap {""}
 Default client SSL DH params written to the configuration file on bootstrap. More...
 
constexpr std::string_view routing::kDefaultServerSslMode {"AS_CLIENT"}
 Default server SSL mode used when none is configured. More...
 
constexpr std::string_view routing::kDefaultServerSslModeBootstrap {"PREFERRED"}
 Default client SSL mode written to the configuration file on bootstrap. More...
 
constexpr std::string_view routing::kDefaultServerSslVerify {"DISABLED"}
 Default server SSL verify. More...
 
constexpr std::string_view routing::kDefaultServerSslCipherBootstrap {""}
 Default server SSL cipher written to the configuration file on bootstrap. More...
 
constexpr std::string_view routing::kDefaultServerSslCurvesBootstrap {""}
 Default server SSL curves written to the configuration file on bootstrap. More...
 
constexpr std::string_view routing::kDefaultServerSslCaBootstrap {""}
 Default server SSL CA written to the configuration file on bootstrap. More...
 
constexpr std::string_view routing::kDefaultServerSslCaPathBootstrap {""}
 Default server SSL CA path written to the configuration file on bootstrap. More...
 
constexpr std::string_view routing::kDefaultServerSslCrlFileBootstrap {""}
 Default server SSL CRL file written to the configuration file on bootstrap. More...
 
constexpr std::string_view routing::kDefaultServerSslCrlPathBootstrap {""}
 Default server SSL CRL path written to the configuration file on bootstrap. More...
 
constexpr bool routing::kDefaultConnectionSharing {false}
 Default connection sharing status. More...
 
constexpr uint64_t routing::kDefaultMaxTotalConnections {512}
 Default maximum total connections handled by all the routing endpoints. More...
 
constexpr bool routing::kDefaultRequireEnforce {true}
 Default for the configuration option determining if the Router enforces the router_require attribute of the user. More...
 
constexpr uint16_t routing::kDefaultPortClassicRw {6446}
 
constexpr uint16_t routing::kDefaultPortClassicRo {6447}
 
constexpr uint16_t routing::kDefaultPortXRw {6448}
 
constexpr uint16_t routing::kDefaultPortXRo {6449}
 
constexpr uint16_t routing::kDefaultPortRwSplit {6450}
 
constexpr std::string_view routing::kDefaultNamedSocket {""}
 
constexpr std::string_view routing::kDefaultClassicRwSectionName {"bootstrap_rw"}
 
constexpr std::string_view routing::kDefaultClassicRoSectionName {"bootstrap_ro"}
 
constexpr std::string_view routing::kDefaultXRwSectionName {"bootstrap_x_rw"}
 
constexpr std::string_view routing::kDefaultXRoSectionName {"bootstrap_x_ro"}
 
constexpr std::string_view routing::kDefaultRwSplitSectionName {"bootstrap_rw_split"}