Apa itu caching?

Caching (dibaca “cashing”) adalah proses menyimpan data di dalam cache, yaitu area penyimpanan sementara yang memungkinkan akses data jadi lebih cepat, dengan tujuan meningkatkan performa aplikasi dan sistem.

Contoh paling umum dari caching adalah ketika sebuah browser menyimpan konten halaman web ke disk lokal untuk jangka waktu tertentu. Saat pengguna pertama kali mengunjungi situs, konten diunduh dari server web dan disimpan ke direktori lokal. Ketika pengguna membuka situs tersebut lagi, kontennya diambil dari cache lokal, bukan dari server, sehingga halaman web bisa dimuat jauh lebih cepat. Ini menghemat waktu pengguna, mengurangi traffic jaringan, dan menurunkan beban pada server.

Intinya, caching itu semacam nyalin data sementara ke tempat yang bisa diakses lebih cepat oleh aplikasi atau komponen, dibanding kalau harus ambil dari sumber utamanya.

Misalnya, browser bisa lebih cepat akses data dari cache di disk lokal dibanding harus bolak-balik minta ke internet.

Ada berapa jenis caching?

Prinsip caching nggak cuma berlaku buat internet aja, tapi juga di banyak sistem lain. Beberapa jenis caching yang umum antara lain:

  • CPU caching. Hampir semua CPU modern punya cache berkecepatan tinggi seperti L1 dan L2 yang berada di antara memori utama dan prosesor. Ini membantu CPU akses instruksi program lebih cepat dibanding ambil langsung dari RAM.
  • In-memory caching. Aplikasi sering menggunakan memori utama untuk menyimpan data sementara yang asalnya dari disk. Misalnya, DBMS (sistem manajemen basis data) bisa menggunakan caching untuk workload yang banyak baca data atau query kompleks.
  • Virtual memory caching. Unit manajemen memori (MMU) di komputer biasanya punya buffer bernama TLB (Translation Lookaside Buffer) yang menyimpan sementara hasil konversi alamat virtual ke alamat fisik.
  • Server-side caching. Aplikasi web sering menyimpan sementara data yang didapat dari sistem lain. Contohnya, aplikasi web bisa cache data dari database backend biar nggak perlu ambil ulang terus-menerus.
  • CDN caching. Content Delivery Network (CDN) menyimpan cache di beberapa proxy server yang tersebar secara geografis. Ini membantu menyajikan konten lebih cepat ke pengguna yang lokasinya lebih dekat.
  • Storage controller caching. Storage controller kadang punya cache internal untuk mempercepat proses input/output (I/O) antara aplikasi dan disk atau antara aplikasi dan controller itu sendiri.
  • DNS caching. Server DNS menyimpan hasil lookup sementara untuk mempercepat proses penerjemahan hostname ke alamat IP (IP).

Itu baru beberapa contoh dari penggunaan caching buat ningkatin performa, makanya teknologi ini sangat banyak dipakai. Tapi caching juga punya sisi negatif. Misalnya, browser bisa aja menyimpan data sensitif yang bisa disalahgunakan, atau data dalam cache bisa kedaluwarsa dan nggak sesuai lagi sama data aslinya. Kalau cache-nya terlalu besar, justru bisa bikin sistem jadi lambat.

Caching juga bisa merugikan kalau yang dicache ternyata data yang salah. Saat caching aktif, aplikasi akan ngecek cache dulu sebelum ambil data dari sumber utama. Kalau data ditemukan di cache, itu disebut cache hit. Kalau nggak ketemu, disebut cache miss, dan aplikasi harus ambil data dari sumber utama — yang artinya butuh waktu ekstra. Kalau terlalu banyak miss, performa aplikasi bisa lebih buruk daripada kalau nggak pakai caching sama sekali.

Makanya, caching harus dirancang dengan cermat. Harus dipilih data mana yang cocok untuk dicache, dan berapa lama data tersebut disimpan di cache. Misalnya, kalau data sering berubah, sebaiknya waktu cache-nya dibatasi atau bahkan nggak perlu dicache. Strategi caching sangat tergantung dari jenis cache, karakter data, dan aplikasi yang mengakses data tersebut.

Tinggalkan Balasan

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *