Cachey đã xuất hiện như một giải pháp bộ nhớ đệm chuyên biệt được thiết kế để tăng tốc truy cập vào các hệ thống lưu trữ đối tượng như Amazon S3 . Bộ nhớ đệm read-through này kết hợp bộ nhớ và lưu trữ đĩa để tạo ra một hệ thống lai nhằm giảm độ trễ và chi phí cho các ứng dụng thường xuyên truy cập cùng một dữ liệu từ lưu trữ đám mây.
Hệ thống sử dụng một cách tiếp cận độc đáo với kích thước trang cố định 16 MiB , ánh xạ bất kỳ phạm vi byte được yêu cầu nào thành các tra cứu được căn chỉnh theo trang. Lựa chọn thiết kế này giúp tối ưu hóa hiệu quả bộ nhớ đệm trong khi hỗ trợ các yêu cầu phạm vi HTTP tiêu chuẩn mà nhiều ứng dụng dựa vào để phát trực tuyến phương tiện và truy cập tệp lớn.
Thông số kỹ thuật chính
- Kích thước trang: Các trang cố định 16 MiB cho tất cả dữ liệu được lưu trong cache
- Loại Cache: Bộ nhớ hybrid + lưu trữ đĩa sử dụng thư viện foyer
- Bộ nhớ mặc định: 4 GiB (có thể cấu hình với các đơn vị như "512MiB", "2GB", "1.5GiB")
- Sử dụng đĩa: Tối đa 80% dung lượng có sẵn (nếu không được chỉ định)
- Hedged Requests: Ngưỡng độ trễ percentile thứ 99 mặc định
- API: HTTP đơn giản với các header Range bắt buộc
- Giới hạn Bucket: Tối đa 2 bucket được thử nghiệm cho mỗi lần miss trang
- Hỗ trợ TLS: Chứng chỉ tự ký hoặc cặp cert/key tùy chỉnh
Thách thức triển khai đa vùng gây ra thảo luận
Cộng đồng đã đặt ra những câu hỏi quan trọng về tính phù hợp của Cachey cho các môi trường sản xuất có tính khả dụng cao, đa vùng. Không giống như triển khai vùng khả dụng đơn lẻ nơi bộ nhớ đệm có thể cung cấp lợi ích rõ ràng, các thiết lập đa vùng đưa ra những đánh đổi phức tạp giữa tính nhất quán bộ nhớ đệm, chi phí mạng liên vùng và hiệu suất.
Đây là bộ nhớ đệm read through phía người dùng, vì vậy không cần tính nhất quán bộ nhớ đệm chủ động như vậy. Nhưng sẽ có một hình phạt hiệu suất khi tìm nạp dữ liệu dưới tranh chấp ghi bất kể bạn có az đơn/AZ đa hay không.
Các nhà phát triển thừa nhận hạn chế này và hiện tại khuyến nghị triển khai theo vùng với auto-scaling, có nghĩa là chấp nhận tăng chi phí cơ sở hạ tầng hoặc chi phí mạng liên vùng. Cách tiếp cận này hoạt động tốt với dữ liệu bất biến nhưng có thể không phù hợp với tất cả các kịch bản doanh nghiệp.
Khả năng tích hợp và các trường hợp sử dụng
Các thành viên cộng đồng đã đề xuất những cơ hội tích hợp thú vị, bao gồm các frontend NBD ( Network Block Device ) có thể biến các đối tượng được lưu trong bộ nhớ đệm thành thiết bị Linux hoặc lưu trữ sao lưu cho máy ảo. Điều này sẽ mở rộng tiện ích của Cachey vượt ra ngoài các ứng dụng web truyền thống vào các kịch bản cơ sở hạ tầng và ảo hóa.
Bộ nhớ đệm có vẻ có lợi nhất cho các khối lượng công việc có mẫu truy cập lặp lại, chẳng hạn như cơ sở dữ liệu được xây dựng trên lưu trữ đối tượng hoặc các ứng dụng phục vụ cùng một nội dung nhiều lần. Tuy nhiên, các ứng dụng đã sử dụng bộ nhớ đệm trong bộ nhớ có thể cần đánh giá xem độ phức tạp bổ sung có mang lại lợi ích đủ so với việc đơn giản tăng kích thước bộ nhớ đệm hiện có của họ hay không.
Tùy chọn Cấu hình API
Header | Bắt buộc | Mô tả |
---|---|---|
Range |
Có | Phạm vi byte theo định dạng bytes=(đầu)-(cuối) |
CO-Bucket |
Không | Bucket(s) chứa đối tượng (thứ tự ưu tiên) |
CO-Config |
Không | Ghi đè cấu hình yêu cầu S3 với các cặp phân tách bằng dấu cách |
Tham số CO-Config:
ct=<ms>
- Thời gian chờ kết nốirt=<ms>
- Thời gian chờ đọc (thời gian đến byte đầu tiên)ot=<ms>
- Thời gian chờ thao tác (qua các lần thử lại)oat=<ms>
- Thời gian chờ thử thao tácma=<num>
- Số lần thử tối đaib=<ms>
- Thời gian backoff ban đầumb=<ms>
- Thời gian backoff tối đa
Tính năng tối ưu hóa hiệu suất
Cachey bao gồm một số tính năng nâng cao để quản lý độ trễ không thể đoán trước thường liên quan đến lưu trữ đối tượng. Hệ thống thực hiện các yêu cầu hedged, gửi các yêu cầu trùng lặp sau một ngưỡng độ trễ nhất định để cải thiện thời gian phản hồi. Nó cũng có thể thử các yêu cầu đến các bucket dự phòng, cung cấp các tùy chọn dự phòng khi lưu trữ chính trở nên chậm hoặc không khả dụng.
Kiến trúc lai memory-disk được hỗ trợ bởi thư viện bộ nhớ đệm foyer cho phép quản lý dung lượng linh hoạt. Người dùng có thể cấu hình cả giới hạn bộ nhớ và đường dẫn lưu trữ đĩa, với hệ thống tự động sử dụng tới 80% không gian đĩa có sẵn nếu không được chỉ định khác.
Mặc dù Cachey cho thấy triển vọng cho các trường hợp sử dụng cụ thể liên quan đến lưu trữ blob bất biến, kiến trúc hiện tại của nó hoạt động tốt nhất trong các triển khai một vùng hoặc các kịch bản nơi chi phí mạng liên vùng là có thể chấp nhận được. Các tổ chức đang xem xét triển khai nên đánh giá cẩn thận các mẫu truy cập và yêu cầu cơ sở hạ tầng của họ so với những đánh đổi này.
Tham khảo: Cachey