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 config;
31pub mod hardening;
32pub mod lease;
33pub mod manager;
34pub mod metrics;
35pub mod mode;
36pub mod prepared;
37pub mod reset;
38pub mod session;
39pub mod statement;
40pub mod transaction;
41
42// Re-exports
43pub use config::PoolModeConfig;
44pub use hardening::{
45 PoolHardening, TransactionLeakDetector, ConnectionHealthValidator,
46 StaleLeaseCleaner, PoolExhaustionMonitor, HardeningStats,
47};
48pub use lease::{ConnectionLease, LeaseAction};
49pub use manager::ConnectionPoolManager;
50pub use metrics::PoolModeMetrics;
51pub use mode::{PoolingMode, PreparedStatementMode, TransactionEvent};
52pub use prepared::PreparedStatementTracker;
53pub use reset::ConnectionResetExecutor;
54pub use session::SessionModeHandler;
55pub use statement::StatementModeHandler;
56pub use transaction::TransactionModeHandler;