Mục lục

1. Giới thiệu PGPool

Bài toán đặt ra: Database PostgreSQL của bạn đang gặp vấn đề nghiêm trọng về hiệu năng, do có quá nhiều connection kết nối đến.

Trong trường hợp này, 1 giải pháp Connection Pooling như Pgpool II có thể là 1 giải pháp phù hợp.

 

Ý tưởng của Connection Pool cơ bản là mở sẵn 1 loạt các connection (số lượng mà chúng ta biết chắc sẽ không gây quá tải database), các ứng dụng khi muốn kết nối vào sẽ đấu nối vào các connection đã mở sẵn đó, nếu kết nối nào vào sau mà không còn connection đã mở sẵn, thì nó sẽ phải đợi kết nối trước đó kết thúc.

 

Pgpool II là một phần mềm Connection Pooling đứng giữa PostgreSQL Server và PostgreSQL client.

 

Nói đơn giản hơn, nó là lớp trung gian giữa người sử dụng và PostgreSQL database

Pgpool-II trong suốt đối với cả database server và client, một hệ thống application đã có sẵn có thể sử dụng được với Pgpool-II mà hầu như không cần thay đổi mã nguồn của nó.

Đọc thêm  So sánh Pgpool-II và Pgbouncer – Phần 1

 

2. Các tính năng của PGPool

Pgpool II có rất nhiều tính năng thú vị như sau:

1. Connection Pooling

Pgpool II quản lý các connection đã được kết nối đến PostgreSQL Server và tái sử dụng chúng mỗi khi có connection mới với cùng các thuộc tính với connect đã kết nối ( như username, database, version protocol, …). Nó giúp giảm tổng lượng thông tin overhead trên tất cả connection, từ đó cải thiện hiệu năng tổng thể.

2. Load Balancing

Nếu bạn đã cấu hình tính năng Streaming Replication bao gồm 1 server master với 1 hoặc nhiều server slave, Pgpool II có thể giúp giảm tải cho server master bằng cách đẩy các câu lệnh SELECT sang các server slave. Chức năng Load balancing rất hữu ích trong tình huống có rất nhiều user thực hiện các câu lệnh SELECT xuống database.

Đọc thêm  Cấu hình Streaming Replication trong PostgreSQL 13

3. Automated fail over

Nếu database server master bị shutdown và không thể hoạt động, Pgpool II sẽ gỡ nó ra khỏi cấu hình và đưa database server slave lên thành master.
Đây gọi là cơ chế Automated fail over

4. Online Recovery

Sau khi database server master bị gỡ ra khỏi cấu hình đồng bộ theo cơ chế Automated fail over, Pgpool II có thể đưa nó trở lại cấu hình cũ với một câu lệnh.
Cơ chế này gọi là Online Recovery

5. Replication

Cũng giống như Streaming Replication, Pgpool II cũng có 1 chức năng tương tự. Nó cho phép tạo ra 1 database cluster khác đồng bộ liên tục theo thời gian thực với database cluster chính

6. Giới hạn connection tối đa

Trong PostgreSQL, bạn có thể cấu hình tham số max_connection để giới hạn số connection tối đa được phép kết nối vào hệ thống. Tuy nhiên, nếu hệ thống đạt max connection, thì những connection kết nối vào sau sẽ nhận được một thông báo lỗi và bị ngắt luôn. Pgpool II cũng cung cấp 1 cơ chế giới hạn connection như vậy, nhưng “mềm mại” hơn: Những connection bị vượt ra ngoài phạm vi max connection, sẽ được đưa vào 1 hàng đợi, chờ đến lượt, thay vì bị văng ra ngoài kèm theo 1 thông báo lỗi.

7. Watchdog

Pgpool có thẻ là nơi phân tải đến các database server ở đằng sau, nhưng nó cũng có thể biến thành điểm rủi ro (single point of failure), khi Pgpool có trục trặc, phần mềm sẽ không thể kết nối đến database được nữa. Tính năng Watchdog cho phép bạn xây dựng nhiều Pgpool dự phòng. Nó sẽ kiểm tra trạng thái của Pgpool chính, nếu phát hiện Pgpool chính bị down, nó sẽ đưa Pgpool dự phòng lên thành Pgpool chính, dựa trên cơ chế bình bầu (voting).

Nếu số lượng Pgpool là số chẵn, thì sẽ không thể quyết định được PgPool nào là chính, do đó, số lượng Pgpool nên là số lẻ.

8. In Memory Query Cache

Chức năng này cho phép lưu giữ câu lệnh và kết quả thực hiện của nó trên Memory. Nếu có 1 câu lệnh SELECT giống hết câu lệnh đã có trên Memory, Pgpool sẽ trả kết quả lấy từ trên Memory xuống luôn, không cần phải phân tích câu lệnh hay truy vấn xuống đĩa để xử lý nữa.

Nguồn: https://dangxuanduy.com/

Hiện tại, tôi có tổ chức đều đặn các khóa học về quản trị Oracle Database, tôi sẽ để thông tin ở đây, để bạn nào quan tâm về lịch học cũng như chương trình học có thể theo dõi nhé.

KHOÁ DÀNH CHO NGƯỜI MỚI

KHÓA HỌC: QUẢN TRỊ ORACLE DATABASE THẬT LÀ ĐƠN GIẢN (ADMIN 1)

CÁC KHOÁ NÂNG CAO:

KHÓA HỌC ORACLE NÂNG CAO: QUẢN TRỊ KIẾN TRÚC MULTITENANT 12c

KHÓA HỌC ORACLE NÂNG CAO: QUẢN TRỊ HỆ THỐNG DATA GUARD

CÁC KHOÁ COMBO:

COMBO 1: ADMIN 1 + MULTITENANT 12c

COMBO 2: ADMIN 1 + DATA GUARD

COMBO 3: ADMIN 1 + MULTITENANT 12c + DATA GUARD

LỊCH HỌC:

Mời bạn xem tại đây: LỊCH HỌC CÁC LỚP ORACLE 

ĐĂNG KÝ:

https://forms.gle/MtCAoRQFenP886y79

Hãy tham gia group “Kho tài liệu kiến thức database” để cùng học hỏi và chia sẻ nhé.

0 0 đánh giá
Article Rating
Theo dõi
Thông báo của
guest
0 Comments
Phản hồi nội tuyến
Xem tất cả bình luận
0
Rất thích suy nghĩ của bạn, hãy bình luận.x