Cách pgrust giúp Postgres chạy phân tích dữ liệu nhanh hơn 300 lần

Cách pgrust giúp Postgres chạy phân tích dữ liệu nhanh hơn 300 lần

Postgres vốn được thiết kế cho ổ cứng thời những năm 1980. Nhưng khi nâng cấp lại query engine, các truy vấn phân tích chạy nhanh hơn tới 300 lần.

Đội ngũ đứng sau pgrust vừa ra mắt phiên bản 0.2 với mức cải thiện hiệu năng vượt bậc. Trên bộ kiểm thử Clickbench, pgrust chạy nhanh gấp 300 lần Postgres tiêu chuẩn, thậm chí vượt qua cả Clickhouse. Chỉ riêng việc viết lại query engine đã giúp tăng tốc gấp 10 lần.

Tại sao lại quan trọng: Postgres được thiết kế vào thời điểm việc đọc dữ liệu từ ổ đĩa là điểm nghẽn lớn nhất. Ngày nay, dữ liệu đã nằm sẵn trên RAM hoặc ổ NVMe siêu nhanh, khiến điểm nghẽn thực sự nằm ở chính CPU.

Chi tiết cần biết: Postgres tiêu chuẩn sử dụng "Volcano model" truyền thống — gọi hàm để lấy từng dòng dữ liệu một. Trong bài test tính tổng 500 triệu chữ số, Postgres mất 20 giây. Nhưng một vòng lặp Rust thuần làm đúng phép tính đó chỉ mất 358 miligiây. Việc bỏ cách xử lý từng dòng để áp dụng các kỹ thuật tối ưu CPU hiện đại đã xóa bỏ khoảng cách này.

Hóa ra lối kiến trúc cơ sở dữ liệu từ 40 năm trước đang bỏ phí quá nhiều hiệu năng.

Nguồn