Alibaba đã mở mã cho PolarDB, một DBMS phân tán dựa trên PostgreSQL.

Alibaba, một trong những công ty CNTT lớn nhất Trung Quốc, đã mở mã nguồn của DBMS PolarDB phân tán, dựa trên PostgreSQL. PolarDB mở rộng khả năng của PostgreSQL bằng các công cụ lưu trữ dữ liệu phân tán với tính toàn vẹn và hỗ trợ các giao dịch ACID trong bối cảnh toàn bộ cơ sở dữ liệu toàn cầu được phân bổ trên các nút cụm khác nhau. PolarDB cũng hỗ trợ xử lý truy vấn SQL phân tán, khả năng chịu lỗi và lưu trữ dữ liệu dự phòng để khôi phục thông tin sau khi một hoặc nhiều nút bị lỗi. Nếu cần mở rộng bộ nhớ, bạn chỉ cần thêm các nút mới vào cụm. Mã được mở theo giấy phép Apache 2.0.

PolarDB bao gồm hai thành phần - phần mở rộng và một bộ bản vá cho PostgreSQL. Các bản vá mở rộng khả năng của lõi PostgreSQL và các tiện ích mở rộng bao gồm các thành phần được triển khai riêng biệt với PostgreSQL, chẳng hạn như cơ chế quản lý giao dịch phân tán, dịch vụ toàn cầu, bộ xử lý truy vấn SQL phân tán, siêu dữ liệu bổ sung, công cụ quản lý cụm, triển khai cụm và đơn giản hóa quá trình di chuyển của các hệ thống hiện có đối với nó.

Các bản vá bổ sung vào lõi PostgreSQL một phiên bản phân tán của cơ chế kiểm soát truy cập song song vào dữ liệu bằng cách sử dụng đa phiên bản (MVCC, Kiểm soát đồng thời đa phiên bản) cho các mức cách ly khác nhau. Hầu hết chức năng của PolarDB được bao gồm trong các phần mở rộng, giúp giảm sự phụ thuộc vào PostgreSQL và đơn giản hóa việc cập nhật và triển khai các giải pháp dựa trên PolarDB (nó đơn giản hóa việc chuyển đổi sang các phiên bản PostgreSQL mới và duy trì khả năng tương thích hoàn toàn với PostgreSQL). Để quản lý cụm, bộ công cụ pgxc_ctl được sử dụng, dựa trên tiện ích tương tự từ PostgreSQL-XC và PostgreSQL-XL.

Có ba thành phần cơ bản trong một cụm: nút cơ sở dữ liệu (DN), trình quản lý cụm (CM) và dịch vụ quản lý giao dịch (TM). Ngoài ra, có thể sử dụng bộ cân bằng tải proxy. Mỗi thành phần là một tiến trình riêng biệt và có thể chạy trên một máy chủ khác nhau. Các nút cơ sở dữ liệu phục vụ các truy vấn SQL từ máy khách, đồng thời đóng vai trò điều phối viên thực hiện truy vấn phân tán với sự tham gia của các nút cơ sở dữ liệu khác. Trình quản lý cụm giám sát trạng thái của từng nút cơ sở dữ liệu, lưu trữ cấu hình cụm và cung cấp các công cụ để quản lý, sao lưu, cân bằng tải, cập nhật, khởi động và dừng các nút. Dịch vụ quản lý giao dịch chịu trách nhiệm duy trì tính toàn vẹn tổng thể trên toàn bộ cụm.

Alibaba đã mở mã cho PolarDB, một DBMS phân tán dựa trên PostgreSQL.

PolarDB dựa trên kiến ​​trúc điện toán phân tán không chia sẻ, theo đó dữ liệu được phân phối khi được lưu trữ trên các nút khác nhau mà không sử dụng bộ lưu trữ chung cho tất cả các nút và mỗi nút chịu trách nhiệm về phần dữ liệu được liên kết với nó và thực hiện các truy vấn liên quan vào dữ liệu. Mỗi bảng được chia thành nhiều phần (sharding) bằng cách sử dụng hàm băm dựa trên khóa chính. Nếu yêu cầu mở rộng dữ liệu nằm trên các nút khác nhau, thì công cụ thực thi giao dịch phân tán và điều phối viên giao dịch sẽ được kích hoạt để đảm bảo tính nguyên tử, tính nhất quán, sự tách biệt và độ tin cậy (ACID).

Để đảm bảo khả năng chịu lỗi, mỗi phân đoạn được sao chép tới ít nhất ba nút. Để tiết kiệm tài nguyên, dữ liệu hoàn chỉnh chỉ bao gồm hai bản sao và một bản được giới hạn ở việc lưu trữ nhật ký ghi lại (WAL). Một trong hai nút có bản sao đầy đủ được bầu làm nút dẫn đầu và tham gia xử lý các yêu cầu. Nút thứ hai đóng vai trò dự phòng cho phân đoạn dữ liệu được đề cập và nút thứ ba tham gia vào việc lựa chọn nút dẫn đầu và có thể được sử dụng để khôi phục thông tin trong trường hợp hai nút có bản sao đầy đủ bị lỗi. Việc sao chép dữ liệu giữa các nút cụm được tổ chức bằng thuật toán Paxos, đảm bảo định nghĩa nhất quán về sự đồng thuận trong mạng có các nút có khả năng không đáng tin cậy.

Cần lưu ý rằng chức năng đầy đủ của PolarDB DBMS dự kiến ​​sẽ được tiết lộ qua ba bản phát hành: Trong phiên bản đầu tiên, các công cụ để sao chép, tính sẵn sàng cao và quản lý cụm sẽ được xuất bản. Bản phát hành thứ hai sẽ có hệ thống thực thi giao dịch phân tán hỗ trợ ACID nút chéo và thực thi SQL phân tán. Bản phát hành thứ ba sẽ bao gồm một plugin cho PostgreSQL và các công cụ để phân phối dữ liệu linh hoạt trên các nút, bao gồm cả vị trí thích ứng của các phân đoạn để đạt được hiệu suất tối ưu và khả năng mở rộng cụm bằng cách thêm các nút mới.

Nguồn: opennet.ru

Thêm một lời nhận xét