ExScylla.SessionBuilder (ex_scylla v0.5.1)
Wrapper around rust module See rust documentation for more usage details: https://docs.rs/scylla/0.9.0/scylla/transport/session_builder/struct.SessionBuilder.html
Summary
Types
Link to this type
opaque()
@type opaque() :: any()
Functions
Link to this function
async_build(sb, opaque \\ {:build, make_ref()})
@spec async_build( ExScylla.Types.session_builder(), opaque() ) :: {:ok, opaque()} | {:error, any()}
Async version of build
, returns: {:ok, opaque} | {:error, any()}
Actual result
({:ok, T.session()} | {:error, NewSessionError.t()}
) is sent to the calling process:
Example
iex> node = Application.get_env(:ex_scylla, :test_node, "127.0.0.1:9042")
iex> sb = SessionBuilder.new()
...> |> SessionBuilder.known_node(node)
iex> {:ok, opaque} = SessionBuilder.async_build(sb)
iex> {:ok, session} = receive do
...> {^opaque, r} -> r
...> after
...> 5_000 -> :timeout
...> end
iex> true = is_reference(session)
Link to this function
auto_schema_agreement_timeout(sb, timeout_ms)
@spec auto_schema_agreement_timeout(ExScylla.Types.session_builder(), pos_integer()) :: ExScylla.Types.session_builder()
Example
iex> sb = SessionBuilder.new()
iex> sb = SessionBuilder.auto_schema_agreement_timeout(sb, 5_000)
iex> true = is_reference(sb)
Link to this function
build(sb, timeout_ms \\ 5000)
@spec build( ExScylla.Types.session_builder(), pos_integer() ) :: ({:ok, ExScylla.Types.session()} | {:error, ExScylla.Types.Errors.NewSessionError.t()}) | {:error, :timeout}
Sync version of build
Returns result ({:ok, T.session()} | {:error, NewSessionError.t()}
)
or {:error, :timeout}
after timeout_ms
.
Example
iex> node = Application.get_env(:ex_scylla, :test_node, "127.0.0.1:9042")
iex> sb = SessionBuilder.new()
...> |> SessionBuilder.known_node(node)
iex> {:ok, session} = SessionBuilder.build(sb)
iex> true = is_reference(session)
Link to this function
compression(sb, compression)
@spec compression( ExScylla.Types.session_builder(), ExScylla.Types.transport_compression() ) :: ExScylla.Types.session_builder()
Example
iex> sb = SessionBuilder.new()
iex> sb = SessionBuilder.compression(sb, :lz4)
iex> sb = SessionBuilder.compression(sb, :snappy)
iex> true = is_reference(sb)
Link to this function
connection_timeout(sb, timeout_ms)
@spec connection_timeout(ExScylla.Types.session_builder(), pos_integer()) :: ExScylla.Types.session_builder()
Example
iex> sb = SessionBuilder.new()
iex> sb = SessionBuilder.connection_timeout(sb, 5_000)
iex> true = is_reference(sb)
Link to this function
default_execution_profile_handle(sb, eph)
@spec default_execution_profile_handle( ExScylla.Types.session_builder(), ExScylla.Types.execution_profile_handle() ) :: ExScylla.Types.session_builder()
Example
iex> ep = ExecutionProfileBuilder.new()
...> |> ExecutionProfileBuilder.request_timeout(5_000)
...> |> ExecutionProfileBuilder.build()
iex> sb = SessionBuilder.new()
iex> sb = SessionBuilder.default_execution_profile_handle(sb, ExecutionProfile.into_handle(ep))
iex> true = is_reference(sb)
Link to this function
disallow_shard_aware_port(sb, disallow)
@spec disallow_shard_aware_port(ExScylla.Types.session_builder(), boolean()) :: ExScylla.Types.session_builder()
Example
iex> sb = SessionBuilder.new()
iex> sb = SessionBuilder.disallow_shard_aware_port(sb, true)
iex> true = is_reference(sb)
Link to this function
fetch_schema_metadata(sb, fetch)
@spec fetch_schema_metadata(ExScylla.Types.session_builder(), boolean()) :: ExScylla.Types.session_builder()
Example
iex> sb = SessionBuilder.new()
iex> sb = SessionBuilder.fetch_schema_metadata(sb, true)
iex> true = is_reference(sb)
Link to this function
keepalive_interval(sb, interval_ms)
@spec keepalive_interval(ExScylla.Types.session_builder(), pos_integer()) :: ExScylla.Types.session_builder()
Example
iex> sb = SessionBuilder.new()
iex> sb = SessionBuilder.keepalive_interval(sb, 5_000)
iex> true = is_reference(sb)
Link to this function
keepalive_timeout(sb, timeout_ms)
@spec keepalive_timeout(ExScylla.Types.session_builder(), pos_integer()) :: ExScylla.Types.session_builder()
Example
iex> sb = SessionBuilder.new()
iex> sb = SessionBuilder.keepalive_timeout(sb, 5_000)
iex> true = is_reference(sb)
Link to this function
keyspaces_to_fetch(sb, keyspaces)
@spec keyspaces_to_fetch( ExScylla.Types.session_builder(), [String.t()] ) :: ExScylla.Types.session_builder()
Example
iex> sb = SessionBuilder.new()
iex> sb = SessionBuilder.keyspaces_to_fetch(sb, ["my_keyspace"])
iex> true = is_reference(sb)
Link to this function
known_node(sb, hostname)
@spec known_node(ExScylla.Types.session_builder(), String.t()) :: ExScylla.Types.session_builder()
Example
iex> sb = SessionBuilder.new()
iex> sb = SessionBuilder.known_node(sb, "127.0.0.1:9042")
iex> true = is_reference(sb)
Link to this function
known_node_addr(sb, node_addr)
@spec known_node_addr( ExScylla.Types.session_builder(), {:inet.ip_address(), :inet.port_number()} ) :: ExScylla.Types.session_builder()
Example
iex> sb = SessionBuilder.new()
iex> sb = SessionBuilder.known_node_addr(sb, {{127,0,0,1}, 9042})
iex> true = is_reference(sb)
Link to this function
known_nodes(sb, hostnames)
@spec known_nodes( ExScylla.Types.session_builder(), [String.t()] ) :: ExScylla.Types.session_builder()
Example
iex> sb = SessionBuilder.new()
iex> sb = SessionBuilder.known_nodes(sb, ["127.0.0.1:9042", "127.0.0.2:9042"])
iex> true = is_reference(sb)
Link to this function
known_nodes_addr(sb, node_addrs)
@spec known_nodes_addr( ExScylla.Types.session_builder(), [{:inet.ip_address(), :inet.port_number()}] ) :: ExScylla.Types.session_builder()
Example
iex> sb = SessionBuilder.new()
iex> sb = SessionBuilder.known_nodes_addr(sb, [{{127,0,0,1}, 9042}, {{127,0,0,1}, 9042}])
iex> true = is_reference(sb)
Link to this function
new()
@spec new() :: ExScylla.Types.session_builder()
See: https://docs.rs/scylla/0.9.0/scylla/transport/session_builder/struct.SessionBuilder.html#method.new
Example
iex> sb = SessionBuilder.new()
iex> true = is_reference(sb)
Link to this function
no_auto_schema_agreement(sb)
@spec no_auto_schema_agreement(ExScylla.Types.session_builder()) :: ExScylla.Types.session_builder()
Example
iex> sb = SessionBuilder.new()
iex> sb = SessionBuilder.no_auto_schema_agreement(sb)
iex> true = is_reference(sb)
Link to this function
pool_size(sb, size)
@spec pool_size(ExScylla.Types.session_builder(), ExScylla.Types.pool_size()) :: ExScylla.Types.session_builder()
Example
iex> sb = SessionBuilder.new()
iex> sb = SessionBuilder.pool_size(sb, {:per_shard, 3})
iex> sb = SessionBuilder.pool_size(sb, {:per_host, 10})
iex> true = is_reference(sb)
Link to this function
refresh_metadata_on_auto_schema_agreement(sb, refresh_metadata)
@spec refresh_metadata_on_auto_schema_agreement( ExScylla.Types.session_builder(), boolean() ) :: ExScylla.Types.session_builder()
Example
iex> sb = SessionBuilder.new()
iex> sb = SessionBuilder.refresh_metadata_on_auto_schema_agreement(sb, true)
iex> true = is_reference(sb)
Link to this function
schema_agreement_interval(sb, interval_ms)
@spec schema_agreement_interval(ExScylla.Types.session_builder(), pos_integer()) :: ExScylla.Types.session_builder()
Example
iex> sb = SessionBuilder.new()
iex> interval_ms = 5_000
iex> sb = SessionBuilder.schema_agreement_interval(sb, interval_ms)
iex> true = is_reference(sb)
Link to this function
tcp_keepalive_interval(sb, interval_ms)
@spec tcp_keepalive_interval(ExScylla.Types.session_builder(), pos_integer()) :: ExScylla.Types.session_builder()
Example
iex> sb = SessionBuilder.new()
iex> interval_ms = 5_000
iex> sb = SessionBuilder.tcp_keepalive_interval(sb, interval_ms)
iex> true = is_reference(sb)
Link to this function
tcp_nodelay(sb, nodelay)
@spec tcp_nodelay(ExScylla.Types.session_builder(), boolean()) :: ExScylla.Types.session_builder()
Example
iex> sb = SessionBuilder.new()
iex> sb = SessionBuilder.tcp_nodelay(sb, true)
iex> true = is_reference(sb)
Link to this function
tracing_info_fetch_attempts(sb, attempts)
@spec tracing_info_fetch_attempts(ExScylla.Types.session_builder(), non_neg_integer()) :: ExScylla.Types.session_builder()
Example
iex> sb = SessionBuilder.new()
iex> sb = SessionBuilder.tracing_info_fetch_attempts(sb, 5)
iex> true = is_reference(sb)
Link to this function
tracing_info_fetch_consistency(sb, consistency)
@spec tracing_info_fetch_consistency( ExScylla.Types.session_builder(), ExScylla.Types.consistency() ) :: ExScylla.Types.session_builder()
Example
iex> sb = SessionBuilder.new()
iex> sb = SessionBuilder.tracing_info_fetch_consistency(sb, :quorum)
iex> true = is_reference(sb)
Link to this function
tracing_info_fetch_interval(sb, interval_ms)
@spec tracing_info_fetch_interval(ExScylla.Types.session_builder(), non_neg_integer()) :: ExScylla.Types.session_builder()
Example
iex> interval_ms = 15000
iex> sb = SessionBuilder.new()
iex> sb = SessionBuilder.tracing_info_fetch_interval(sb, interval_ms)
iex> true = is_reference(sb)
Link to this function
user(sb, username, passwd)
@spec user(ExScylla.Types.session_builder(), String.t(), String.t()) :: ExScylla.Types.session_builder()
See: https://docs.rs/scylla/0.9.0/scylla/transport/session_builder/struct.SessionBuilder.html#method.user
Example
iex> sb = SessionBuilder.new()
iex> {username, passwd} = {"user", "myS3cr3tp@ssw0rd"}
iex> sb = SessionBuilder.user(sb, username, passwd)
iex> true = is_reference(sb)
Link to this function
write_coalescing(sb, enable)
@spec write_coalescing(ExScylla.Types.session_builder(), boolean()) :: ExScylla.Types.session_builder()
Example
iex> sb = SessionBuilder.new()
iex> sb = SessionBuilder.write_coalescing(sb, true)
iex> true = is_reference(sb)