Database Theory: Xử lý truy vấn song song (Hệ thống cơ sở dữ liệu song song) là gì?

2022-03-20 16:05:10

Trong thập kỷ qua, rất nhiều phân tích và nghiên cứu về Hệ thống cơ sở dữ liệu song song và Xử lý truy vấn song song.

Sự thành công của Hệ thống cơ sở dữ liệu song song phụ thuộc vào mô hình cơ sở dữ liệu quan hệ và hiệu suất CPU / DISK tốt. Nếu không có CPU và hiệu suất DISK tốt, chúng ta không nên sử dụng Xử lý truy vấn song song.

Nói chung,
Khi chúng ta đang thực hiện bất kỳ Truy vấn SQL nào, Nó sẽ tạo kế hoạch thực thi và đệ trình cho người thực thi truy vấn nội bộ. Người thực thi truy vấn thu thập tất cả các kế hoạch thực thi và thực hiện theo trình tự.
Ví dụ: một Truy vấn SQL của bạn yêu cầu thao tác 100,00,0000 lần, vì vậy việc sử dụng một hệ thống luồng CPU đơn Sẽ mất nhiều thời gian hơn để thực thi.

Trong xử lý truy vấn song song,
Nhiều nhân viên xử lý chạy trong nền và chịu trách nhiệm cho cùng một tác vụ hoặc nhiều tác vụ trong chế độ chia sẻ.

parallelprocessing
Ví dụ: Nếu chúng ta nói 4 process worker khác nhau đang thực thi một Truy vấn SQL lớn duy nhất đòi hỏi thao tác 100,00,0000 lần, thì nó sẽ hoàn thành toàn bộ quá trình nhanh hơn bốn lần so với việc sử dụng process worker hoặc luồng CPU đơn cho cùng một SQL Query.

Về cơ bản, có ba kiểu kiến trúc chính của Hệ thống cơ sở dữ liệu song song.

Đĩa dùng chung:

Cách tiếp cận này không phổ biến lắm khi cùng một đĩa được chia sẻ giữa các công nhân xử lý nền khác nhau.

Không có gì được chia sẻ:

Với hệ thống không dùng chung, mỗi bộ xử lý sở hữu một phần cơ sở dữ liệu và chỉ phần đó mới có thể được truy cập hoặc thao tác trực tiếp bởi bộ xử lý đó. Cần có một giao thức cam kết hai pha để điều phối một cam kết giao dịch liên quan đến nhiều nút.

Một hệ thống không có gì được chia sẻ dựa trên khái niệm phân rã. Việc phân rã một mối quan hệ bao gồm việc phân phối các bộ giá trị của nó giữa nhiều nút theo một số tiêu chí phân phối, chẳng hạn như áp dụng một hàm băm cho thuộc tính khóa của mỗi bộ giá trị.

Trong bối cảnh xử lý truy vấn, lợi thế chính của hệ thống không chia sẻ gì là khả năng mở rộng của nó.
Một trong những ví dụ điển hình về kiến trúc này là: Cơ sở dữ liệu quan hệ GreenPlum.

Mọi thứ được chia sẻ:

Trong một hệ thống mọi thứ được chia sẻ, bộ nhớ chính, ngoài đĩa, cũng được chia sẻ trên tất cả các bộ xử lý, giúp quản lý hệ thống và cân bằng tải dễ dàng hơn nhiều.

Đầu tiên, không có sự chậm trễ giao tiếp vì các thông điệp được trao đổi thông qua bộ nhớ dùng chung và đồng bộ hóa có thể được thực hiện bằng các cơ chế cấp thấp, rẻ tiền.

Thứ hai, cân bằng tải dễ dàng hơn nhiều vì hệ điều hành có thể tự động phân bổ quy trình sẵn sàng tiếp theo cho bộ xử lý khả dụng đầu tiên.

Ngày mai, bạn có thể truy cập một bài viết hay về Kiểm tra hiệu suất xử lý truy vấn song song bằng Hệ thống cơ sở dữ liệu PostgreSQL 9.6.

Xem thêm:


Chia sẻ: