Skip to content

Resource Pooling

Amortizing expensive resource creation across multiple uses by maintaining a pool of reusable resources; trades memory for reduced setup/teardown overhead

Tension Addressed

Memory vs. Computation

Recognizable As

Connection pools, thread pools, object pools, buffer pools, worker pools

Canonical Sources

Gamma et al., "Design Patterns" (1994) - Object Pool pattern; Schmidt et al., "Pattern-Oriented Software Architecture Vol 2" (2000)

Transfers To

Any domain with expensive resource initialization - database connections, network sockets, processes

Sub-concepts: - Pool Sizing: Too small starves throughput; too large wastes resources and may overwhelm downstream systems - Pool Exhaustion: What happens when all resources are in use - block, fail fast, or create temporary resources