🏊
Data & Persistence

Connection Pooling with HikariCP

Performance-Critical Config
💡 Connection pooling ek TAXI STAND hai — HAR CUSTOMER (request) ke liye NAYI CAR (database connection) MANUFACTURE karne ke bajaye (EXTREMELY SLOW), EK SET of READY TAXIS (pool) STAND par WAIT kar rahi hain — CUSTOMER AATA hai, EK TAXI LETA hai, KAAM khatam hone par TAXI WAAPAS POOL mein AA jaati hai.

Database CONNECTION establish karna EXPENSIVE OPERATION hai — NETWORK HANDSHAKE, AUTHENTICATION, SESSION SETUP — SAB, HAR SINGLE REQUEST ke liye REPEAT karna, SEVERELY SLOW hoga. CONNECTION POOLING is PROBLEM ko SOLVE karta hai — EK SET of PRE-ESTABLISHED connections MAINTAIN kiye jaate hain, JO REUSE hote hain.

Spring Boot 2.x+ mein, HikariCP DEFAULT connection pool hai — BENCHMARKS mein, OTHER pools (Apache DBCP2, C3P0) se CONSISTENTLY FASTER aur LESS OVERHEAD wala PAAYA GAYA hai. spring-boot-starter-data-jpa mein YE AUTOMATICALLY INCLUDED hai, KOI EXTRA DEPENDENCY nahi chahiye.

# application.properties — HikariCP tuning:
spring.datasource.hikari.maximum-pool-size=10
spring.datasource.hikari.minimum-idle=5
spring.datasource.hikari.connection-timeout=30000
spring.datasource.hikari.idle-timeout=600000
spring.datasource.hikari.max-lifetime=1800000

# COMMON formula pool size ke liye:
# connections = (CPU cores * 2) + effective_spindle_count
🏊
Connection pooling ek TAXI STAND hai — HAR CUSTOMER (request) ke liye NAYI CAR (database connection) MANUFACTURE karne ke bajaye (EXTREMELY SLOW), EK SET of READY TAXIS (pool) STAND par WAIT kar rahi hain — CUSTOMER AATA hai, EK TAXI LETA hai, KAAM khatam hone par TAXI WAAPAS POOL mein AA jaati hai.
1 / 6
⚡ Quick Recap
  • Connection pooling = pre-established connections REUSE, NAYA connection NAHI banaते HAR baar
  • HikariCP = Spring Boot 2.x+ DEFAULT, FASTEST benchmarked pool
  • Pool size TUNING — bahut CHHOTA (waiting) ya bahut BADA (database overwhelm) DONO PROBLEMATIC
On this page (2 subtopics)

Spring Boot 2.x+ mein, HikariCP DEFAULT connection pool hai (spring-boot-starter-data-jpa mein AUTOMATICALLY INCLUDED) — BENCHMARK mein, HikariCP OTHER pools (C3P0, Apache DBCP) se FASTER, aur LESS OVERHEAD wala hai.

💡Tip: Connection pooling ESSENTIAL hai kyunki DATABASE CONNECTION banaना EXPENSIVE hai (network handshake, authentication) — POOL, EK SET of PRE-ESTABLISHED connections REUSE karta hai, HAR REQUEST ke liye NAYA connection BANANE ke bajaye.

spring.datasource.hikari.maximum-pool-size = MAXIMUM connections POOL mein RAKHEGA. YE VALUE bahut CAREFULLY choose karni chahiye — BAHUT CHHOTA (requests WAIT karengi), BAHUT BADA (database OVERWHELM ho sakta hai). COMMON FORMULA: (CPU cores × 2) + effective_spindle_count.

spring.datasource.hikari.maximum-pool-size=10
spring.datasource.hikari.minimum-idle=5
spring.datasource.hikari.connection-timeout=30000