Cassandra là gì? Vì sao Facebook tạo ra Cassandra

Cơ sở dữ liệu quan hệ đã lâu đời và chứng minh sự thành công trong nhiều ứng dụng khác nhau, tuy nhiên, cũng cần nhận thức rằng không phải lúc nào chúng cũng là lựa chọn tốt nhất. Trong bối cảnh nhu cầu xử lý dữ liệu ngày càng tăng lên, Apache Cassandra nổi lên như một giải pháp tối ưu cho nhiều bài toán phức tạp về dữ liệu. Bài viết này sẽ giúp bạn hiểu rõ hơn về Cassandra, kiến trúc của nó cũng như ứng dụng trong thực tế.

1. Apache Cassandra là gì?

Apache Cassandra là một cơ sở dữ liệu mã nguồn mở, phân tán, phi tập trung và có khả năng mở rộng linh hoạt. Được phát triển bởi Facebook vào năm 2007, Cassandra kết hợp những ưu điểm của kiến trúc phi tập trung và phương pháp tổ chức dữ liệu column-oriented. Một trong những điểm nổi bật của Cassandra chính là tính sẵn sàng cao và khả năng chịu lỗi tuyệt vời.

Kiến trúc phân tán của CassandraKiến trúc phân tán của Cassandra

Kiến trúc của Cassandra được lấy cảm hứng từ Dynamo của Amazon và Bigtable của Google, cho phép Cassandra vận hành hiệu quả trên nhiều máy chủ phân tán toàn cầu, như Facebook, Netflix, Apple và Uber.

2. Kiến trúc của Cassandra

  • Kiến trúc phân tán (Distributed Architecture):

    • Dữ liệu được phân chia thành các partition nhờ hàm băm (Murmur3). Mỗi khoá phân vùng sẽ xác định vị trí lưu trữ trên các node trong cluster, với sao chép dữ liệu (replication) theo mức độ Replication Factor đã được định nghĩa.
    • Điểm khác biệt so với RDBMS là dữ liệu trong Cassandra không phụ thuộc vào một máy chủ duy nhất, giúp hệ thống trở nên linh hoạt và khắc phục sự cố dễ dàng hơn.
  • Phi tập trung (Decentralized):

    • Trong Cassandra, mọi node đều ngang hàng (peer-to-peer) mà không có master hay slave, nhờ vậy hệ thống có thể tự động chia tải và đảm bảo không có thời gian chết do thay đổi cấu hình.
  • Khả năng mở rộng linh hoạt (Linear Scalability):

    • Chỉ cần thêm node mới vào cluster là có thể mở rộng mà không làm gián đoạn dịch vụ.
  • Tính sẵn sàng cao (Highly Available) và Chịu lỗi tốt (Fault Tolerant):

    • Điều này có nghĩa là ngay cả khi một hoặc nhiều node gặp sự cố, dữ liệu vẫn có thể được truy cập thông qua các bản sao (replicas) trên các node khác.
  • Điều chỉnh độ nhất quán (Tunable Consistency):

    • Cassandra cung cấp khả năng điều chỉnh độ nhất quán theo nhu cầu của ứng dụng, từ mạnh đến yếu tùy thuộc vào yêu cầu cụ thể.
  • Dữ liệu dạng column-oriented:

    • Cassandra tổ chức dữ liệu theo cấu trúc column family, cho phép truy vấn theo cột hiệu quả hơn mà không cần phải đọc toàn bộ hàng như trong RDBMS.

3. Cassandra trong giải pháp Inbox Search

Một trong những ứng dụng điển hình của Cassandra là phục vụ cho tính năng Inbox Search. Yêu cầu đặt ra rất rõ ràng:

  • Hiệu suất ghi cao:

    • Hệ thống cần xử lý lượng lớn hoạt động ghi đồng thời mà không gây ra độ trễ, đảm bảo dữ liệu được lưu trữ ngay lập tức.
  • Tìm kiếm nhanh:

    • Người dùng mong muốn có ngay kết quả tìm kiếm chính xác mà không phải chờ đợi, ngay cả khi khối lượng tin nhắn rất lớn.

Sự kết hợp giữa kiến trúc peer-to-peer và khả năng mở rộng của Cassandra giúp cho quá trình ghi dữ liệu nhanh chóng và hiệu quả. Mỗi tin nhắn được ghi vào các node gần nhất, tránh tình trạng tranh chấp khi gửi đi. Cassandra còn sử dụng các cơ chế như hinted handoff và read repair để nâng cao tính nhất quán và khả năng truy cập dữ liệu ở mọi thời điểm.

Lấy ví dụ ở đây, khi người dùng Mỹ gửi tin nhắn, dữ liệu sẽ được ghi lại tại các node gần nhất với họ. Mặc dù quá trình sao chép dữ liệu sang các trung tâm dữ liệu khác (như Việt Nam) diễn ra không đồng bộ, nhưng người dùng tại Việt Nam vẫn nhận được tin nhắn ngay lập tức thông qua hệ thống replica có sẵn.

4. Kết luận

Apache Cassandra là một công cụ mạnh mẽ cho các bài toán yêu cầu xử lý dữ liệu nặng, đặc biệt là trong những lĩnh vực như nhắn tin trực tuyến hoặc các ứng dụng cần hiệu suất và tính khả dụng cao. Mặc dù thông tin về nó có thể không nhiều, nhưng những gì mà Cassandra mang lại là đáng để bạn khám phá và áp dụng.

Có thể bạn sẽ quan tâm đến những bài viết liên quan khác trên comdy.vn, nơi cung cấp thông tin giá trị và hữu ích về marketing, công nghệ và nhiều chủ đề khác.

Để lại một bình luận

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *