Apa itu cache memori?
Cache memori (sering hanya disebut sebagai caching) adalah teknik di mana aplikasi komputer menyimpan data sementara di memori utama komputer (yaitu, memori akses acak, atau RAM) untuk memungkinkan pengambilan cepat data tersebut. RAM yang digunakan untuk penyimpanan sementara disebut cache.
Karena mengakses RAM secara signifikan lebih cepat daripada mengakses media lain seperti hard disk drive atau jaringan, cache membantu aplikasi berjalan lebih cepat karena akses data yang lebih cepat. Cache sangat efisien ketika aplikasi menunjukkan pola umum di mana ia berulang kali mengakses data yang sebelumnya diakses.
Cache juga berguna untuk menyimpan perhitungan data yang jika
tidak memakan waktu untuk menghitung. Dengan menyimpan perhitungan dalam cache,
sistem menghemat waktu dengan menghindari pengulangan perhitungan.
Bagaimana Cara Kerja Cache Memori?
Cache memori bekerja dengan terlebih dahulu menyisihkan
sebagian dari RAM untuk digunakan sebagai cache. Saat aplikasi mencoba membaca
data, biasanya dari sistem penyimpanan data seperti database, aplikasi akan
memeriksa apakah catatan yang diinginkan sudah ada dalam cache. Jika ya, maka
aplikasi akan membaca data dari cache, sehingga menghilangkan akses yang lebih
lambat ke database.
Jika catatan yang diinginkan tidak ada dalam cache, maka
aplikasi membaca catatan dari sumbernya. Saat mengambil data itu, ia juga
menulis data ke cache sehingga ketika aplikasi membutuhkan data yang sama di
masa mendatang, aplikasi dapat dengan cepat mendapatkannya dari cache.
Ukuran Cache Sangatlah Terbatas
Karena ukuran cache terbatas, pada akhirnya beberapa data
yang sudah ada di cache harus dihapus untuk memberi ruang bagi data baru yang
terakhir diakses aplikasi. Ini berarti sistem cache membutuhkan strategi
untuk menghapus catatan untuk memberi ruang. Strategi akan bergantung pada
sifat akses data aplikasi, dan umumnya akan mencoba menghapus catatan yang
tidak diharapkan dapat diakses kembali dalam waktu dekat.
Misalnya, strategi yang paling jarang digunakan (LRU) akan
menghapus catatan yang akses terakhirnya terjadi sebelum catatan lain dalam
cache. Asumsi di sini adalah jika sudah lama record diakses, kemungkinan tidak
akan diakses lagi dalam waktu dekat. Atau dengan kata lain, catatan yang paling
sering digunakan baru-baru ini kemungkinan akan segera digunakan lagi.
Strategi yang paling jarang digunakan (LFU) memerlukan
pelacakan jumlah akses setiap catatan dalam cache dan menghapus catatan dengan
jumlah akses paling sedikit. Asumsinya di sini adalah bahwa catatan yang jarang
digunakan kemungkinan besar tidak akan segera digunakan lagi.
Tantangan dengan cache adalah bagaimana meminimalkan
"cache misses", yaitu, percobaan membaca oleh aplikasi untuk catatan
yang tidak ada dalam cache. Jika Anda memiliki terlalu banyak kesalahan,
efisiensi cache Anda berkurang.
Tantangan lain dari cache adalah risiko membaca data
"basi", di mana data dalam cache tidak mencerminkan data terbaru di
sumber yang mendasarinya. Seringkali risiko ini merupakan pertukaran yang dapat
diterima demi kinerja aplikasi. Dalam kasus di mana tidak, terserah aplikasi
yang memperbarui sumber data yang mendasarinya untuk memperbarui catatan yang
dimaksud dalam cache.
Contoh Kasus Penggunaan
Salah satu kasus penggunaan yang luas untuk cache memori adalah untuk mempercepat aplikasi database, terutama yang melakukan banyak pembacaan database. Dengan mengganti sebagian pembacaan basis data dengan pembacaan dari cache, aplikasi dapat menghapus latensi yang muncul dari akses basis data yang sering.
Kasus penggunaan ini biasanya ditemukan di lingkungan di
mana terlihat volume akses data yang tinggi, seperti di situs web dengan lalu
lintas tinggi yang menampilkan konten dinamis dari database.
Kasus penggunaan lain melibatkan akselerasi kueri, di mana hasil kueri kompleks ke database disimpan dalam cache. Kueri kompleks yang menjalankan operasi seperti pengelompokan dan pemesanan dapat memakan banyak waktu untuk diselesaikan.
Jika kueri dijalankan berulang kali, seperti halnya
di dasbor intelijen bisnis (BI) yang diakses oleh banyak pengguna, menyimpan
hasil dalam cache akan memungkinkan respons yang lebih besar di dasbor
tersebut.