Giới thiệu chung về Apache Cassandra

Thời đại công nghệ 4.0 với sự phát triển không ngừng của ngành công nghệ thông tin cho phép người dùng chia sẻ hàng tỷ nội dung trên Internet, khiến cho lượng dữ liệu cần lưu trữ và xử lý là rất lớn. Tuy các hệ quản trị cơ sở dữ liệu quan hệ (RDBMS) vẫn có thể được sử dụng để quản lý lượng dữ liệu khổng lồ này, nhưng thực tế cho thấy nhiều bất cập.

Trên thực tế, lượng dữ liệu lớn sẽ được lưu trữ phân tán trên nhiều máy chủ khác nhau. Các RDBMS tuy xử lý tốt nhiệm vụ quản lý dữ liệu tập trung, song vì tính tập trung này lại tạo ra khó khăn cho hệ thống khi muốn mở rộng. Mặt khác, RDBMS vốn tồn tại một số khuyết điểm như không xử lý tốt các dữ liệu phi cấu trúc, tốc độ xử lý dữ liệu khá chậm do cần join nhiều bảng khác nhau, hay khó khăn trong việc thay đổi cơ sở dữ liệu do tính quy củ chặt chẽ của nó. Vì vậy, RDBMS không còn phù hợp với các hệ thống như trên nữa. Người ta phát triển các DBMS mới phù hợp để quản lý dữ liệu phân tán, gọi là NoSQL (not only SQL).

Hiện nay có khoảng 150 hệ quản trị cơ sở dữ liệu phân tán NoSQL. Một số đại diện tiêu biểu gồm Cassandra, MongoDB, SimpleDB, BigTable, CouchDB… Dưới đây là tài liệu trình bày về Cassandra.

CHƯƠNG I. GIỚI THIỆU CHUNG VỀ APACHE CASSANDRA

1. Lịch sử phát triển




Apache Cassandra là một hệ quản trị cơ sở dữ liệu mã nguồn mở, phân tán, sở hữu tất cả đặc điểm của NoSQL nói chung và mang những lợi thế riêng đối với các hệ quản trị cơ sở dữ liệu NoSQL khác. Cassandra được phát triển dựa trên công nghệ của Google Bigtable và Amazon Dynamo, ngôn ngữ phát triển là Java.

Ban đầu, Apache Cassandra được phát triển bởi Facebook phục vụ cho chức năng tìm kiếm hộp thư. Tháng 7/2008, Cassandra trở thành một dự án mã nguồn mở. Đến tháng 3/2009, Cassandra được nhận bởi Apache và không lâu sau đó, vào tháng 2/2010, Cassandra đã trở thành một trong những dự án cao cấp nhất của Apache. Phiên bản mới nhất hiện nay của Cassandra là 4.0. 

Apache Cassandra hiện đang được sử dụng rộng rãi trên toàn thế giới, tiêu biểu là một số tập đoàn lớn như Netflix, eBay, Twitter, Facebook, Reddit…

2. Các thuật ngữ thường dùng

CLUSTER : Cluster là hai hay nhiều Cassandra instance kết hợp cùng với nhau, các instance này giao tiếp với nhau thông qua giao thức gossip.

NODE : Một node là một instance của Cassandra, một Cassandra cluster được tạo nên bởi một tập các node.

REPLICATION FACTOR (RF) : Là tham số quyết định số bản copy của dữ liệu trong một cluster. RF đồng thời cũng quyết định số node phản hồi cho các hành động read và write dữ liệu.

CONSISTENCY LEVEL: Là khả năng quyết định mức độ phản hồi từ server về client khi thực hiện các hành động đọc và ghi dữ liệu.

Figure 2. Thuật ngữ trong Cassandra Model

GOSSIP PROTOCOL : Là giao thức truyền thông giữa các node trong cùng cluster.

Nhận xét

Bài đăng phổ biến từ blog này

Mô hình dữ liệu trong Cassandra

Các loại cấu trúc liên kết mạng (Network Topology)