Teknologi penyimpanan cache jarak jauh baru dari Microsoft Research, 'Garnet'
(github.com/microsoft)-
Pengenalan Garnet
- Garnet, penyimpanan cache jarak jauh baru yang dikembangkan oleh Microsoft Research, menawarkan sejumlah keunggulan unik.
- Berdasarkan wire protocol RESP yang populer, sehingga klien Redis yang tersedia di sebagian besar bahasa pemrograman dapat digunakan tanpa modifikasi.
- Memberikan throughput dan skalabilitas yang lebih baik pada banyak koneksi klien dan pekerjaan batch kecil, sehingga membantu menurunkan biaya untuk aplikasi dan layanan berskala besar.
- Mencapai latensi klien yang sangat rendah (kurang dari 300 mikrodetik pada persentil 99,9%) dengan menggunakan Azure cloud VM dengan accelerated TCP yang diaktifkan.
- Dibangun di atas teknologi .NET terbaru, Garnet bersifat lintas platform, dapat diperluas, dan memiliki desain modern.
- Memanfaatkan ekosistem pustaka .NET yang kaya untuk memperluas cakupan API dan membuka peluang optimisasi.
-
Ringkasan fitur
- Garnet mengimplementasikan beragam API, termasuk operasi raw string, analitis, dan objek.
- Dapat menangani transaksi multi-key melalui transaksi RESP sisi klien dan stored procedure sisi server yang ditulis dalam C#.
- Pengguna dapat mendefinisikan operasi kustom untuk raw string dan tipe objek baru dengan memanfaatkan kenyamanan dan keamanan C#.
-
Pratinjau performa
- Situs web menampilkan beberapa hasil utama yang membandingkan Garnet dengan penyimpanan cache open source utama.
-
Sorotan desain
- Desain Garnet meninjau ulang seluruh stack penyimpanan cache, mulai dari menerima paket di jaringan, mem-parsing dan memproses operasi database, hingga melakukan interaksi dengan penyimpanan.
- Lapisan jaringan Garnet mewarisi desain shared memory yang terinspirasi dari riset sebelumnya, ShadowFax.
- Desain penyimpanan Garnet terdiri dari dua penyimpanan key-value Tsavorite yang ditentukan oleh operation log terpadu.
-
Mode klaster
- Selain berjalan pada node tunggal, Garnet mendukung mode klaster yang dapat membuat dan mengelola deployment sharding dan replikasi.
- Klaster masih dalam tahap pengerjaan.
-
Langkah berikutnya
- Anda dapat menuju ke situs dokumentasi, atau langsung ke bagian getting started maupun bagian rilis.
-
Lisensi
- Proyek ini dilisensikan di bawah lisensi MIT, dan Anda dapat merujuk ke file LICENSE.
-
Privasi
- Informasi mengenai privasi dapat ditemukan di situs web privasi Microsoft.
-
Berkontribusi
- Proyek ini menyambut kontribusi dan saran, dan sebagian besar kontribusi mengharuskan persetujuan terhadap CLA.
- Proyek ini mengadopsi Microsoft Open Source Code of Conduct, dan Anda dapat merujuk ke FAQ code of conduct atau menghubungi opencode@microsoft.com jika memiliki pertanyaan atau komentar tambahan.
-
Merek dagang
- Proyek ini dapat mencakup merek dagang atau logo untuk proyek, produk, atau layanan, dan penggunaan merek dagang atau logo Microsoft harus mengikuti panduan merek dagang dan brand Microsoft.
Opini GN⁺
- Garnet adalah penyimpanan cache baru yang kompatibel dengan klien Redis yang sudah ada sekaligus menawarkan performa dan skalabilitas lebih tinggi, sehingga bisa menarik bagi perusahaan yang mengoperasikan layanan cloud berskala besar.
- Diperlukan data jangka panjang mengenai seberapa stabil teknologi ini bekerja di lingkungan nyata, serta manfaat praktis apa yang diberikannya dibandingkan solusi cache yang sudah ada.
- Fakta bahwa mode klaster Garnet masih dalam pengembangan dapat menjadi pertimbangan penting bagi pengguna yang merencanakan deployment skala besar.
- Karena Garnet tersedia sebagai open source, ada kemungkinan lebih banyak fitur dan perbaikan akan hadir melalui kontribusi komunitas, yang dapat membantu meningkatkan kematangan teknologinya.
- Sebelum mengadopsi Garnet, perlu dipertimbangkan kompatibilitas dengan sistem yang ada, biaya dibandingkan peningkatan performa, serta potensi biaya migrasi.
1 komentar
Komentar Hacker News
Menurut grafik performa benchmark, throughput perintah GET Garnet lebih dari 10 kali lebih tinggi daripada Dragonfly. Latensi persentil ke-50 sedikit lebih tinggi daripada Dragonfly, tetapi latensi persentil ke-99 sedikit lebih rendah. Throughput dan latensi Garnet maupun Dragonfly jauh lebih unggul dibanding Redis, yang mengindikasikan bahwa Redis memerlukan optimasi performa yang cukup besar.
Ini kabar bagus bagi orang-orang yang perlu menjalankan Redis secara langsung di Microsoft Windows Server tanpa bergantung pada WSL2 (atau yang kompatibel dengannya). Sebelumnya ada port Redis yang kini sudah tidak lagi didukung, dengan masalah penggunaan memori (diduga terutama karena file memory-mapped).
Ini pengganti Redis dengan performa yang mengesankan saat dijalankan pada stack non-Azure yang nyata. Penasaran seperti apa performanya di dunia nyata.
Menarik melihat Microsoft dan tim .NET membangun proyek infrastruktur yang sangat mengesankan. Yarp menangani reverse proxy/API gateway dan semacamnya, dan sekarang ada Garnet untuk cache memori.
Karena Garnet bersifat multi-threaded,
MSETtidak atomik. Jika menginginkan versiMSETyang atomik, itu harus diekspresikan sebagai transaksi (stored procedure).Melihat komentar di sini, sepertinya sekarang tidak ada lagi yang memakai memcached?
Microsoft Research kadang-kadang menghasilkan proyek yang mengesankan. Pasti menyenangkan dibayar untuk melakukan R&D. Saya berharap perusahaan besar lebih banyak melakukan proyek bergaya R&D yang bermanfaat bagi industri. Jika Hashicorp masuk ke pasar, semoga diakuisisi oleh perusahaan yang baik.
Proyek ini terlihat sangat bagus. Saya berharap pada akhirnya ini menggantikan resource "Azure Cache for Redis". Saat ini layanan itu lambat, merupakan fork Redis yang dibuat agar berjalan di Windows, dan butuh hampir satu jam untuk membuat instance.
Saya penasaran di bagian mana sistem ini tidak berkinerja baik. Saya juga ingin melihat benchmark pada tipe instance yang lebih kecil. 72 vCPU adalah instance yang cukup besar.