Nói về phần mềm trung gian NoSQL dẫn đầu là Google BigTable và Amazon Dynamo, nhưng nhiều thứ khác cũng xuất hiện trong thế giới open source. Trong số đó, Apache Cassandra (Cassandra) đang thu hút sự chú ý đặc biệt gần đây. Vậy Cassandra là gì chúng ta cùng tìm hiểu nhé

Cassandra là gì?

Cassandra là một cơ sở dữ liệu phân tán kết hợp mô hình dữ liệu của Google Bigtable với thiết kế hệ thống phân tán như bản sao của Amazon Dynamo. Tất cả được thực hiện bởi Java và được cung cấp trong ASL 2 (Giấy phép Phần mềm Apache Phiên bản 2).

http://cassandra.apache.org/

Cassandra ban đầu được tạo ra bởi Facebook. Sau đó nó đã được tặng cho Quỹ Apache và tháng 2 năm 2010 và được nâng cấp lên thành dự án hàng đầu của Apache.

Các tính năng ưu việt của Cassandra bao gồm 9 điểm sau:

① Thích hợp để sử dụng thực tế

② Khả năng chịu lỗi cao

③ Kiến trúc không có SPOF (một điểm gây tổn hại)

④ Mức độ tự do kiểm soát nhất quán

⑤ Mô hình dữ liệu phong phú

⑥ Có thể tăng cường cải thiện thông lượng cho tuyến tính

⑦ Tính khả dụng cao

⑧ Hỗ trợ các ngôn ngữ khác nhau dưới dạng client code

⑨ Dễ dàng nắm bắt trạng thái bên trong của máy chủ bằng JMX/Dễ giám sát

Không có SPOF vì kiến trúc của Cassandra không có nút chính. Kết quả là, toàn bộ hệ thống sẽ không dừng lại do một phần nào đó bị thất bại, service vẫn tiếp tục được vận hành, vì vậy có thể nói rằng khả năng chịu lỗi là rất cao.

Trong Cassandra, dữ liệu được sao chép và phân phối cho mỗi nút, và các biện pháp chống mất dữ liệu cũng được áp dụng mạnh mẽ. Dựa vào đặc trưng này, các công ty như Twitter và Digg sử dụng Cassandra để giảm thiểu chi phí hoạt động hơn là sử dụng theo cách vận hành chia dọc + Memcached trong RDBMS.

Cassandra có mô hình dữ liệu phong phú như mô hình dữ liệu của Bigtable. Khác biệt so với mô hình quan hệ của RDBMS, nó giúp dễ hình dung ra được hình ảnh mình đang tính toán trong đầu.

Cassandra thu thập dữ liệu bằng framework có tên là Thrift. Thrift có một cơ chế để giao tiếp với nhiều các ngôn ngữ khác nhau, vì vậy khách hàng Cassandra có thể đối ứng với nhiều ngôn ngữ khác nhau ví dụ như C ++,Java,Python,PHP,Ruby,Erlang,Perl,C #,Objective-C,Smalltalk,OCaml...

Viết câu trả lời

Drop Images

0 Bình luận