Cassandra là gì?
Cassandra là một quản trị hệ cơ sở dữ liệu phân tán mã nguồn mở được thiết kế để xử lý một khối lượng lớn dữ liệu giàn trải trên nhiều node mà vẫn đảm bảo tính sẵn sàng cao (Highly Availability), khả năng mở rộng hay thu giảm số node linh hoạt (Elastic Scalability) và chấp nhận một số lỗi (Fault Tolerant). Nó được phát triển bởi Facebook và vẫn còn tiếp tục phát triển và sử dụng cho mạng xã hội lớn nhất thới giới này. Năm 2008, Facebook chuyển nó cho cộng đồng mã nguồn mở và được Apache tiếp tục phát triển đến ngày hôm nay. Cassandra được coi là sự kết hợp của Amazon’s Dynamo và Google’s BigTable.
Đặc trưng của hệ quan trị cơ sở dữ liệu Cassandra:
Tính phân tán và không tập trung (Distributed and Decentralized)
Khả năng phân chia dữ liệu thành nhiều phần, đặt trên nhiều node khác nhau trong khi người dùng vẫn nhận thấy dữ liệu này là một khối thống nhất.
Tính mềm dẻo (Elastic Scalability)
Hệ thống có thể dễ dàng mở rộng số node trong cluster để có thể phục vụ số lượng request lớn và rút bớt số node khi số lượng request giảm.
Tính sẵn sàng cao (High Availability)
Dữ liệu được sao lưu thành nhiều bản và được chia thành nhiều node. Điều này mang lại khả năng đáp ứng ngay lập tức cho Cassandra khi Client thực hiện tác vụ đọc hay ghi bằng cách thực hiện trên bản sao gần nhất hoặc trên tất cả các bản sao (phụ thuộc vào thông số Consistency Level do Client thiết lập).
Tính chấp nhận lỗi (Fault Tolerance)
Do dữ liệu được sao chép thành nhiều bản trên các node của cluster nên kể cả khi dữ liệu ở một node nào đó bị lỗi, bạn vẫn có thể truy xuất dữ liệu của mình trên một node khác.
Tuneable Consistency
Trong Cassandra, consistency không phải một hoặc tất cả đề xuất. Vì vậy ta có thể giới hạn chính xác hơn đó là Tuneable Consistency bởi vì khách hàng có thể kiểm soát số lượng bản sao để chặn với tất cả các bản cập nhật. Điều này được thực hiện bằng cách thiết lập các mức độ chống lại nhân tố là các bản sao.
Replication factor cho bạn quyền quyết định chi phí mà bạn muốn bỏ ra với hiệu năng để tăng thêm tính trong suốt. Bạn thiết lập repication factor đến số lượng các node trong cluster mà bạn muốn cập nhật để lan truyền (nhớ rằng cập nhật có bao gồm các tác vụ thêm, cập nhất và xóa).
ConsistencyLevel là thiết lập mà client có thể chỉ rõ ở tất cả các giao dịch và nó cho phép bạn quyết định số lượng bản sao trong cluster được công nhận như là một bản ghi hoạt động hoặc đáp ứng cho việc đọc để cân nhắc thành công. Đó là một phần nơi mà Cassandra đưa các quyết định cho việc xác định tính thống nhất đến khách hàng.
Tính hướng cột (Column oriented Key-Value store)
Các RDBMS hướng dòng (row-oriented) phải định nghĩa trước các cột (column) trong các bảng (table). Đối với Cassandra các bạn không phải làm điều đó, đơn giản là thêm vào bao nhiêu cột cũng được tùy theo nhu cầu của bạn
Hiệu năng cao (High Performance)
Cassandra được thiết kế riêng biệt từ sơ khai cho đến khi đầy đủ lợi ích cho máy đa luồng/đa lõi và được chạy trên hàng chục những máy được đặt trong các trung tâm dữ liệu với quy mô nhất quán và liên tục với hàng trăm terabyte dữ liệu. Cassandra đã được chứng mình là hoạt động đặc biệt tốt với yêu cầu tải nặng. Nó luôn có thể hiện thị rất nhanh chóng để ghi mỗi giây trên một máy trạm cơ bản. Khi bạn bổ sung thêm các máy chủ, bạn có thể duy trì tất cả các tính chất mong muốn mà hiệu suất không hề bị giảm sút.
Cài đặt và cấu hình Cassandra trên Centos
Nguồn: Blog Lập Trình