MariaDB
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> MariaDB

Có gì mới trong MySQL Galera Cluster 4.0

MySQL Galera Cluster 4.0 là đứa trẻ mới trong khối cơ sở dữ liệu với các tính năng mới rất thú vị. Hiện tại nó chỉ có sẵn như một phần của MariaDB 10.4 nhưng trong tương lai nó sẽ hoạt động tốt với MySQL 5.6, 5.7 và 8.0. Trong bài đăng blog này, chúng tôi muốn giới thiệu cho các bạn một số tính năng mới đi kèm với Galera Cluster 4.0.

Sao chép Truyền trực tuyến Cụm Galera

Tính năng mới quan trọng nhất trong bản phát hành này là sao chép trực tuyến. Cho đến nay, quy trình chứng nhận cho Cụm Galera hoạt động theo cách mà toàn bộ giao dịch phải được chứng nhận sau khi chúng hoàn thành.

Quá trình này không lý tưởng trong một số trường hợp ...

  1. Điểm phát sóng trong bảng, hàng được cập nhật rất thường xuyên trên nhiều nút - hàng trăm giao dịch nhanh chóng chạy trên nhiều nút, việc sửa đổi cùng một tập hợp các hàng dẫn đến việc thường xuyên gặp bế tắc và khôi phục giao dịch
  2. Giao dịch lâu dài - nếu một giao dịch mất nhiều thời gian để hoàn thành, điều này làm tăng nghiêm trọng khả năng một số giao dịch khác, trong khi chờ đợi, trên một nút khác, có thể sửa đổi một số hàng cũng đã được cập nhật bởi giao dịch dài. Điều này dẫn đến bế tắc trong quá trình chứng nhận và một trong các giao dịch phải được lùi lại.
  3. Giao dịch lớn - nếu một giao dịch sửa đổi một số lượng đáng kể các hàng, có khả năng là một giao dịch khác, đồng thời, trên một nút khác, sẽ sửa đổi một trong các hàng đã được sửa đổi bởi giao dịch lớn. Điều này dẫn đến bế tắc trong quá trình chứng nhận và một trong các giao dịch phải được lùi lại. Ngoài ra, các giao dịch lớn sẽ mất thêm thời gian để được xử lý, gửi đến tất cả các nút trong cụm và được chứng nhận. Đây không phải là một tình huống lý tưởng vì nó tạo thêm độ trễ cho các cam kết và làm chậm cả cụm.

May mắn thay, tính năng sao chép trực tuyến có thể giải quyết những vấn đề này. Sự khác biệt chính là chứng nhận xảy ra theo từng phần mà không cần phải đợi toàn bộ giao dịch hoàn tất. Kết quả là, ngay cả khi giao dịch lớn hay dài, phần lớn (hoặc tất cả, tùy thuộc vào cài đặt mà chúng ta sẽ thảo luận trong giây lát) các hàng sẽ bị khóa trên tất cả các nút, ngăn không cho các truy vấn khác sửa đổi chúng.

MySQL Galera Cluster Streaming Replication Options

Có hai tùy chọn cấu hình để sao chép trực tuyến:

wsrep_trx_fragment_size

Điều này cho biết độ lớn của một phân mảnh (theo mặc định, nó được đặt thành 0, có nghĩa là tính năng sao chép trực tuyến bị vô hiệu hóa)

wsrep_trx_fragment_unit

Điều này cho biết phân mảnh thực sự là gì. Theo mặc định, nó là byte, nhưng nó cũng có thể là một ‘câu lệnh’ hoặc ‘hàng’.

Các biến đó có thể (và nên) được đặt ở cấp phiên, giúp người dùng có thể quyết định truy vấn cụ thể nào sẽ được sao chép bằng cách sử dụng sao chép trực tuyến. Ví dụ:đặt đơn vị thành 'câu lệnh' và kích thước thành 1 cho phép sử dụng sao chép trực tuyến chỉ cho một truy vấn duy nhất, chẳng hạn như cập nhật điểm phát sóng.

Bạn có thể định cấu hình Galera 4.0 để xác nhận mọi hàng mà bạn đã sửa đổi và lấy khóa trên tất cả các nút trong khi làm như vậy. Điều này làm cho tính năng sao chép trực tuyến trở nên tuyệt vời trong việc giải quyết các vấn đề thường xuyên bị tắc nghẽn mà trước Galera 4.0, chỉ có thể giải quyết bằng cách chuyển hướng tất cả các lần ghi đến một nút duy nhất.

Bảng WSREP

Galera 4.0 giới thiệu một số bảng giúp theo dõi trạng thái của cụm:

  • wsrep_cluster
  • wsrep_cluster_members
  • wsrep_streaming_log

Tất cả chúng đều nằm trong lược đồ ‘mysql’. wsrep_cluster sẽ cung cấp thông tin chi tiết về trạng thái của cụm. wsrep_cluster_members sẽ cung cấp cho bạn thông tin về các nút là một phần của cụm. wsrep_streaming_log giúp theo dõi trạng thái sao chép luồng.

Các Tính năng Sắp tới của Cụm Galera

Codership, công ty đứng sau Galera, vẫn chưa hoàn thành. Chúng tôi đã có thể nhận được bản xem trước về lộ trình từ Giám đốc điều hành, Seppo Jaakola, được đưa ra tại Percona Live vào đầu năm nay. Rõ ràng, chúng ta sẽ thấy các tính năng như hỗ trợ giao dịch XA và mã hóa gcache. Đây thực sự là tin tốt.

Sẽ có thể hỗ trợ các giao dịch XA nhờ tính năng nhân rộng luồng. Nói tóm lại, các giao dịch XA là các giao dịch phân tán có thể chạy trên nhiều nút. Họ sử dụng cam kết hai giai đoạn, yêu cầu trước tiên phải có được tất cả các khóa bắt buộc để chạy giao dịch trên tất cả các nút và sau đó, khi nó được thực hiện, hãy cam kết các thay đổi. Trong các phiên bản trước, Galera không có phương tiện để khóa tài nguyên trên các nút từ xa, với tính năng sao chép trực tuyến, điều này đã thay đổi.

Gcache là một tệp lưu trữ các tập ghi. Nội dung của nó được gửi đến các nút kết hợp yêu cầu truyền dữ liệu. Nếu tất cả dữ liệu được lưu trữ trong gcache, joiner sẽ chỉ nhận các giao dịch còn thiếu trong quá trình được gọi là Chuyển trạng thái tăng dần (IST). Nếu gcache không chứa tất cả dữ liệu được yêu cầu, thì cần phải chuyển State Snapshot Transfer (SST) và toàn bộ tập dữ liệu sẽ phải được chuyển đến nút tham gia.

Gcache chứa thông tin về những thay đổi gần đây, do đó, thật tuyệt khi thấy nội dung của nó được mã hóa để bảo mật tốt hơn. Với các tiêu chuẩn bảo mật tốt hơn được đưa ra thông qua ngày càng nhiều quy định, điều quan trọng là phần mềm sẽ trở nên tốt hơn trong việc tuân thủ.

Kết luận

Chúng tôi chắc chắn đang mong chờ xem Galera Cluster 4.0 sẽ hoạt động như thế nào trên cơ sở dữ liệu hơn MariaDB. Có thể triển khai MySQL 5.7 hoặc 8.0 với Galera Cluster sẽ thực sự tuyệt vời. Rốt cuộc, Galera là một trong những giải pháp sao chép đồng bộ được thử nghiệm rộng rãi nhất hiện có trên thị trường.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cách DATE () hoạt động trong MariaDB

  2. Cách LN () hoạt động trong MariaDB

  3. Cách trừ một năm khỏi một ngày trong MariaDB

  4. MariaDB ROW_COUNT () được giải thích

  5. 4 cách để liệt kê tất cả các chế độ xem trong cơ sở dữ liệu MariaDB