Cassandra là gì? Tìm hiểu về Cassandra và cách hoạt động
13/11/2025Cassandra là cơ sở dữ liệu NoSQL dùng để xử lý dữ liệu lớn với khả năng mở rộng ngang mạnh và độ sẵn sàng rất cao. Hiện nay, Apache Cassandra đã trở thành lựa chọn lý tưởng cho các hệ thống thời gian thực hay ứng dụng có dữ liệu phân tán trên nhiều máy chủ. Viettel IDC sẽ cùng bạn tìm hiểu rõ Cassandra là gì, cách hoạt động, ưu nhược điểm và so sánh với các hệ quản trị khác.
Cassandra là gì?
Cassandra (hay Apache Cassandra) là một hệ quản trị cơ sở dữ liệu NoSQL mã nguồn mở, được phát triển để xử lý lượng dữ liệu lớn trên nhiều máy chủ thông thường. Hệ thống này ưu tiên tính khả dụng và khả năng mở rộng hơn là tính nhất quán chặt chẽ, do đó rất thích hợp cho các ứng dụng ghi nhiều dữ liệu với độ trễ thấp.
Cassandra ra đời tại Facebook năm 2008, được đưa vào Apache Incubator năm 2009 và trở thành dự án Top-level năm 2010. Cassandra là kho dữ liệu cột rộng , hỗ trợ lược đồ linh hoạt và tổ chức dữ liệu thành các keyspace và bảng. Ban đầu được phát triển bởi Avinash Lakshman và Prashant Malik tại Facebook để hỗ trợ chức năng hộp thư đến, Cassandra được đặt tên theo nhân vật Cassandra trong thần thoại, người tiên tri nhưng không ai tin.
Cơ chế hoạt động của Apache Cassandra
Kiến trúc phi tập trung Peer-to-Peer
Cassandra vận hành dựa trên kiến trúc phi tập trung hoàn toàn (peer-to-peer), mọi node trong cụm đều có vai trò ngang hàng. Không có node chủ hay cơ chế điều phối trung tâm, vì vậy hệ thống không tồn tại điểm lỗi đơn lẻ.
Các node trao đổi tình trạng hoạt động với nhau thông qua giao thức Gossip, giúp cập nhật thông tin về node mới, node mất kết nối hoặc thay đổi trạng thái. Mỗi node giữ danh sách seed để làm điểm khởi tạo liên lạc và tự cập nhật dần với toàn cụm. Nhờ cấu trúc này, nếu một node hoặc thậm chí một rack gặp sự cố, cụm Cassandra vẫn hoạt động nhờ các bản sao dữ liệu nằm trên các node khác, đảm bảo tính sẵn sàng rất cao.
Mô hình dữ liệu và phân vùng
Dữ liệu trong Cassandra được tổ chức theo keyspace tương tự như database . Bên trong là các bảng có cấu trúc linh hoạt, cho phép sự khác biệt về cột giữa các hàng.
Một bảng được xác định bởi Primary Key, gồm khóa phân vùng và các cột phân loại. Cassandra sử dụng cơ chế băm nhất quán để phân phối dữ liệu khắp cụm dựa trên giá trị của khóa phân vùng.
Các điểm chính về mô hình dữ liệu và phân vùng:
- Partition Key được băm thành token rồi đặt vào vòng dữ liệu (ring).
- Tất cả các hàng có cùng Partition Key được lưu trong cùng một partition.
- Partition được sao chép sang nhiều node tùy theo Replication Factor (RF).
- NetworkTopologyStrategy giúp tối ưu sao chép dữ liệu giữa các datacenter và rack.
- Cấu trúc wide-column cho phép các hàng linh hoạt và mở rộng dễ dàng.
Đường dẫn ghi trong Cassandra (Write Path)
Khi hệ thống nhận yêu cầu ghi, node tiếp nhận trở thành coordinator và xử lý theo ba bước chính sau:
- Bước 1: dữ liệu được ghi vào commit log trên đĩa để đảm bảo độ bền vững, tránh mất dữ liệu khi có sự cố. Đồng thời, bản ghi được đưa vào Memtable – vùng nhớ tạm chứa dữ liệu mới.
- Bước 2: Khi Memtable đạt đến ngưỡng đầy, Cassandra tạo mới SSTable trên đĩa và flush toàn bộ dữ liệu xuống.
- Bước 3: Coordinator trả ACK cho client, giúp tối ưu tốc độ ghi. Các SSTable sau đó được compact định kỳ để hợp nhất, giảm trùng lặp và cải thiện hiệu năng truy vấn.
Đường dẫn đọc trong Cassandra (Read Path)
Khi nhận yêu cầu đọc, coordinator sẽ băm Partition Key để xác định node chứa dữ liệu cần truy vấn. Coordinator gửi yêu cầu đến replica nhanh nhất, đồng thời gửi thêm yêu cầu digest đến các replica còn lại để đối chiếu tính nhất quán dữ liệu. Nếu xuất hiện chênh lệch, coordinator sẽ thu thập dữ liệu mới nhất và kích hoạt cơ chế sửa lỗi.
Tính nhất quán và mô hình CAP
Cassandra áp dụng mô hình tính nhất quán cuối (eventual consistency) nhưng cho phép tùy chỉnh mức độ nhất quán thông qua tunable consistency. Người dùng có thể chọn các mức như ONE, QUORUM hoặc ALL cho từng truy vấn.
Theo định lý CAP, Cassandra nằm trong nhóm AP, ưu tiên khả năng chịu chia tách mạng và tính sẵn sàng. Dù vậy, dựa vào cách cấu hình, người dùng vẫn có thể đạt tính nhất quán mạnh bằng QUORUM/ALL cho cả đọc và ghi.
Cassandra sử dụng timestamp versioning và quy tắc last-write-wins để xác định bản ghi mới nhất. Các cơ chế như Hinted Handoff, Read Repair và Merkle Tree Repair giúp các replica dần hội tụ, đảm bảo dữ liệu luôn ổn định theo thời gian.
Ưu điểm và hạn chế của Apache Cassandra
Dù được đánh giá là một trong những hệ quản trị cơ sở dữ liệu NoSQL mạnh nhất hiện nay, Apache Cassandra vẫn có những ưu, nhược điểm riêng cần cân nhắc trước khi triển khai.
Ưu điểm
- Khả năng mở rộng mạnh mẽ: Hỗ trợ mở rộng ngang (horizontal scaling) gần như tuyến tính bằng cách thêm node, mà không có điểm nghẽn trung tâm. Dữ liệu tự động cân bằng tải và phân phối đều nhờ consistent hashing.
- Hiệu suất ghi/đọc cao: Kiến trúc LSM-tree và commit log cho phép thực hiện ghi rất nhanh (ghi là thao tác append-only) và đọc có thể tối ưu qua caching. Các benchmark cho thấy Cassandra có throughput và độ trễ tốt trong phân khúc NoSQL
- Độ sẵn sàng cao – chịu lỗi tốt: Mỗi node ngang hàng, không có master, kết hợp sao chép đa datacenter, giúp hệ thống luôn sẵn sàng ngay cả khi có node hoặc datacenter hỏng. Mất vài node không ảnh hưởng tới dịch vụ do replica lưu trữ dư thừa.
- Tính linh hoạt trong nhất quán: Cho phép điều chỉnh mức độ nhất quán theo nhu cầu. Có thể cấu hình mạnh (QUORUM/ALL) nếu cần chặt chẽ, hoặc để đạt tính sẵn sàng cao với mức ONE/LOCAL_ONE.
- Mô hình dữ liệu linh hoạt: Hỗ trợ schema ít ràng buộc, dễ thay đổi. Phù hợp với dữ liệu đa cấu trúc hoặc bổ sung cột mà không ảnh hưởng hàng hiện có.
- Cộng đồng và hệ sinh thái rộng: Là dự án Apache lớn, Cassandra có cộng đồng phát triển mạnh và nhiều công cụ, thư viện hỗ trợ. Rất nhiều công ty lớn như Netflix, Apple, Instagram đều ứng dụng triển khai Cassandra.
Nhược điểm
- Mô hình dữ liệu phức tạp: Để đạt hiệu suất cao, cần thiết kế dữ liệu theo truy vấn. Cassandra không hỗ trợ joins, subqueries hay các truy vấn phức tạp; dữ liệu thường phải tái cấu trúc (denormalize) để truy vấn hiệu quả
- Thiếu tính năng giao dịch mạnh (ACID): Cassandra chỉ hỗ trợ giao dịch đơn giản (Lightweight Transactions) trên một partition với chi phí cao. Do đó, không phù hợp cho ứng dụng yêu cầu giao dịch phức tạp hoặc nhất quán nghiêm ngặt trên nhiều bản ghi.
- Học và vận hành khó: Việc triển khai và duy trì Cassandra ở quy mô lớn đòi hỏi kinh nghiệm. Cần điều chỉnh nhiều thông số (điều chỉnh compaction, GC, cấu hình cluster) để đạt tối ưu. Lỗi cấu hình hoặc chọn sai partition key có thể gây nghẽn hotspot hoặc kích thước partition quá lớn.
- Chi phí lưu trữ và cập nhật: Chiến lược write-once và tombstone để xóa có thể gây phân mảnh. Thao tác cập nhật hoặc xóa dữ liệu mạnh có thể tạo nhiều tombstone, ảnh hưởng đến hiệu năng.
- Không tối ưu cho workload nhỏ hoặc chỉ đọc: Nếu ứng dụng dữ liệu nhỏ, truy vấn đơn giản hoặc chủ yếu đọc, sử dụng Cassandra có thể khá thừa thãi. Cụm Cassandra thường phải có ít nhất 3 node để đảm bảo sao chép, không phù hợp cho môi trường đơn lẻ hoặc tải thấp.
Ứng dụng của Cassandra trong thực tế
Hệ thống nhắn tin và ứng dụng chat
Cassandra đặc biệt phù hợp với các nền tảng nhắn tin quy mô lớn nhờ khả năng ghi cực nhanh, tính chịu lỗi cao và khả năng mở rộng tuyến tính bằng cách chỉ cần bổ sung thêm node mới. Các ứng dụng chat thường tạo ra lượng lớn dữ liệu theo thời gian thực, yêu cầu lưu trữ liên tục và không được phép gián đoạn dịch vụ
Ứng dụng trong Internet of Things (IoT)
Apache Cassandra lý tưởng cho IoT vì có thể xử lý luồng dữ liệu thời gian thực và lưu lượng lớn từ nhiều thiết bị phân tán. Cơ chế ghi nối tiếp (append-only) giúp ghi dữ liệu cảm biến rất nhanh trên nhiều nút, cùng khả năng thêm/bớt node linh hoạt giúp mở rộng quy mô theo nhu cầu.
Bigmate – một nền tảng IoT – cho biết họ xử lý hàng triệu thao tác mỗi giây với Cassandra. Đây là điều mà mà MySQL hay MongoDB không thể đạt được
Phân tích mạng xã hội và hệ thống gợi ý
Cassandra cũng được tận dụng rộng rãi cho phân tích dữ liệu mạng xã hội và hệ thống gợi ý cá nhân hóa nhờ khả năng xử lý khối lượng sự kiện hành vi người dùng khổng lồ và cho phép truy vấn gần thời gian thực.
Chẳng hạn, Spotify dùng Cassandra làm cơ sở dữ liệu chính cho hệ thống cá nhân hóa. Cụm Cassandra đã mở rộng lưu trữ thuộc tính người dùng và metadata của playlist từ vài chục GB lên hơn 100 GB khi tăng gấp đôi số node, đồng thời giảm được gần một nửa độ trễ truy vấn.
So sánh Cassandra, ScyllaDB, MongoDB
Để lựa chọn cơ sở dữ liệu NoSQL phù hợp cho ứng dụng lớn, việc hiểu rõ sự khác biệt giữa Apache Cassandra, ScyllaDB và MongoDB là rất quan trọng. Mỗi hệ thống có thế mạnh riêng về hiệu suất, khả năng mở rộng, tính nhất quán và kiến trúc lưu trữ.
Kết luận
Thông quan những kiến thức được chia sẻ, bạn có thể hiểu được Cassandra là gì và tính ứng dụng của nó. Nếu bạn đang xây dựng một nền tảng cần xử lý dữ liệu lớn theo thời gian thực với độ tin cậy cao, Cassandra chắc chắn là một trong những giải pháp đáng cân nhắc nhất.
Để được hỗ trợ tư vấn và tìm hiểu các dịch vụ của Viettel, bạn có thể liên hệ trực tiếp tới Viettel IDC qua các kênh:
- Hotline: 1800 8088 (miễn phí cước gọi)
- Fanpage: https://www.facebook.com/viettelidc
Tin liên quan
"SOVEREIGN CLOUD" VÀ NGHỊCH LÝ CHUYỂN ĐỔI SỐ: GIẢI MÃ BÀI TOÁN TUÂN THỦ CHO NGÀNH TÀI CHÍNH & CHÍNH PHỦ
Các tổ chức thuộc nhóm ngành trọng yếu như tài chính, ngân hàng (BFSI) và cơ quan nhà nước đang khao khát hiện đại hóa hệ thống IT (chuyển đổi sang kiến trúc Microservices, sử dụng Container/Kubernetes) để tăng tốc độ triển khai dịch vụ và nâng cao trải nghiệm người dùng. Tuy nhiên, họ lại đang vấp phải một "nghịch lý" lớn: Càng muốn áp dụng công nghệ Cloud hiện đại, rào cản về tuân thủ pháp lý và an toàn thông tin càng trở nên khắt khe.
BÀI TOÁN "NOISY NEIGHBOR" TRÊN CLOUD VÀ CHIẾN LƯỢC TỐI ƯU HIỆU NĂNG CHO HỆ THỐNG CỐT LÕI
Trong kỷ nguyên mà dữ liệu là "dầu mỏ mới", việc vận hành các hệ thống xương sống (Core ERP, Core Banking) hay các workload tính toán chuyên sâu (AI, Machine Learning, Datalake) đòi hỏi năng lực phần cứng vô cùng mạnh mẽ.
"BÃO GIÁ" HẠ TẦNG CNTT VÀ BÀI TOÁN SỐNG CÒN CỦA DOANH NGHIỆP: VÌ SAO PRIVATE CLOUD DẠNG DỊCH VỤ LÊN NGÔI?
Làn sóng bùng nổ hạ tầng AI toàn cầu đang tạo ra một "cơn địa chấn" về giá phần cứng máy chủ, chip nhớ DRAM, ổ cứng doanh nghiệp và chi phí năng lượng. Đứng trước áp lực phải chuyển đổi số nhưng lại vấp phải bài toán chi phí đầu tư (CapEx) đắt đỏ cùng thời gian giao hàng kéo dài hàng tháng, các nhà quản trị công nghệ (CIO) và tài chính (CFO) đang tìm kiếm một hướng đi mới: Không cần bỏ hàng tỷ đồng mua sắm hạ tầng mà vẫn sở hữu riêng một hệ thống Private Cloud hoàn chỉnh, an toàn và sẵn sàng vận hành ngay lập tức.
Digital Workplace là gì? Xu hướng môi trường làm việc số cho doanh nghiệp
Digital Workplace là gì? Khám phá mô hình vận hành, thành phần, lợi ích, ứng dụng, thách thức và xu hướng môi trường làm việc số cho doanh nghiệp.
Lỗ hổng Shellshock là gì? Cơ chế, tác động và cách khắc phục
Lỗ hổng Shellshock (CVE-2014-6271) trong Bash là gì, vì sao nghiêm trọng? Tìm hiểu nguyên nhân, hệ thống bị ảnh hưởng và cách kiểm tra, vá lỗi.
Scratch là gì? Cách hoạt động, ứng dụng và đối tượng phù hợp
Scratch là gì? Tìm hiểu cách lập trình bằng khối lệnh, các khái niệm có thể học, ứng dụng thực tế và sự khác nhau giữa Scratch với ScratchJr.
Phân biệt các loại Web Hosting: Đâu là lựa chọn phù hợp cho website?
Phân biệt các loại Web Hosting và tìm hiểu cách mỗi mô hình hoạt động, từ đó lựa chọn giải pháp phù hợp với nhu cầu, quy mô và định hướng phát triển website.
Website có cần hosting không? Giải đáp chi tiết từ A-Z
Website có cần hosting không? Tìm hiểu vai trò của hosting, domain và các trường hợp cần và không cần mua hosting riêng cho website.
Top nhà cung cấp dịch vụ Cloud Camera uy tín tại Việt Nam
Top nhà cung cấp dịch vụ Cloud Camera uy tín tại Việt Nam, cùng tiêu chí lựa chọn và những lưu ý quan trọng trước khi đăng ký dịch vụ.
Trigger là gì trong DBMS? Cách hoạt động, các loại phổ biến và ứng dụng
Trigger là gì trong DBMS? Tìm hiểu cách trigger hoạt động, các loại phổ biến, ví dụ minh họa, ưu nhược điểm và khi nào nên sử dụng.
Bình luận ()