You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Add client-instance pooling and isolated execution scopes, matching the existing implementation in Java, Python, Node, and Go (valkey-io/valkey-glide#6338). The pool/scope logic lives in the Rust core (glide-core/src/pool.rs, scope.rs) and FFI layer (ffi/src/pool_ffi.rs). This task covers the language binding, tests, and documentation.
Client-Instance Pool: Bounded pool of reusable connections with LIFO reuse, background warmup, connectivity probe on create, state reset on release (DISCARD + SELECT), and configurable acquire timeout.
Isolated Execution Scopes: Dedicated per-connection state for WATCH/MULTI/EXEC with cluster slot pinning, cross-slot rejection, compression/timeout inheritance from parent client, and zero-cost release when state is clean.
Checklist
Add ClientPool class with create/acquire/release/borrow/close/metrics API
Add PoolConfig class (max_size, min_idle, idle_timeout, request_timeout, acquire_timeout)
Add IsolatedScope class with command dispatch via FFI send_scope_command
Description
Add client-instance pooling and isolated execution scopes, matching the existing implementation in Java, Python, Node, and Go (valkey-io/valkey-glide#6338). The pool/scope logic lives in the Rust core (
glide-core/src/pool.rs,scope.rs) and FFI layer (ffi/src/pool_ffi.rs). This task covers the language binding, tests, and documentation.Client-Instance Pool: Bounded pool of reusable connections with LIFO reuse, background warmup, connectivity probe on create, state reset on release (DISCARD + SELECT), and configurable acquire timeout.
Isolated Execution Scopes: Dedicated per-connection state for WATCH/MULTI/EXEC with cluster slot pinning, cross-slot rejection, compression/timeout inheritance from parent client, and zero-cost release when state is clean.
Checklist
ClientPoolclass with create/acquire/release/borrow/close/metrics APIPoolConfigclass (max_size, min_idle, idle_timeout, request_timeout, acquire_timeout)IsolatedScopeclass with command dispatch via FFIsend_scope_commandlibglide_ffi(pool_create, try_acquire, acquire_blocking, release, destroy, scope_try_acquire, scope_execute, scope_release)Related
docs/pooling-and-scopes.mdin valkey-glide