Seastar
High performance C++ framework for concurrent servers
Classes | Functions
rpc - remote procedure call framework

Detailed Description

rpc is a framework that can be used to define client-server communication protocols. For a high-level description of the RPC features see doc/rpc.md, doc/rpc-streaming.md and doc/rpc-compression.md

The entry point for setting up an rpc protocol is seastar::rpc::protocol.

Classes

struct  seastar::rpc::isolation_config
 Specifies resource isolation for a connection. More...
 
struct  seastar::rpc::resource_limits
 Resource limits for an RPC server. More...
 
struct  seastar::rpc::client_options
 
struct  seastar::rpc::server_options
 
class  seastar::rpc::protocol< Serializer, MsgType >
 
class  seastar::rpc::optional< T >
 
class  seastar::rpc::opt_time_point
 
class  seastar::rpc::sink< Out >
 
class  seastar::rpc::source< In >
 
class  seastar::rpc::tuple< T >
 

Functions

isolation_config seastar::rpc::default_isolate_connection (sstring isolation_cookie)
 

Class Documentation

◆ seastar::rpc::isolation_config

struct seastar::rpc::isolation_config
Class Members
scheduling_group sched_group

Specifies a scheduling group under which the connection (and all its verb handlers) will execute.

◆ seastar::rpc::resource_limits

struct seastar::rpc::resource_limits
Class Members
typedef function< future< isolation_config >(sstring isolation_cookie)> asyncronous_isolation_function
typedef variant< syncronous_isolation_function, asyncronous_isolation_function > isolation_function_alternatives
typedef function< isolation_config(sstring isolation_cookie)> syncronous_isolation_function

Configures isolation for a connection based on its isolation cookie. May throw, in which case the connection will be terminated.

Class Members
size_t basic_request_size Minimum request footprint in memory.
unsigned bloat_factor Serialized size multiplied by this to estimate memory used by request.
isolation_function_alternatives isolate_connection
size_t max_memory

Maximum amount of memory that may be consumed by all requests

◆ seastar::rpc::client_options

struct seastar::rpc::client_options
Class Members
factory * compressor_factory
sstring isolation_cookie

Configures how this connection is isolated from other connection on the same server.

See also
resource_limits::isolate_connection
optional< tcp_keepalive_params > keepalive
sstring metrics_domain
bool reuseaddr
bool send_timeout_data
connection_id stream_parent
bool tcp_nodelay

◆ seastar::rpc::server_options

struct seastar::rpc::server_options
Class Members
factory * compressor_factory
function< bool(const socket_address &)> filter_connection
load_balancing_algorithm load_balancing_algorithm
optional< streaming_domain_type > streaming_domain
bool tcp_nodelay

Function Documentation

◆ default_isolate_connection()

isolation_config seastar::rpc::default_isolate_connection ( sstring  isolation_cookie)

Default isolation configuration - run everything in the default scheduling group.

In the scheduling_group that the protocol::server was created in.