- Công cụ lưu trữ nhúng được xây dựng trên Log-Structured Merge-tree (LSM-tree)
- Khác với các công cụ lưu trữ LSM-tree hiện có, SlateDB ghi dữ liệu vào object storage (S3, GCS, ABS, MinIO, Tigris, v.v.)
- Tận dụng object storage để cung cấp dung lượng lưu trữ gần như vô hạn, độ bền cao và khả năng sao chép dễ dàng
- Tuy nhiên, nhược điểm của object storage là độ trễ cao hơn đĩa cục bộ và phát sinh chi phí API
Chiến lược né tránh nhược điểm của SlateDB
- Xử lý ghi theo lô để giảm chi phí API ghi (PUT) cao
- Thay vì ghi mọi lệnh gọi
put() vào object storage, MemTable sẽ được flush định kỳ thành Sorted String Table (SST) lên object storage
- Có thể cấu hình khoảng thời gian flush
- Cung cấp phương thức
put bất đồng bộ để giảm cả độ trễ ghi
- Client ưu tiên độ bền mạnh có thể
await trong put cho đến khi MemTable được flush lên object storage (đánh đổi giữa độ trễ và độ bền)
- Client ưu tiên độ trễ thấp có thể bỏ qua future được trả về từ
put
- Sử dụng các kỹ thuật cache LSM-tree tiêu chuẩn để giảm độ trễ đọc và chi phí API đọc (GET)
- Block cache trong bộ nhớ, nén, Bloom filter, local SST disk cache
Chưa có bình luận nào.