ExScylla. SessionBuilder
(ex_scylla v0.10.2)
Copy Markdown
Wrapper around rust module See rust documentation for more usage details: https://docs.rs/scylla/1.8.0/scylla/client/session_builder/struct.GenericSessionBuilder.html
Summary
Types
@type opaque() :: any()
Functions
@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} ->
...> case r do
...> {:ok, %ExScylla.Types.QueryResult{} = res} -> {:ok, ExScylla.Types.QueryResult.decode(res)}
...> other -> other
...> end
...> after
...> 5_000 -> :timeout
...> end
iex> true = is_reference(session)
@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)
@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)
@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)
@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)
@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)
@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)
@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)
@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)
@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)
@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)
@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)
@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)
@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)
@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)
@spec new() :: ExScylla.Types.session_builder()
Example
iex> sb = SessionBuilder.new()
iex> true = is_reference(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)
@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)
@spec prefer_datacenter(ExScylla.Types.session_builder(), String.t()) :: ExScylla.Types.session_builder()
Example
iex> sb = SessionBuilder.new()
iex> sb = SessionBuilder.prefer_datacenter(sb, "datacenter1")
iex> true = is_reference(sb)
@spec prefer_datacenter_and_rack( ExScylla.Types.session_builder(), String.t(), String.t() ) :: ExScylla.Types.session_builder()
Example
iex> sb = SessionBuilder.new()
iex> sb = SessionBuilder.prefer_datacenter_and_rack(sb, "datacenter1", "rack1")
iex> true = is_reference(sb)
@spec prefer_no_datacenter(ExScylla.Types.session_builder()) :: ExScylla.Types.session_builder()
Example
iex> sb = SessionBuilder.new()
iex> sb = SessionBuilder.prefer_no_datacenter(sb)
iex> true = is_reference(sb)
@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)
@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)
@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)
@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)
@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)
@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)
@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)
@spec user(ExScylla.Types.session_builder(), String.t(), String.t()) :: ExScylla.Types.session_builder()
Example
iex> sb = SessionBuilder.new()
iex> {username, passwd} = {"user", "myS3cr3tp@ssw0rd"}
iex> sb = SessionBuilder.user(sb, username, passwd)
iex> true = is_reference(sb)
@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)