apa yang dimaksud dengan konsep cache dingin dan cache hangat?

10

Saya membaca makalah dan menggunakan istilah "cache dingin" dan "cache hangat". Apa yang dimaksud dengan konsep cache dingin dan cache hangat? Saya mengunjungi ini tetapi saya membutuhkan sesuatu yang lebih.

Amir
sumber
1
Apa yang Anda anggap berguna? Bagaimana Anda akan menggunakan informasi ini? Saya hanya bertanya karena, Anda tahu: google.com/search?q=wikipedia+cold+cache
mikeserv
Saya ingin menggunakan konsep ini di makalah saya jadi saya perlu lebih detail tentang mereka
Amir
Ini hanya menggunakan suhu sebagai metafora untuk memahami seberapa berguna cache tertentu karena "kegunaan" ada pada sebuah kontinum. Tembolok yang lebih hangat memiliki tingkat hit yang tinggi sedangkan cache yang dingin diisi dengan data yang mungkin tidak akan Anda minta lagi dalam waktu dekat dan karena itu hanya menghabiskan ruang.
Bratchley
@ JoelDavis - Jika cache tidak perlu menangani kesalahan maka hal di atas akan benar, dan satu - satunya metode untuk mengganti data yang di-cache yang perlu dikembangkan adalah LFU, tetapi karena data rentan kesalahan karena berbagai alasan, penanganan cache dingin sedikit lebih rumit daripada hanya mengganti data yang paling jarang digunakan.
mikeserv

Jawaban:

13

Singkatnya: cache hangat bermanfaat sedangkan cache dingin tidak. Bahkan, cache dingin bisa berbahaya untuk digunakan.

Anda lihat, seluruh titik cache adalah untuk menjaga data yang sering diakses diakses. Misalnya, cache DNS akan menyimpan secara lokal hasil resolusi nama yang Anda minta baru-baru ini, dan, ketika resolusi yang sama diminta lagi hasilnya akan segera tersedia dan disajikan tanpa meminta kueri yang lebih besar, kemungkinan database nama luar-situs. . Dengan kata lain komputer Anda tidak harus meminta server nama domain penyedia layanan internet Anda untuk alamat ip ke google.com karena komputer Anda sudah tahu itu - DNS Anda Cache adalah hangat.

Tetapi jika Anda tidak pernah meminta ip Google maka itu tidak akan ada dalam cache Anda. Sebuah Cache dingin adalah terlalu basi untuk menjadi berguna - seperti dalam data yang berisi kemungkinan terlalu tua untuk menjadi akurat - atau sepenuhnya kosong, dan kosong ini banyak dingin.

Tetapi seringkali kosong lebih baik daripada yang lama - meskipun ini sangat tergantung, tentu saja, pada data yang sedang di-cache. Empty mudah ditangani karena hanya perlu diisi - itu tidak perlu dipikirkan lagi - tetapi cache lama membutuhkan koreksi kesalahan. Ini adalah masalah logistik utama dalam pengembangan dan pemeliharaan sistem cache - bagaimana Anda bisa mengetahui data yang Anda cache sudah terbaru dan apa yang dilakukan jika tidak?

Saya tidak akan menjawab salah satu dari pertanyaan-pertanyaan - mereka implementasi baik tergantung dan mungkin jauh dan jauh di luar kemampuan saya, anyway - tetapi harus dipahami bahwa semua sistem caching datang dengan beberapa melekat risiko dari ketidaktepatan. Ini sesuai dengan wilayahnya. Risikonya mungkin tidak besar - seringkali hanya risiko beberapa nanodetik tambahan dalam waktu pemrosesan. Sistem cache akan memeriksa data yang diminta terhadap kegagalan yang telah diterapkan oleh perancang cache dan, jika ternyata diinginkan, maka sistem cache akan, misalnya, menanyakan DNS ISP untuk ip google dan semuanya baik-baik saja.

The hangat cache, meskipun, kurang ada mempertaruhkan. The manfaat hangat cache dari menjaga data sayang dekat lebih besar daripada yang risiko dari cache yang dingin ini kekurangan atau ... mungkin Anda tidak harus caching.

mikeserv
sumber
7
Seperti kutipan terkenal, "Ada dua masalah sulit dalam ilmu komputer: Penamaan hal, pembatalan Cache , dan kesalahan satu-per-satu." Mengetahui bahwa nilai-nilai yang di-cache Anda sudah tua adalah persis apa yang berarti pembatalan cache :)
Riking
Pada komentar Anda tentang ketidakakuratan cache, itu tidak selalu benar. Jika sistem / aplikasi memiliki akses eksklusif ke sumber data, maka entri cache dapat diperbarui atau digusur sesuai kebutuhan. Hanya jika Anda berhadapan dengan sumber yang diakses secara bersamaan (mis. DNS, NFS atau CIFS) Anda mengalami masalah ini (bahkan jika hanya satu yang memiliki akses tulis, seperti dengan DNS).
Bratchley
"kalau tidak, mengapa kamu melakukan caching sama sekali" Alasan yang sama yang kamu miliki untuk caching apa pun: perlindungan terhadap latensi tinggi. Sebagai contoh cache sistem file hanya agar OS tidak harus pergi ke disk untuk permintaan umum. Cache masih dalam kondisi yang koheren, karena modifikasi pada sistem file lokal harus melalui kernel. Bagian ECC tidak benar-benar relevan karena korupsi semacam itu bukan karena caching menjadi caching, itu karena kesalahan perangkat keras yang akan mengenai semua sistem sama-sama tidak peduli bagaimana mereka dirancang.
Bratchley
Disk adalah cache RAM?
Bratchley
Saya pikir Anda memiliki hubungan yang terbalik. Konten disk yang baru-baru ini diakses di-cache dalam RAM sehingga memori adalah cache untuk disk (atau setidaknya digunakan sebagai bagian dari sistem caching). Akses disk adalah operasi lambat yang menyimpan barang-barang di memori dirancang untuk berkeliling.
Bratchley
6

Secara umum, cache dingin adalah salah satu yang tidak diisi dengan baik (belum). Jadi, jika cache Anda dingin, informasi harus diambil menggunakan metode yang mungkin lebih lambat. Ini biasanya terjadi sesaat setelah aplikasi dijalankan atau jenis pertanyaan berubah secara signifikan.

Sebaliknya, cache hangat diisi dengan informasi yang baru-baru ini atau sering Anda ambil.

Sehubungan dengan ext filesystems dan struktur direktori, ada beberapa informasi tentang bagaimana caching umumnya bekerja di Virtual File System (VFS) di Linux di sini: http://www.tldp.org/LDP/tlk/fs/filesystem.html

cpugeniusmv
sumber
"baru-baru ini atau sering"? Baru-baru ini ya. tapi sering?
Faheem Mitha
1
@FaheemMitha Memang benar - LFU jelas merupakan akronim yang sangat umum yang akan Anda temui di departemen ini. Jika cache Anda cukup pasti untuk hanya berisi informasi terbaru dan penuh, maka Anda harus memiliki beberapa cara lain untuk menentukan informasi mana yang diganti saat Anda membaca data baru. LFU mungkin cara Anda akan pergi.
mikeserv
@cpugeniusmv Terima kasih atas tautannya. Itu bisa dimasukkan dalam jawaban Anda.
Faheem Mitha