Kiến trúc cơ sở dữ liệu PostgreSQL

Kiến trúc cơ sở dữ liệu PostgreSQL bao gồm nhiều thành phần làm việc cùng nhau để đảm bảo quản lý dữ liệu hiệu quả và mạnh mẽ. Dưới đây là mô tả chi tiết về kiến trúc của PostgreSQL:

https://media.geeksforgeeks.org/wp-content/uploads/20210104095705/PostgreSQL-660x390.png

  1. PostgreSQL Server Processes:
    • Postmaster: Đây là quá trình chính của PostgreSQL, chịu trách nhiệm khởi tạo và quản lý các quá trình con khác. Nó xử lý kết nối của client và khởi tạo các phiên làm việc mới.
    • Backend Processes: Mỗi kết nối từ một client sẽ được phục vụ bởi một backend process riêng biệt. Các quá trình này xử lý các truy vấn SQL, thực hiện các giao dịch, và quản lý bộ nhớ.
    • Background Writer: Quá trình này ghi các thay đổi dữ liệu từ bộ nhớ đệm (shared buffer) xuống đĩa, giúp giảm tải công việc ghi dữ liệu cho các quá trình backend.
    • WAL Writer: Quá trình này ghi các bản ghi WAL (Write-Ahead Logging) từ bộ nhớ đệm WAL xuống đĩa để đảm bảo tính bền vững của dữ liệu.
    • Autovacuum Daemon: Quá trình này tự động thực hiện các tác vụ dọn dẹp như vacuum và analyze để duy trì hiệu suất của cơ sở dữ liệu.
  2. Storage Structures:
    • Base Directory: Chứa dữ liệu của các bảng và chỉ mục.
    • Global Directory: Chứa dữ liệu toàn cục như thông tin người dùng và thông số hệ thống.
    • pg_xactpg_multixact: Chứa thông tin về các giao dịch và các giao dịch đa nhiệm.
    • pg_wal: Chứa các bản ghi WAL để đảm bảo khôi phục dữ liệu khi cần thiết.
    • pg_logical: Lưu trữ thông tin về replication logic.
    • pg_stat: Lưu trữ các thống kê của cơ sở dữ liệu.
    • Configuration Files: Bao gồm postgresql.conf, pg_hba.conf, và pg_ident.conf để cấu hình hệ thống, kiểm soát truy cập, và ánh xạ danh tính.
  3. Memory Structures:
    • Shared Buffers: Vùng nhớ đệm được chia sẻ bởi tất cả các backend processes, chứa các trang dữ liệu được truy cập gần đây.
    • Work Mem: Vùng nhớ tạm thời dành riêng cho mỗi quá trình backend để thực hiện các tác vụ như sắp xếp và băm.
    • Maintenance Work Mem: Vùng nhớ tạm thời sử dụng cho các tác vụ bảo trì như VACUUM và CREATE INDEX.
    • WAL Buffers: Bộ nhớ đệm dành cho các bản ghi WAL trước khi chúng được ghi xuống đĩa.
  4. Data Access and Transaction Management:
    • Query Parsing, Planning, and Execution: Truy vấn SQL được phân tích cú pháp, lập kế hoạch thực hiện và sau đó được thực hiện. Các kế hoạch truy vấn được tối ưu hóa để đạt hiệu suất cao nhất.
    • Transaction Management: PostgreSQL hỗ trợ các giao dịch ACID (Atomicity, Consistency, Isolation, Durability). Các giao dịch được quản lý bởi các bản ghi WAL và các hệ thống quản lý khóa.
    • MVCC (Multi-Version Concurrency Control): Cơ chế này cho phép nhiều giao dịch đọc và ghi đồng thời mà không gây xung đột, bằng cách duy trì nhiều phiên bản của dữ liệu.
  5. Replication and Backup:
    • Streaming Replication: Cho phép sao chép dữ liệu từ máy chủ chính sang một hoặc nhiều máy chủ phụ để dự phòng và tăng khả năng chịu lỗi.
    • Logical Replication: Cho phép sao chép dữ liệu dựa trên logic từ một cơ sở dữ liệu sang cơ sở dữ liệu khác.
    • Backup and Restore: PostgreSQL hỗ trợ các phương thức sao lưu và khôi phục dữ liệu bằng cách sử dụng các công cụ như pg_dump, pg_basebackup, và các bản ghi WAL.
  6. Extensions and Customization:
    • Extensions: PostgreSQL hỗ trợ mở rộng tính năng thông qua các extensions. Các extension phổ biến bao gồm PostGIS (xử lý dữ liệu không gian), pg_partman (quản lý partitioning), và nhiều module khác.
    • Custom Types and Functions: Người dùng có thể tạo các kiểu dữ liệu và hàm tùy chỉnh để mở rộng chức năng của PostgreSQL.

Kiến trúc của PostgreSQL được thiết kế để linh hoạt, mạnh mẽ và hỗ trợ hiệu quả cho các ứng dụng cơ sở dữ liệu từ nhỏ đến lớn. Mỗi thành phần đóng vai trò quan trọng trong việc đảm bảo cơ sở dữ liệu hoạt động trơn tru và đáng tin cậy.

 

0 0 đánh giá
Đánh giá bài viết
Theo dõi
Thông báo của
guest

0 Góp ý
Phản hồi nội tuyến
Xem tất cả bình luận