1. Aerospike là gì?
Aerospike là cơ sở dữ liệu phân tán NoQuery mã nguồn mở. Nó hỗ trợ mô hình lưu trữ key-value và document.
2. Tổng quan kiến trúc?
Kiến trúc aerospike gồm 3 lớp:
- Client layer
Aerospike client là lớp client nguồn mở. Nó tự động theo dõi cluster liên tục xem nên biết được truy cập dữ liệu từ vị trí nào trong một cụm cluster, tự động detect các transaction lỗi, và query lại ở một máy khác chứa cùng dữ liệu.
- Clustering and Data Distribution Layer
Lớp này quản lý các giao tiếp cluster, tự động fail-over, replication, cross-datacenter replication (XDR), và cân bằng tải lại và di chuyển dữ liệu thông minh.
- Data Storage Layer
Lớp này chịu trách nhiệm lưu trữ dữ liệu trong DRAM và Flash cho phản hồi nhanh.
Aerospike là một lưu trữ key-value với mô hình dữ liệu schemaless. Dữ liệu được đẩy vào trong các hộp chứa, namespace policy. Namespace chia dữ liệu thành các tập(set) tương tự như table trong RDBMS và các bản ghi(record) tương ứng với row trong RDBMS. Mỗi record được đánh một index key duy nhất trong tập set và một hoặc nhiều hơn các tên bins tương ứng với column trong RDBMS.
3. Tính năng nổi bật?
Hybrid Store: Lưu trữ kết hợp giúp chống phân mảnh, tối ưu hóa việc sử dụng đĩa giúp tăng hiệu suất của Aerospike và đồng thời cũng giảm chi phí.
Aerospike có thể lưu được dữ liệu ở các bộ nhớ sau và sự kết hợp giữa chúng:
- Dynamic Random Access Memory (DRAM).
- Non-volitile Memory extended (NVMe) Flash or Solid State Drive (SSD).
- Persistent Memory (PMEM).
- Traditional spinning media.
Cross-Datacenter Replication (XDR) Architecture
Là tính năng sao chép dữ liệu không đồng bộ giữa hai hoặc nhiều cụm khác nhau về mặt địa lý. [4]
4. Aerospike vs Redis?
Ban đầu việc triển khai với Redis khá đơn giản và dễ sử dụng. Nhưng khi mọi thứ thay đổi quá nhanh, khối lượng dữ liệu và khối lượng công việc liên tục tăng.
- Total cost of ownership (TCO)
Redis: Việc mở rộng quy mô sẽ tốn thêm DRAM và DRAM thì đắt, hơn nữa việc tăng số lượng cluster cũng chẳng dễ dàng.
Aerospike: Do cơ chế lưu trữ Hybrid nên ta có thể kết hợp lưu trữ nhiều nơi việc này giúp tối ưu hiệu suất và tiết kiệm chi phí.
- Tính nhất quán dữ liệu
Redis: Redis không vượt qua bài kiểm tra Jepsen (tính nhất quán). Redis chỉ có tính nhất quán "cuối cùng", dẫn đến việc đọc dữ liệu cũ hoặc mất dữ liệu (trong trường hợp tràn data).
Aerospike: vượt qua bài kiểm tra Jepsen [2], [3]. Aerospike cũng đảm bảo rằng dữ liệu sẽ được đồng nhất giữa các node trước khi giao dịch xảy ra.
- Hiệu suất
5. Tổng kết
Cũng tùy thuộc vào yêu cầu của bài toán mà chúng ta chọn DB phù hợp. Với những bài toán xử lí dữ liệu lớn, độ trễ thấp, dễ mở rộng và tiết kiệm chi phí thì Aerospike là lựa chọn đáng cân nhắc.
---------------------------------------
Tham khảo:
[1] https://docs.aerospike.com/docs/architecture/storage.html
[2] https://jepsen.io/analyses/aerospike-3-99-0-3
[3] https://aerospike.com/blog/aerospike-4-strong-consistency-and-jepsen/
[4] https://aerospike.com/products/features/cross-datacenter-replication-xdr/