Những hạn chế của việc sử dụng Galera Cluster thay vì Master / Slave Replication là gì?


13

Những hạn chế của việc sử dụng Galera Cluster thay vì Sao chép Master / Slave thông thường là gì? Thời gian trễ nô lệ 0 của Galera, sao chép đồng bộ và không có điểm thất bại duy nhất có vẻ rất hấp dẫn thì tại sao cụm Galera không phổ biến?

Câu trả lời:


16

Bởi vì giống như bất kỳ tối ưu hóa nào khác, nó không phù hợp với mọi khối lượng công việc.

Galera có thể bị choáng ngợp bởi tỷ lệ giao dịch cao hoặc khi giao dịch cập nhật nhiều hàng. Nó cũng có thể làm cho ứng dụng của bạn gặp phải sự chậm trễ trên CAMIT khi cụm được đồng bộ hóa.

Galera cũng không cập nhật các nút khác một cách đồng bộ. Nó chỉ truyền các máy tính đồng bộ. Theo cách này, nó giống như sao chép tiêu chuẩn ở chế độ bán đồng bộ. Do đó, vẫn có một cơ hội nhỏ để đọc dữ liệu cũ từ một nút cụm khác. Có một tùy chọn bạn có thể đặt để buộc CHỌN đợi cho đến khi hàng đợi các bộ công cụ đã cập nhật cơ sở dữ liệu, nhưng điều này có nghĩa là bạn có độ trễ trên SELECT. Và thậm chí có cơ hội gặp bế tắc trên CHỌN, có vẻ phản trực giác.

Galera là tuyệt vời, nhưng không phải là một công nghệ phù hợp với một kích thước. Vẫn còn những lý do chính đáng để sử dụng nhân rộng không đồng bộ.


Cảm ơn Bill, btw Tôi đã đọc bài thuyết trình Percona của bạn trong một thời gian.
Sam

3
Một nhược điểm khác là có một nút nhà tài trợ tự tắt và được sử dụng để sao chép (thông qua xtrabackup, rsync, mysqldump) vào bất kỳ nút nào được đưa vào cụm, để các nút còn lại trong cụm thực hiện việc nâng hạng nặng cho đến khi nút mới được đồng bộ hóa. Đây không phải là một nhược điểm đối với các DB cỡ nhỏ hoặc trung bình.
RolandoMySQLDBA

1
@RolandoMySQLDBA Các phương pháp SST như xtrabackup chính xác tránh khóa nhà tài trợ. Mặc dù đúng là trong mọi trường hợp, nhà tài trợ sẽ bị giảm hiệu suất nếu cơ sở dữ liệu lớn.
jynus

3
@jynus, vấn đề không phải là khóa trên nút nhà tài trợ , mà là nút nhận ngoại tuyến và không có sẵn cho bất kỳ truy vấn nào trong khi SST đang diễn ra. Do đó, nếu bạn đang sử dụng cụm để cân bằng tải truy vấn, các truy vấn đã đi đến nút nhận phải được gửi đến (các) nút khác cho đến khi SST được thực hiện.
Bill Karwin

2
Trong trường hợp bất kỳ ai khác đang tìm kiếm, tùy chọn mà Bill đang đề cập là wsrep_causal_reads... được đặt thành BẬT SET GLOBAL wsrep_causal_reads = 'ON';để nhận các lựa chọn để đợi cho đến khi tất cả các bộ ghi được thực hiện.
Luke Cousins

2

Một số nhược điểm của Galera bao gồm:

  • Hỗ trợ công cụ lưu trữ: giới hạn ở InnoDB / XtraDB (cộng với hỗ trợ thử nghiệm cho MyISAM)
  • Hỗ trợ hệ điều hành: chỉ có Oses giống Linux / Unix

Cũng có một số hạn chế cần lưu ý, nhưng có lẽ có thể được giải quyết xung quanh:

  • Theo mặc định (Tổng số cách ly đơn hàng) Các hoạt động DDL chặn toàn bộ cụm cho đến khi hoàn thành
  • Mỗi bảng phải có một khóa chính rõ ràng, một hoặc nhiều cột
  • Khóa: một số loại khóa rõ ràng không được hỗ trợ.

Để biết thêm thông tin, hãy xem chi tiết tại Codership (và tại đây về việc chặn DDL), MariaDBPercona .

EDIT: Cũng lưu ý rằng một số người lập luận rằng các cụm cơ sở dữ liệu được liên kết chặt chẽ, chẳng hạn như Galera, không nên có các nút phân phối địa lý do các vấn đề xuất phát từ sự không tin cậy vốn có của lớp mạng. Thay vào đó, các giải pháp không đồng bộ phải được sử dụng trong những trường hợp này. Xem: Cách không thực hiện tính sẵn sàng cao của MySQL: Phân phối nút địa lý với việc sử dụng sai bản sao dựa trên Galera . Tuy nhiên, blog Galera nói rằng (2015):

Trường hợp để xây dựng các cụm cơ sở dữ liệu phân tán địa lý là mạnh mẽ. Cách tiếp cận sao chép Galera và các tính năng cụ thể trong sản phẩm giúp cho việc xây dựng các cụm Galera trải rộng trên nhiều trung tâm dữ liệu và nhiều người dùng đã có các cụm như vậy đang được sản xuất.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.