Rà soát lỗi trong Apache Cassandra nhằm đảm bảo các yêu cầu từ phía client không rơi vào những node có trạng thái lỗi (có thể down hoặc hoạt động với hiệu suất thấp). Rà lỗi thực hiện qua giao thức Gossip bằng trực tiếp (nghe ngóng node cần xem xét) hoặc gián tiếp (thông qua node lân cận của nó, có thể gián tiếp một lần hoặc nhiều lần). Không áp dụng một ngưỡng cố định cho tất cả các node, Apache Cassandra dùng một cơ chế để tính toán ngưỡng cho từng node dựa vào các thông số về mạng, độ tải trọng (workload) hoặc các điều kiện khác.
Khi một node bị hỏng vì một lí do nào đó, có thể trong khoảng thời gian nhanh hoặc lâu, nó không bị tự động loại bỏ trong cluster mà chỉ bị cô lập, các node khác vẫn cố gắng liên lạc với nó để mong chờ trường hợp nó phục hồi lại. Khi 1 node hỏng, cơ chế hinted
handoff sẽ được sử dụng, đó là một cơ chế mà một trong các node lân cận có dữ liệu Sao
lưu sẽ “gánh” giúp cho node đang hỏng tạm thời, giúp cho hệ thống vẫn đáp ứng được các yêu cầu dữ liệu.
Read repair: sau yêu cầu đọc và được trả về dữ liệu gần nhất, dữ liệu này được cập nhật
vào các node sao lưu còn lại
Anti-Entropy Node Repair: quá trình đọc để chắc chắn tính nhất quán dữ liệu với những
dữ liệu ít được truy xuất, quá trình được thực hiện bởi tiến trình nodetool repair và thực hiện đều đặn
Hinted Handoff: Khi ghi, nếu node cần ghi bị lỗi (down) thì node sao lưu tương ứng
khác sẽ giữ những thứ cần ghi và trao lại khi node kia phục hồi. Nếu tất cả các node sao lưu bị lỗi thì dữ liệu được giữ trên node điều phối nhưng không được đọc cho đến khi quá trình ghi hoàn tất vào node cần ghi.
Apache Cassandra API:
Apache Cassandra hỗ trợ nhiều ngôn ngữ và có ngôn ngữ CQL tương tự như SQL cho những người dùng SQL làm quen
1. Apache Cassandra CLI: giao diện dòng lệnh
2. CQL:( Cassandra Query Language) – cung cấp 1 ngôn ngữ truy vấn giống SQL gọi là CQL làm giảm việc người phát triển phải học tập cho những người phát triên quen thuộc với hệ thống mô hình quan hệ
3. Java: Hector Client API 4. Python: Pycassa Client API 5. PHP: Phpcassa Client API
5.Nhận xét:
5.1 Về Hệ quản trị CSDL phân tán Apache Cassadra :
Apache Cassandra là một trong số các giải pháp nổi bật dựa trên mô hình dữ liệu NoSQL với rất nhiều lí do. Ngày nay các công tym các viện giáo dục và cơ quan chính phủ đã thấy rất nhiều lợi ích của Hệ quản trị CSDL này với các tính năng lõi sau:
Kiến trúc mô hình phân tán ngang hàng có thể mở rộng rất nhanh : dựa trên các đặc
tính tốt nhất của Google BigTable và Amazon Dynamo. Kiến trúc mô hình phân tán ngang hàng khắc phục được những hạn chế của thiết kế mô hình Client-Server và cho phép cả tính sẵn sàng cao và khả năng mở rộng lớn nhanh chóng đến hàng Terabyte hoặc Petabyte dữ liệu
Thực hiện mở rộng tuyến tính: các node được thêm vào Cassandra cluster ( tất cả đều thêm online) tăng thông lương của CSDL đều dự đoán được cho các hoạt động Đọc và GHI
Không có điểm lỗi đơn: Dữ liệu được Sao lưu đến các node để bảo vệ việc mất mát
trong quá trình các node bị hỏng, và máy móc mới có thể được thêm vào để gia tăng dung lượng và bảo vệ dữ liệu trong Apache Cassandra cluster
Phá hiện và phục hồi lỗi trong suốt – Casandra được thiết kế cho các hệ thống lớn với
hàng nghìn máy chủ lớn nhỏ và việc xảy ra lỗi là dự đoán trước . Apache Cassandra sử dụng giao thức Gossip để phát hiện lỗi và phục hồi khi máy quay trở lại cluster mà không cần thông báo từ ứng dụng.
Mô hình lược đồ dữ liệu động, linh họat – Apache Cassandra đưa ra cách tổ chức giống
như các bảng dữ liệu trong mô hình dữ liệu quan hệ kết hợp với sức mạnh của hệ CSDL NoSQL, điều này cho phép lưu trữ dữ liệu được thay đổi theo nhu cầu. Apache Cassandra cũng có thể lưu dữ liệu có cấu trúc, bán cấu trúc và phi cấu trúc.
Đảm bảo an toàn dữ liệu – Apache Cassandra vượt xa các hệ thống khác về hiệu suất
đọc ghi trong khi vẫn đảm bảo độ bền bỉ, dữ liệu an toàn trong Apache Cassandra, khả năng mất mát là rất khó.
Thiết kế có khả năng đọc ghi mọi lúc – là mô hình ngang hàng để tránh được các điểm
nóng đọc GHI được thấy trong các thiết kế chủ-khách. Điều này có nghĩa là có thể đọc GHI vào bất kì node trong cluster của một CSDL phân phối mà không quan tâm node nào đang được truy cập
Tính nhất quán dữ liệu: Apache Cassandra là hệ thống có thể mở rộng cho nhiều máy,
nhiều rack và data center với cơ chế mới là nhất quán tùy biến
Mô hình đám mây: kiến trúc của Apache Cassandra cũng có nhiều tính năng trong mô
hình đám mây, cho phép lai giữ phân tán dữ liệu được lưu trữ và tính toán trên các đám mây
Nén dữ liệu: cung cấp việc nén dữ liệu, một số trường hợp có thể giảm đến 80% so với
các dữ liệu thô. Thêm nữa việc nén không ảnh hướng đến hiệu suất hoạt động
Không yêu cầu lớp đệm (caching layer): Apache Cassandra đưa bộ đệm vào mỗi node.
Cùng với đặc tính mở rộng, có thể thêm node vào cluster để giữ dữ liệu vào bộ nhớ bao nhiêu bạn muốn. Bộ đệm và đĩa cứng cùng 1 tầng, dễ dàng phát triển, dễ dàng hoạt động Apache Cassandra có thể chạy trên nhiều cấu hình khác nhau của máy tính
Tính gia tăng và đàn hồi : các cluster cũng như partition của Apache Cassandra cho
phép bạn thêm vào các node một cách dễ dàng. Cassandra cluster có thể mở rộng bất kì kích thước nào bạn cần bằng cách thêm các node vào.
5.2 Kết luận:
Trong khoảng thời gian giới hạn của học kì, nhóm đã tìm hiểu được khái niệm chung về CSDL Phân tán, Hệ quản trị CSDL Phân tán và đi sâu vào tìm hiểu kiến trúc, tính năng cũng như phương thức hoạt động của hệ quản trị CSDL Phân tán cụ thể Apache
Cassandra .
dụng cụ thể vào bài toán đặt ra để có thể hiểu rõ thêm cơ chế hoạt động cũng như tính năng và các đặc điểm ưu việt của hệ quản trị CSDL Phân tán được hậu thuẫn bởi APACHE này.