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