Cachey telah muncul sebagai solusi caching khusus yang dirancang untuk mempercepat akses ke sistem penyimpanan objek seperti Amazon S3. Cache read-through ini menggabungkan memori dan penyimpanan disk untuk menciptakan sistem hybrid yang bertujuan mengurangi latensi dan biaya untuk aplikasi yang sering mengakses data yang sama dari cloud storage.
Sistem ini menggunakan pendekatan unik dengan ukuran halaman tetap 16 MiB, memetakan setiap rentang byte yang diminta ke pencarian yang selaras dengan halaman. Pilihan desain ini membantu mengoptimalkan efisiensi cache sambil mendukung permintaan rentang HTTP standar yang diandalkan banyak aplikasi untuk streaming media dan akses file besar.
Spesifikasi Teknis Utama
- Ukuran Halaman: Halaman tetap 16 MiB untuk semua data yang di-cache
- Jenis Cache: Penyimpanan hybrid memori + disk menggunakan pustaka foyer
- Memori Default: 4 GiB (dapat dikonfigurasi dengan unit seperti "512MiB", "2GB", "1.5GiB")
- Penggunaan Disk: Hingga 80% dari ruang yang tersedia (jika tidak ditentukan)
- Hedged Requests: Ambang batas latensi persentil ke-99 secara default
- API: HTTP sederhana dengan header Range yang diperlukan
- Batas Bucket: Maksimum 2 bucket dicoba per page miss
- Dukungan TLS: Sertifikat self-signed atau pasangan cert/key kustom
Tantangan Deployment Multi-Zone Memicu Diskusi
Komunitas telah mengangkat pertanyaan penting tentang kesesuaian Cachey untuk lingkungan produksi multi-zone dengan ketersediaan tinggi. Tidak seperti deployment zona ketersediaan tunggal di mana cache dapat memberikan manfaat yang jelas, pengaturan multi-zone menghadirkan trade-off kompleks antara koherensi cache, biaya jaringan lintas zona, dan performa.
Ini adalah cache read through di sisi pengguna, jadi tidak perlu koherensi cache pre-emptive sebagai hal tersebut. Tetapi akan ada penalti performa untuk mengambil data di bawah konteks penulisan terlepas dari apakah Anda memiliki single az/multiple AZ.
Para pengembang mengakui keterbatasan ini dan saat ini merekomendasikan deployment per-zona dengan auto-scaling, yang berarti menerima peningkatan biaya infrastruktur atau biaya jaringan lintas zona. Pendekatan ini bekerja dengan baik untuk data yang tidak dapat diubah tetapi mungkin tidak cocok untuk semua skenario enterprise.
Kemungkinan Integrasi dan Kasus Penggunaan
Anggota komunitas telah menyarankan peluang integrasi yang menarik, termasuk frontend NBD (Network Block Device) yang dapat mengubah objek yang di-cache menjadi perangkat Linux atau penyimpanan pendukung untuk mesin virtual. Ini akan memperluas utilitas Cachey melampaui aplikasi web tradisional ke dalam skenario infrastruktur dan virtualisasi.
Cache tampaknya paling bermanfaat untuk beban kerja dengan pola akses berulang, seperti database yang dibangun di atas penyimpanan objek atau aplikasi yang melayani konten yang sama berkali-kali. Namun, aplikasi yang sudah menggunakan caching in-memory mungkin perlu mengevaluasi apakah kompleksitas tambahan memberikan manfaat yang cukup dibandingkan dengan hanya meningkatkan ukuran cache yang sudah ada.
Opsi Konfigurasi API
Header | Wajib | Deskripsi |
---|---|---|
Range |
Ya | Rentang byte dalam format bytes=(pertama)-(terakhir) |
CO-Bucket |
Tidak | Bucket yang berisi objek (urutan preferensi) |
CO-Config |
Tidak | Menimpa konfigurasi permintaan S3 dengan pasangan yang dipisahkan spasi |
Parameter CO-Config:
ct=<ms>
- Timeout koneksirt=<ms>
- Timeout baca (waktu-ke-byte-pertama)ot=<ms>
- Timeout operasi (lintas percobaan ulang)oat=<ms>
- Timeout percobaan operasima=<num>
- Maksimum percobaanib=<ms>
- Durasi backoff awalmb=<ms>
- Durasi backoff maksimum
Fitur Optimasi Performa
Cachey mencakup beberapa fitur canggih untuk mengelola latensi yang tidak dapat diprediksi yang sering dikaitkan dengan penyimpanan objek. Sistem ini membuat hedged requests, mengirim permintaan duplikat setelah ambang latensi tertentu untuk meningkatkan waktu respons. Sistem ini juga dapat mencoba permintaan ke bucket redundan, menyediakan opsi fallback ketika penyimpanan utama menjadi lambat atau tidak tersedia.
Arsitektur hybrid memori-disk yang didukung oleh library caching foyer memungkinkan manajemen kapasitas yang fleksibel. Pengguna dapat mengonfigurasi batas memori dan jalur penyimpanan disk, dengan sistem secara otomatis menggunakan hingga 80% dari ruang disk yang tersedia jika tidak ditentukan sebaliknya.
Meskipun Cachey menunjukkan potensi untuk kasus penggunaan spesifik yang melibatkan penyimpanan blob yang tidak dapat diubah, arsitektur saat ini bekerja paling baik dalam deployment zona tunggal atau skenario di mana biaya jaringan lintas zona dapat diterima. Organisasi yang mempertimbangkan implementasi harus dengan hati-hati mengevaluasi pola akses dan persyaratan infrastruktur mereka terhadap trade-off ini.
Referensi: Cachey