Kiến trúc Cassandra & Chiến lược nhân tố nhân rộng

Mục lục:

Anonim

Cassandra được thiết kế để xử lý dữ liệu lớn. Tính năng chính của Cassandra là lưu trữ dữ liệu trên nhiều nút mà không có điểm lỗi nào.

Lý do cho kiểu kiến ​​trúc của Cassandra là lỗi phần cứng có thể xảy ra bất cứ lúc nào. Bất kỳ nút nào cũng có thể ngừng hoạt động. Trong trường hợp hỏng dữ liệu được lưu trữ trong một nút khác có thể được sử dụng. Do đó, Cassandra được thiết kế với kiến ​​trúc phân tán của nó.

Cassandra lưu trữ dữ liệu trên các nút khác nhau bằng kiến ​​trúc thời trang phân tán ngang hàng.

Tất cả các nút trao đổi thông tin với nhau bằng giao thức Gossip . Gossip là một giao thức trong Cassandra mà các nút có thể giao tiếp với nhau.

Trong hướng dẫn này, bạn sẽ học-

  • Các thành phần của Cassandra
  • Sao chép dữ liệu
  • Viết hoạt động
  • Đọc hoạt động

Các thành phần của Cassandra

Có các thành phần sau trong Cassandra;

Sơ đồ kiến ​​trúc Cassandra
  • Nút

    Node là nơi lưu trữ dữ liệu. Nó là thành phần cơ bản của Cassandra.

  • Trung tâm dữ liệu

    Một tập hợp các nút được gọi là trung tâm dữ liệu. Nhiều nút được phân loại như một trung tâm dữ liệu.

  • Cluster

    Cụm là tập hợp của nhiều trung tâm dữ liệu.

  • Nhật ký cam kết

    Mọi thao tác ghi đều được ghi vào Nhật ký cam kết. Nhật ký cam kết được sử dụng để khôi phục sự cố.

  • Bảng ghi nhớ

    Sau khi dữ liệu được ghi trong bản ghi cam kết, dữ liệu được ghi trong bảng ghi nhớ. Dữ liệu được ghi trong bảng Mem tạm thời.

  • SSTable

    Khi bảng ghi nhớ đạt đến một ngưỡng nhất định, dữ liệu được chuyển vào tệp đĩa SSTable.

Sao chép dữ liệu

Vì sự cố phần cứng có thể xảy ra hoặc liên kết có thể bị ngắt bất kỳ lúc nào trong quá trình xử lý dữ liệu, nên cần có giải pháp để cung cấp bản sao lưu khi sự cố xảy ra. Vì vậy, dữ liệu được sao chép để đảm bảo không có điểm lỗi nào.

Cassandra đặt các bản sao dữ liệu trên các nút khác nhau dựa trên hai yếu tố này.

  • Vị trí đặt bản sao tiếp theo được xác định bởi Chiến lược nhân rộng .
  • Trong khi tổng số bản sao được đặt trên các nút khác nhau được xác định bởi Hệ số nhân bản .

Một nhân tố sao chép có nghĩa là chỉ có một bản sao dữ liệu duy nhất trong khi ba nhân tố sao chép có nghĩa là có ba bản sao dữ liệu trên ba nút khác nhau.

Để đảm bảo không có điểm nào bị lỗi, yếu tố nhân rộng phải là ba.

Có hai loại chiến lược sao chép trong Cassandra.

SimpleStrategy

SimpleStrategy được sử dụng khi bạn chỉ có một trung tâm dữ liệu. SimpleStrategy đặt bản sao đầu tiên vào nút được trình phân vùng chọn. Sau đó, các bản sao còn lại được đặt theo chiều kim đồng hồ trong vòng Node.

Đây là hình ảnh đại diện của SimpleStrategy.

NetworkTopologyStrategy

NetworkTopologyStrategy được sử dụng khi bạn có nhiều hơn hai trung tâm dữ liệu.

Trong NetworkTopologyStrategy, các bản sao được đặt cho từng trung tâm dữ liệu riêng biệt. NetworkTopologyStrategy đặt các bản sao theo chiều kim đồng hồ trong vòng cho đến khi đến nút đầu tiên trong một giá đỡ khác.

Chiến lược này cố gắng đặt các bản sao trên các giá đỡ khác nhau trong cùng một trung tâm dữ liệu. Điều này là do nguyên nhân đôi khi có thể xảy ra hỏng hóc hoặc sự cố trong tủ rack. Sau đó, các bản sao trên các nút khác có thể cung cấp dữ liệu.

Đây là hình ảnh đại diện của chiến lược cấu trúc liên kết mạng

Viết hoạt động

Điều phối viên gửi một yêu cầu ghi tới các bản sao. Nếu tất cả các bản sao đều lên, chúng sẽ nhận được yêu cầu viết bất kể mức độ nhất quán của chúng.

Mức độ nhất quán xác định có bao nhiêu nút sẽ phản hồi lại với xác nhận thành công.

Nút sẽ phản hồi lại bằng xác nhận thành công nếu dữ liệu được ghi thành công vào bản ghi cam kết và memTable.

Ví dụ, trong một trung tâm dữ liệu duy nhất có hệ số sao chép bằng ba, ba bản sao sẽ nhận được yêu cầu ghi. Nếu mức độ nhất quán là một, chỉ một bản sao sẽ phản hồi lại với xác nhận thành công và hai bản sao còn lại sẽ không hoạt động.

Giả sử nếu hai bản sao còn lại bị mất dữ liệu do sự cố của nút hoặc một số vấn đề khác, Cassandra sẽ làm cho hàng nhất quán bằng cơ chế sửa chữa tích hợp trong Cassandra.

Ở đây nó được giải thích, quá trình ghi xảy ra như thế nào trong Cassandra,

  1. Khi yêu cầu ghi đến nút, trước hết, nó ghi vào bản ghi cam kết.
  2. Sau đó, Cassandra ghi dữ liệu vào bảng ghi nhớ. Dữ liệu được ghi trong bảng ghi nhớ trên mỗi yêu cầu ghi cũng được ghi vào nhật ký cam kết riêng biệt. Mem-table là dữ liệu được lưu trữ tạm thời trong bộ nhớ trong khi bản ghi cam kết ghi lại các bản ghi giao dịch cho mục đích sao lưu.
  3. Khi bảng ghi nhớ đầy, dữ liệu được chuyển vào tệp dữ liệu SSTable.

Đọc hoạt động

Có ba loại yêu cầu đọc mà một điều phối viên gửi đến các bản sao.

  1. Yêu cầu trực tiếp
  2. Yêu cầu thông báo
  3. Đọc yêu cầu sửa chữa

Điều phối viên gửi yêu cầu trực tiếp đến một trong các bản sao. Sau đó, điều phối viên gửi yêu cầu thông báo đến số lượng bản sao được chỉ định bởi mức nhất quán và kiểm tra xem dữ liệu trả về có phải là dữ liệu cập nhật hay không.

Sau đó, điều phối viên gửi yêu cầu thông báo đến tất cả các bản sao còn lại. Nếu bất kỳ nút nào cung cấp giá trị lỗi thời, một yêu cầu sửa chữa đọc nền sẽ cập nhật dữ liệu đó. Quá trình này được gọi là cơ chế sửa chữa đọc.

Tóm lược

Hướng dẫn này giải thích kiến ​​trúc bên trong của Cassandra và cách Cassandra sao chép, ghi và đọc dữ liệu ở các giai đoạn khác nhau. Ngoài ra, ở đây nó giải thích về cách Cassandra duy trì mức độ nhất quán trong suốt quá trình.