Connection pool là gì? Khái niệm connection pool trong database

Connection pool là gì? Khái niệm connection pool trong database.

Connection pool là gì?

Trong kỹ thuật phần mềm, một connection là một bộ đệm duy trì các kết nối tới cơ sở dữ liệu. Các kết nối tới cơ sở dữ liệu sau khi sử dụng sẽ không đóng lại ngay mà sẽ được dùng lại khi được yêu cầu trong tương lai.

Cơ chế hoạt động của nó như sau: khi một connection (một kết nối) được tạo, nó sẽ được đưa vào pool và sử dụng lại cho các yêu cầu kết nối tiếp theo và chỉ bị đóng khi hết thời gian timeout.

Ví dụ, max pool size = 10 (số lượng tối đa connection trong pool là 10).

Bây giờ user kết nối tới database (truy vấn database), hệ thống sẽ kiểm tra trong connection pool có kết nối nào đang rảnh không?

  • Trường hợp chưa có kết nối nào trong connection pool hoặc tất cả các kết nối đều bận (đang được sử dụng bởi user khác) và số lượng connection trong connection < 10 thì sẽ tạo một connection mới tới database để kết nối tới database đồng thời kết nối đó sẽ được đưa vào connection pool.
  • Trường hợp tất cả các kết nối đang bận và số lượng connection trong connection pool = 10 thì người dùng phải đợi cho các user dùng xong để được dùng.

Sau khi một kết nối được tạo và sử dụng xong nó sẽ không đóng lại mà sẽ duy trì trong connection pool để dùng lại cho lần sau và chỉ thực sự bị đóng khi hết thời gian timeout (lâu quá không dùng đến nữa)

Connection pool là gì? Khái niệm connection pool trong database

Các thông tin cấu hình Connection Pool

Connection Pool thường được cấu hình ở file config của ứng dụng server. Tùy thuộc vào ứng dụng mà bạn có thể có nhiều hơn một connection pool, mỗi connection pool được sử dụng bởi các thành phần khác nhau của ứng dụng. Dưới đây là một số tham số khi cấu hình connection pool:

  • Connection pool name: Sử dụng để xác định và đăng ký với datasource.
  • Initial number of connections: Số connection được tạo vào đưa vào connection pool khi ứng dụng được start.
  • Maximum and minimum pool size: Số connection tối đa và tối thiểu trong connection pool
  • JDBC URL: chỉ rõ vị trí database, database name, port, hostname
  • JDBC driver class name.
Connection pool là gì? Khái niệm connection pool trong database stackjava.com

References:

https://www.ibm.com/support/knowledgecenter/en/SSAW57_8.5.5/com.ibm.websphere.nd.doc/ae/cdat_conpool.html

https://en.wikipedia.org/wiki/Connection_pool

https://ejbvn.wordpress.com/category/week-2-entity-beans-and-message-driven-beans/day-09-using-jdbc-to-connect-to-a-database/

stackjava.com