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

Functions

Types

@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()}

See: https://docs.rs/scylla/0.9.0/scylla/transport/session_builder/struct.SessionBuilder.html#method.build

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()

See: https://docs.rs/scylla/0.9.0/scylla/transport/session_builder/struct.SessionBuilder.html#method.auto_schema_agreement_timeout

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}

See: https://docs.rs/scylla/0.9.0/scylla/transport/session_builder/struct.SessionBuilder.html#method.build

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)

See: https://docs.rs/scylla/0.9.0/scylla/transport/session_builder/struct.SessionBuilder.html#method.compression

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)

See: https://docs.rs/scylla/0.9.0/scylla/transport/session_builder/struct.SessionBuilder.html#method.connection_timeout

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)

See: https://docs.rs/scylla/0.9.0/scylla/transport/session_builder/struct.SessionBuilder.html#method.default_execution_profile_handle

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()

See: https://docs.rs/scylla/0.9.0/scylla/transport/session_builder/struct.SessionBuilder.html#method.disallow_shard_aware_port

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)

See: https://docs.rs/scylla/0.9.0/scylla/transport/session_builder/struct.SessionBuilder.html#method.fetch_schema_metadata

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)

See: https://docs.rs/scylla/0.9.0/scylla/transport/session_builder/struct.SessionBuilder.html#method.keepalive_interval

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)

See: https://docs.rs/scylla/0.9.0/scylla/transport/session_builder/struct.SessionBuilder.html#method.keepalive_timeout

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)

See: https://docs.rs/scylla/0.9.0/scylla/transport/session_builder/struct.SessionBuilder.html#method.keyspaces_to_fetch

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)

See: https://docs.rs/scylla/0.9.0/scylla/transport/session_builder/struct.SessionBuilder.html#method.known_node

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)

See: https://docs.rs/scylla/0.9.0/scylla/transport/session_builder/struct.SessionBuilder.html#method.known_node_addr

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)

See: https://docs.rs/scylla/0.9.0/scylla/transport/session_builder/struct.SessionBuilder.html#method.known_nodes

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)

See: https://docs.rs/scylla/0.9.0/scylla/transport/session_builder/struct.SessionBuilder.html#method.known_nodes_addr

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)

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()

See: https://docs.rs/scylla/0.9.0/scylla/transport/session_builder/struct.SessionBuilder.html#method.no_auto_schema_agreement

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)

See: https://docs.rs/scylla/0.9.0/scylla/transport/session_builder/struct.SessionBuilder.html#method.pool_size

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()

See: https://docs.rs/scylla/0.9.0/scylla/transport/session_builder/struct.SessionBuilder.html#method.refresh_metadata_on_auto_schema_agreement

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)

See: https://docs.rs/scylla/0.9.0/scylla/transport/session_builder/struct.SessionBuilder.html#method.schema_agreement_interval

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)

See: https://docs.rs/scylla/0.9.0/scylla/transport/session_builder/struct.SessionBuilder.html#method.tcp_keepalive_interval

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)

See: https://docs.rs/scylla/0.9.0/scylla/transport/session_builder/struct.SessionBuilder.html#method.tcp_nodelay

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)

See: https://docs.rs/scylla/0.9.0/scylla/transport/session_builder/struct.SessionBuilder.html#method.tracing_info_fetch_attempts

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)

See: https://docs.rs/scylla/0.9.0/scylla/transport/session_builder/struct.SessionBuilder.html#method.tracing_info_fetch_consistency

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)

See: https://docs.rs/scylla/0.9.0/scylla/transport/session_builder/struct.SessionBuilder.html#method.tracing_info_fetch_interval

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)

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)

See: https://docs.rs/scylla/0.9.0/scylla/transport/session_builder/struct.SessionBuilder.html#method.write_coalescing

Example

iex> sb = SessionBuilder.new()
iex> sb = SessionBuilder.write_coalescing(sb, true)
iex> true = is_reference(sb)