Skip to main content

Pool

Struct Pool 

Source
pub struct Pool { /* private fields */ }
Expand description

Thread-safe connection pool for VoltDB.

§Thread Safety

Pool is designed for high concurrency:

  • Pool lock only guards metadata (microseconds)
  • Each connection has its own lock for I/O
  • Network I/O never blocks other threads from getting connections

§Example

use voltdb_client_rust::{Pool, PoolConfig, Opts, IpPort};

let hosts = vec![IpPort::new("localhost".to_string(), 21212)];
let config = PoolConfig::new().size(5);
let pool = Pool::with_config(Opts::new(hosts), config)?;

let mut conn = pool.get_conn()?;
let table = conn.query("SELECT * FROM foo")?;

Implementations§

Source§

impl Pool

Source

pub fn new<T: Into<Opts>>(opts: T) -> Result<Pool, VoltError>

Create a new pool with default configuration (10 connections).

Source

pub fn new_manual<T: Into<Opts>>( size: usize, opts: T, ) -> Result<Pool, VoltError>

Create a new pool with custom size (convenience method).

Source

pub fn with_config<T: Into<Opts>>( opts: T, config: PoolConfig, ) -> Result<Pool, VoltError>

Create a new pool with full configuration.

Source

pub fn get_conn(&self) -> Result<PooledConn<'_>, VoltError>

Get a connection from the pool.

§Errors
  • PoolError::PoolShutdown if pool is shutting down
  • PoolError::PoolExhausted if no healthy connections (FailFast policy)
  • PoolError::Timeout if wait times out (Block policy)
Source

pub fn shutdown(&self)

Initiate graceful shutdown.

This method:

  1. Stops accepting new connections
  2. Closes all connections

Note: Since VoltDB connections are shared (multiple threads can use the same connection concurrently), we don’t track “active” connections. Shutdown simply prevents new checkouts and clears the connections.

Source

pub fn is_shutdown(&self) -> bool

Check if pool is shut down.

Source

pub fn stats(&self) -> PoolStats

Get current pool statistics.

Trait Implementations§

Source§

impl Debug for Pool

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more

Auto Trait Implementations§

§

impl !Freeze for Pool

§

impl RefUnwindSafe for Pool

§

impl Send for Pool

§

impl Sync for Pool

§

impl Unpin for Pool

§

impl UnwindSafe for Pool

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more