Anti-pola: Menyimpan data lebih besar dari 256 KB dalam cache

Anda sedang melihat dokumentasi Apigee Edge.
Buka dokumentasi Apigee X.
info

Apigee Edge memungkinkan penyimpanan data dalam cache saat runtime untuk persistensi dan pengambilan yang lebih cepat.

  • Data ini awalnya disimpan dalam cache dalam memori Pemroses Pesan, yang disebut sebagai cache L1.
  • Cache L1 dibatasi oleh jumlah memori yang dicadangkan untuknya sebagai persentase memori JVM.
  • Entri yang di-cache akan disimpan kemudian dalam cache L2, yang dapat diakses oleh semua Prosesor Pesan. Detail selengkapnya dapat ditemukan pada bagian di bawah ini.
  • Cache L2 tidak memiliki batas pasti jumlah entri cache, tetapi ukuran maksimum entri yang dapat di-cache dibatasi hingga 256 KB. Ukuran cache 256 KB adalah ukuran yang direkomendasikan untuk performa yang optimal.

Antipola

Anti-pola khusus ini membahas implikasi melebihi batasan ukuran cache saat ini dalam platform Apigee Edge.

Jika data > 256 KB di-cache, konsekuensinya adalah sebagai berikut:

  • Permintaan API yang dieksekusi untuk pertama kalinya pada setiap Pemroses Pesan harus mendapatkan data secara independen dari sumber aslinya (kebijakan atau server target), karena entri > 256 KB tidak tersedia di cache L2.
  • Menyimpan data yang lebih besar (> 256 KB) dalam cache L1 cenderung memberikan lebih banyak tekanan pada resource platform. Hal ini menyebabkan memori cache L1 terisi lebih cepat dan akan lebih sedikit ruang yang tersedia untuk data lainnya. Akibatnya, pengguna tidak akan dapat meng-cache data secara agresif seperti yang diinginkan.
  • Entri yang di-cache dari Message Processors akan dihapus ketika batas jumlah entri tercapai. Hal ini menyebabkan data diambil lagi dari sumber asli di Setiap Pemroses Pesan.

Dua diagram alur.
  Satu untuk ukuran<=256 KB yang menunjukkan alur antara Proxy API dan Prosesor Pesan, serta alur antara Prosesor Pesan dan Cache L2 Persistent Storage. Satu untuk ukuran>256 KB yang menunjukkan alur antara Proxy API dan Pemroses Pesan, serta alur antara Pemroses Pesan dan Data/Respons yang tidak disimpan di Cache L2.

Dampak

  • Data berukuran > 256 KB tidak akan disimpan di cache L2/persisten.
  • Panggilan yang lebih sering ke sumber asli (baik server target maupun kebijakan) akan meningkatkan latensi permintaan API.

Praktik terbaik

  • Sebaiknya simpan data berukuran < 256 KB di cache untuk mendapatkan performa yang optimal.
  • Jika Anda perlu menyimpan data > 256 KB, pertimbangkan:
    • Menggunakan {i>database<i} yang sesuai untuk menyimpan data berukuran besar

      ATAU

    • Mengompresi data

Bacaan lebih lanjut