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

Cách MariaDB đạt được quy mô toàn cầu với Xpand

Bài viết này xuất hiện lần đầu trong InfoWorld . Nó được tái bản với sự cho phép. © IDG Communications, Inc., 2020. Mọi quyền được bảo lưu Cách MariaDB đạt được quy mô toàn cầu với Xpand. Xpand hiện có sẵn trong MariaDB SkySQL thêm SQL phân tán để có khả năng mở rộng và độ đàn hồi trên đám mây.

Khi nhu cầu xử lý và thông tin ngày càng tăng, các điểm khó khăn như hiệu suất và khả năng phục hồi đòi hỏi phải có các giải pháp mới. Cơ sở dữ liệu cần duy trì tính nhất quán và tuân thủ ACID, cung cấp tính khả dụng cao và hiệu suất cao, đồng thời xử lý khối lượng công việc lớn mà không làm tiêu hao tài nguyên. Sharding đã đưa ra một giải pháp, nhưng đối với nhiều công ty thì Sharding đã đạt đến giới hạn của nó, do sự phức tạp và yêu cầu về nguồn lực của nó. Một giải pháp tốt hơn là SQL phân tán.

Trong triển khai SQL phân tán, cơ sở dữ liệu được phân phối trên nhiều hệ thống vật lý, cung cấp các giao dịch ở mức có thể mở rộng toàn cầu. MariaDB Platform X5, một bản phát hành chính bao gồm các nâng cấp cho mọi khía cạnh của MariaDB Platform, cung cấp SQL phân tán và khả năng mở rộng lớn thông qua việc bổ sung một công cụ lưu trữ thông minh mới có tên là Xpand. Với kiến ​​trúc không dùng chung, các giao dịch ACID được phân phối đầy đủ và tính nhất quán mạnh mẽ, Xpand cho phép bạn mở rộng quy mô lên hàng triệu giao dịch mỗi giây.

Công cụ thông minh có thể cắm được tối ưu hóa

MariaDB Enterprise Server được kiến ​​trúc để sử dụng các công cụ lưu trữ có thể cắm được (như Xpand) để tối ưu hóa cho các khối lượng công việc cụ thể từ một nền tảng duy nhất. Không cần cơ sở dữ liệu chuyên biệt để xử lý khối lượng công việc cụ thể. MariaDB Xpand, công cụ thông minh của chúng tôi dành cho SQL phân tán, là phần bổ sung gần đây nhất cho dòng sản phẩm của chúng tôi. Xpand bổ sung các khả năng giao dịch phân tán có thể mở rộng quy mô lớn vào các tùy chọn được cung cấp bởi các công cụ khác của chúng tôi. Các công cụ có thể cắm khác của chúng tôi cung cấp sự tối ưu hóa cho khối lượng công việc phân tích (cột), đọc nhiều và khối lượng công việc nặng ghi. Bạn có thể trộn và kết hợp các bảng sao chép, phân phối và bảng cột để tối ưu hóa mọi cơ sở dữ liệu cho các yêu cầu cụ thể của bạn.

Thêm MariaDB Xpand cho phép khách hàng doanh nghiệp đạt được tất cả các lợi ích của SQL phân tán - tốc độ, tính khả dụng và khả năng mở rộng - trong khi vẫn giữ được các lợi ích MariaDB mà họ đã quen thuộc.

Hãy cùng xem xét cách MariaDB Xpand cung cấp SQL phân tán.

SQL phân tán xuống các chỉ mục

Xpand cung cấp SQL phân tán bằng cách cắt, sao chép và phân phối dữ liệu qua các nút. Điều đó có nghĩa là gì? Chúng tôi sẽ sử dụng một ví dụ rất đơn giản với một bảng và ba nút để chứng minh các khái niệm. Không hiển thị trong ví dụ này là tất cả các lát được sao chép.

Trong hình 1 ở trên, chúng ta có một bảng với hai chỉ mục. Bảng có một số ngày tháng và chúng tôi có một chỉ mục trên Cột Hai và một chỉ mục khác trên Cột Ba và Một. Các chỉ mục theo một nghĩa nào đó chính là bảng. Chúng là các tập hợp con của bảng. Khóa chính là id , chỉ mục đầu tiên trong bảng. Đó là những gì sẽ được sử dụng để băm và trải dữ liệu bảng ra xung quanh cơ sở dữ liệu.

Bây giờ chúng tôi thêm khái niệm về lát cắt . Slices thực chất là các phân vùng ngang của bảng. Chúng tôi có năm hàng trong bảng của chúng tôi. Trong Hình 2, bảng đã được cắt và phân phối. Nút số 1 có hai hàng. Nút số 2 có hai hàng và Nút số 3 có một hàng. Mục tiêu là để dữ liệu được phân phối đồng đều nhất có thể trên các nút.

Các chỉ mục cũng đã được cắt lát và phân phối. Đây là điểm khác biệt chính giữa Xpand và các giải pháp phân tán khác. Thông thường, cơ sở dữ liệu phân tán có chỉ mục cục bộ, vì vậy mỗi nút đều có chỉ mục dữ liệu của riêng nó. Trong Xpand, các chỉ mục được phân phối và lưu trữ độc lập với bảng. Điều này giúp loại bỏ sự cần thiết phải gửi một truy vấn đến tất cả các nút (phân tán / tập hợp). Trong ví dụ trên, Nút số 1 chứa các hàng 2 và 4 của bảng, đồng thời chứa các chỉ mục cho các hàng 32 và 35 và các hàng Tháng 4 và Tháng 3. Bảng và các chỉ mục được phân chia, phân phối và sao chép một cách độc lập trên các nút.

Công cụ truy vấn sử dụng các chỉ mục phân tán để xác định vị trí cần tìm dữ liệu. Nó chỉ tìm kiếm các phân vùng chỉ mục cần thiết và sau đó chỉ gửi các truy vấn đến các vị trí chứa dữ liệu cần thiết. Các truy vấn đều được phân phối. Chúng được thực hiện đồng thời và song song. Việc chúng đi đến đâu hoàn toàn phụ thuộc vào dữ liệu và những gì cần thiết để giải quyết truy vấn.

Tất cả các lát được lặp lại ít nhất hai lần. Đối với mỗi lát cắt, có các bản sao nằm trên các nút khác. Theo mặc định, sẽ có ba bản sao của dữ liệu đó - lát cắt và hai bản sao. Mỗi bản sao sẽ nằm trên một nút khác nhau và nếu bạn đang chạy ở nhiều vùng khả dụng, các bản sao đó cũng sẽ ở trong các vùng khả dụng khác nhau.

Xử lý đọc và ghi

Hãy lấy một ví dụ khác. Trong Hình 3, chúng ta có năm phiên bản của Máy chủ Doanh nghiệp MariaDB với Xpand (các nút). Có một bảng để lưu trữ hồ sơ khách hàng. Phần có hồ sơ của Shane nằm trên Node # 1 với các bản sao trên Node # 3 và Node # 5. Các truy vấn có thể đến trên bất kỳ nút nào và sẽ được xử lý khác nhau tùy thuộc vào việc chúng được đọc hay ghi.

Các bản ghi được thực hiện đồng bộ cho tất cả các bản sao bên trong một giao dịch phân tán. Bất cứ khi nào tôi cập nhật hồ sơ “Shane” của mình vì tôi đã thay đổi email hoặc tôi thay đổi địa chỉ của mình, những bản viết đó sẽ được chuyển đến tất cả các bản sao cùng một lúc trong một giao dịch. Đây là điều cung cấp tính nhất quán mạnh mẽ.

Trong Hình 3, câu lệnh UPDATE chuyển đến Nút # 2. Không có gì trên Node # 2 về hồ sơ của tôi nhưng Node # 2 biết hồ sơ của tôi ở đâu và gửi cập nhật cho Node # 1, Node # 3 và Node # 5, sau đó thực hiện giao dịch đó và quay trở lại ứng dụng.

Đọc được xử lý khác nhau. Trong sơ đồ, phần có hồ sơ của tôi trên đó nằm trên Node # 1 với các bản sao trên Node # 3 và Node # 5. Điều này làm cho Node # 1 trở thành bản sao xếp hạng. Mỗi lát cắt đều có một bản sao xếp hạng, có thể nói là nút “sở hữu” dữ liệu. Theo mặc định, bất kể nút nào được đọc, nó luôn chuyển đến bản sao xếp hạng, vì vậy mọi CHỌN phân giải với tôi sẽ chuyển đến Nút số 1.

Cung cấp độ đàn hồi

Cơ sở dữ liệu phân tán như Xpand liên tục thay đổi và phát triển tùy thuộc vào dữ liệu trong ứng dụng. Quá trình tái cân bằng chịu trách nhiệm điều chỉnh việc phân phối dữ liệu cho phù hợp với nhu cầu hiện tại và duy trì sự phân phối tối ưu của các lát cắt giữa các nút. Có ba tình huống chung yêu cầu phân phối lại:thêm nút, xóa nút và ngăn khối lượng công việc không đồng đều hoặc “điểm nóng”.

Ví dụ:giả sử chúng tôi đang chạy với ba nút nhưng nhận thấy lưu lượng truy cập đang tăng lên và chúng tôi cần mở rộng quy mô - chúng tôi thêm nút thứ tư để xử lý lưu lượng. Node # 4 trống khi chúng ta thêm nó vào như trong Hình 4. Trình cân bằng lại tự động di chuyển các lát cắt và bản sao để sử dụng Node # 4, như trong Hình 5.

Nếu Node # 4 bị lỗi, bộ cân bằng lại tự động hoạt động trở lại; lần này tạo lại các lát cắt từ các bản sao của chúng. Không có dữ liệu nào bị mất. Các bản sao cũng được tạo lại để thay thế các bản sao nằm trên Node # 4, vì vậy tất cả các lát cắt lại có bản sao trên các nút khác để đảm bảo tính khả dụng cao.

Hình 6. Nếu một nút bị lỗi, trình cân bằng lại Xpand sẽ tạo lại các lát và các bản sao nằm trên nút bị lỗi từ dữ liệu bản sao trên các nút khác.

Cân bằng khối lượng công việc

Ngoài việc mở rộng quy mô và tính khả dụng cao, trình cân bằng lại còn giảm thiểu sự phân bổ khối lượng công việc không đồng đều - những điểm nóng hoặc việc sử dụng không đầy đủ. Ngay cả khi dữ liệu được phân phối ngẫu nhiên với một thuật toán băm hoàn hảo, các điểm nóng vẫn có thể xảy ra. Ví dụ:nó có thể tình cờ mà 10 sản phẩm được bán trong tháng này tình cờ có mặt trên Node # 1. Dữ liệu được phân bổ đồng đều nhưng khối lượng công việc thì không (Hình 7). Trong loại kịch bản này, trình cân bằng lại sẽ phân phối lại các lát cắt để cân bằng việc sử dụng tài nguyên (Hình 8).

Hình 7. Xpand đã phân phối dữ liệu đồng đều nhưng khối lượng công việc không đồng đều. Nút 1 có khối lượng công việc cao hơn đáng kể so với ba nút còn lại.

Hình 8. Xpand rebalancer phân phối lại các lát dữ liệu để cân bằng khối lượng công việc giữa các nút.

Khả năng mở rộng, tốc độ, tính khả dụng, số dư

Thông tin và nhu cầu xử lý sẽ tiếp tục phát triển. Đó là sự cống hiến. MariaDB Xpand cung cấp giải pháp mở rộng quy mô nhất quán, tuân thủ ACID cho các doanh nghiệp có các yêu cầu không thể đáp ứng được với các giải pháp thay thế khác như nhân rộng và sharding.

SQL phân tán cung cấp khả năng mở rộng và MariaDB Xpand cung cấp sự linh hoạt để chọn mức độ mở rộng bạn cần. Phân phối một bảng hoặc nhiều bảng hoặc thậm chí toàn bộ cơ sở dữ liệu của bạn, sự lựa chọn là của bạn. Về mặt vận hành, công suất được điều chỉnh dễ dàng để đáp ứng nhu cầu khối lượng công việc thay đổi tại bất kỳ thời điểm nào. Bạn không bao giờ phải được cung cấp quá mức.

Xpand cũng bảo vệ minh bạch khỏi việc sử dụng tài nguyên không đồng đều, tự động phân phối lại dữ liệu để cân bằng khối lượng công việc giữa các nút và ngăn chặn các điểm nóng. Đối với các nhà phát triển, không cần phải lo lắng về khả năng mở rộng và hiệu suất. Xpand có tính đàn hồi. Xpand cũng cung cấp khả năng dự phòng và tính sẵn sàng cao. Với dữ liệu được chia nhỏ, sao chép và phân phối trên các nút, dữ liệu được bảo vệ và duy trì khả năng dự phòng trong trường hợp phần cứng bị lỗi.

Và, với kiến ​​trúc của MariaDB, các bảng được phân phối của bạn sẽ hoạt động độc đáo - bao gồm cả các THAM GIA đa công cụ - với các bảng MariaDB khác của bạn. Tạo giải pháp cơ sở dữ liệu bạn cần bằng cách trộn và so khớp các bảng được sao chép, phân tán hoặc cột trên một cơ sở dữ liệu duy nhất trên Nền tảng MariaDB.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Đối phó với các mạng không đáng tin cậy khi tạo giải pháp HA cho MySQL hoặc MariaDB

  2. Hướng dẫn về MariaDB Columnstore dành cho quản trị viên MySQL

  3. Tùy chọn sao lưu đám mây cho cơ sở dữ liệu MySQL &MariaDB

  4. Cách khắc phục sự cố cơ sở dữ liệu MySQL

  5. 6 tình huống lỗi phổ biến cho MySQL &MariaDB và cách khắc phục chúng