heliosdb_proxy/pool/mod.rs
1//! Connection Pooling Modes - HeliosProxy
2//!
3//! Implements three connection pooling modes for optimized backend connection sharing:
4//!
5//! - **Session Mode**: 1:1 client-to-backend mapping (current default behavior)
6//! - **Transaction Mode**: Return connection to pool after COMMIT/ROLLBACK
7//! - **Statement Mode**: Return connection after each statement (most aggressive)
8//!
9//! # Feature Flag
10//!
11//! This module requires the `pool-modes` feature flag.
12//!
13//! # Usage
14//!
15//! ```rust,ignore
16//! use heliosdb_proxy::pool::{PoolingMode, ConnectionPoolManager, PoolModeConfig};
17//!
18//! let config = PoolModeConfig {
19//! default_mode: PoolingMode::Transaction,
20//! max_pool_size: 100,
21//! ..Default::default()
22//! };
23//!
24//! let manager = ConnectionPoolManager::new(config);
25//! let lease = manager.acquire(client_id, &node).await?;
26//! // Use connection...
27//! manager.release(lease).await;
28//! ```
29
30pub mod backend_pool;
31pub mod config;
32pub mod hardening;
33pub mod lease;
34pub mod manager;
35pub mod metrics;
36pub mod mode;
37pub mod prepared;
38pub mod reset;
39pub mod session;
40pub mod statement;
41pub mod transaction;
42
43// Re-exports
44pub use backend_pool::{pool_key, BackendIdlePool};
45pub use config::PoolModeConfig;
46pub use hardening::{
47 ConnectionHealthValidator, HardeningStats, PoolExhaustionMonitor, PoolHardening,
48 StaleLeaseCleaner, TransactionLeakDetector,
49};
50pub use lease::{ConnectionLease, LeaseAction};
51pub use manager::ConnectionPoolManager;
52pub use metrics::PoolModeMetrics;
53pub use mode::{PoolingMode, PreparedStatementMode, TransactionEvent};
54pub use prepared::PreparedStatementTracker;
55pub use reset::ConnectionResetExecutor;
56pub use session::SessionModeHandler;
57pub use statement::StatementModeHandler;
58pub use transaction::TransactionModeHandler;