Pindah ke Memcached dan Redis, inilah Hollow Netflix

Setelah dua tahun penggunaan internal, Netflix menawarkan proyek open source baru sebagai opsi kuat untuk menyimpan cache kumpulan data yang terus berubah.

Hollow adalah pustaka dan perangkat Java yang ditujukan untuk penyimpanan data cache dalam memori yang berukuran hingga beberapa gigabyte. Netflix mengatakan tujuan Hollow ada tiga: Ini dimaksudkan agar lebih efisien dalam menyimpan data; dapat menyediakan alat untuk menghasilkan API secara otomatis untuk memudahkan akses ke data; dan secara otomatis dapat menganalisis pola penggunaan data untuk menyinkronkan dengan back end secara lebih efisien.

Mari kita pertahankan ini di antara kita

Sebagian besar skenario untuk menyimpan data dalam cache pada sistem yang tidak menyimpannya — sistem "konsumen" daripada sistem "produsen" — melibatkan penggunaan produk seperti Memcached atau Redis. Hollow mengingatkan pada kedua produk karena menggunakan penyimpanan dalam memori untuk akses cepat, tetapi ini bukan penyimpanan data yang sebenarnya seperti Redis.

Tidak seperti banyak sistem cache data lainnya, Hollow dimaksudkan untuk digabungkan ke kumpulan data tertentu — skema yang diberikan dengan kolom tertentu, biasanya aliran JSON. Ini membutuhkan beberapa pekerjaan persiapan, meskipun Hollow menyediakan beberapa alat untuk mengotomatiskan sebagian proses. Alasan untuk melakukannya: Hollow dapat menyimpan data dalam memori sebagai potongan dengan panjang tetap dan diketik kuat yang tidak tunduk pada pengumpulan sampah Java. Hasilnya, mereka lebih cepat diakses daripada objek Java konvensional.

Keuntungan lain yang diklaim dengan Hollow adalah menyediakan keseluruhan perkakas untuk bekerja dengan data. Setelah Anda menentukan skema untuk data, Hollow dapat secara otomatis menghasilkan Java API yang dapat menyediakan data pelengkapan otomatis ke IDE. Data juga dapat dilacak saat berubah, sehingga pengembang memiliki akses ke snapshot point-in-time, perbedaan antara snapshot, dan rollback data.

Lebih cepat di sekitar

Banyak keuntungan yang diklaim Netflix untuk Hollow melibatkan efisiensi operasional dasar — ​​yaitu, waktu startup yang lebih cepat untuk server dan lebih sedikit churn memori. Tetapi alat pemodelan dan manajemen data Hollow juga dimaksudkan untuk membantu pengembangan, tidak hanya untuk mempercepat produksi.

“Bayangkan bisa dengan cepat memindahkan seluruh kumpulan data produksi Anda — saat ini atau dari titik mana pun di masa lalu — ke stasiun kerja pengembangan lokal, memuatnya, lalu mereproduksi skenario produksi tertentu dengan tepat,” kata Netflix dalam entri blog pengantar.

Satu peringatan adalah bahwa Hollow tidak cocok untuk kumpulan data dengan semua ukuran— “KB, MB, dan GB, tetapi tidak TB,” adalah bagaimana perusahaan memasukkannya ke dalam dokumentasinya. Meski begitu, Netflix juga menyiratkan bahwa Hollow mengurangi jumlah sprawl yang diperlukan oleh kumpulan data yang disimpan dalam cache. “Dengan kerangka kerja yang tepat, dan sedikit pemodelan data, ambang batas [memori] itu kemungkinan besar jauh lebih tinggi daripada yang Anda pikirkan,” tulis Netflix.