

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

# Cache pencarian Neptune dapat mempercepat kueri baca
<a name="feature-overview-lookup-cache"></a>

Amazon Neptune mengimplementasikan cache pencarian yang menggunakan `R5d` SSD berbasis instans NVMe untuk meningkatkan kinerja baca kueri dengan pencarian nilai properti atau literal RDF yang sering dan berulang. Cache pencarian untuk sementara menyimpan nilai-nilai ini dalam volume NVMe SSD di mana mereka dapat diakses dengan cepat.

Kueri baca yang mengembalikan properti sejumlah besar vertex dan edge, atau banyak tripel RDF, dapat memiliki latensi tinggi jika nilai properti atau literalnya perlu diambil dari volume penyimpanan klaster alih-alih memori. Contohnya termasuk kueri baca berjalan lama yang mengembalikan sejumlah besar nama lengkap dari grafik identitas, atau alamat IP dari grafik deteksi penipuan. Saat jumlah nilai properti atau literal RDF yang dikembalikan oleh kueri Anda meningkat, memori yang tersedia berkurang dan eksekusi kueri Anda dapat secara signifikan menurun.

# Kasus penggunaan untuk cache pencarian Neptunus
<a name="feature-overview-lookup-cache-when-to-use"></a>

Cache pencarian hanya membantu ketika kueri baca Anda mengembalikan properti dari sejumlah besar simpul dan tepi, atau tiga kali lipat RDF.

Untuk mengoptimalkan kinerja kueri, Amazon Neptunus menggunakan `R5d` jenis instans untuk membuat cache besar untuk nilai properti atau literal tersebut. Mengambilnya dari cache kemudian jauh lebih cepat daripada mengambilnya dari volume penyimpanan cluster.

Sebagai aturan praktis, hanya bermanfaat untuk mengaktifkan cache pencarian jika ketiga kondisi berikut terpenuhi:
+ Anda telah mengamati peningkatan latensi dalam kueri baca.
+ Anda juga mengamati penurunan `BufferCacheHitRatio` [CloudWatch metrik](cw-metrics.md#cw-metrics-available) saat menjalankan kueri baca (lihat[Memantau Neptunus Menggunakan Amazon CloudWatch](cloudwatch.md)).
+ Kueri baca Anda menghabiskan banyak waktu dalam mematerialisasi nilai kembali sebelum me-render hasilnya (lihat contoh profil Gremlin di bawah ini untuk cara untuk menentukan berapa banyak nilai properti yang sedang dimaterialisasi untuk kueri).

**catatan**  
Fitur ini *hanya* membantu dalam skenario spesifik yang dijelaskan di atas. Misalnya, cache pencarian tidak membantu kueri agregasi sama sekali. Kecuali Anda menjalankan kueri yang akan mendapat manfaat dari cache pencarian, tidak ada alasan untuk menggunakan tipe `R5d` instance alih-alih jenis instance yang setara dan lebih murah`R5`.

Jika Anda menggunakan Gremlin, Anda dapat menilai biaya materialisasi kueri dengan [API `profile` Gremlin](gremlin-profile-api.md). Di bawah “Operasi Indeks', ia menunjukkan jumlah istilah yang termaterialisasi selama eksekusi:

```
Index Operations
Query execution:
    # of statement index ops: 3
    # of unique statement index ops: 3
    Duplication ratio: 1.0
    # of terms materialized: 5273
Serialization:
    # of statement index ops: 200
    # of unique statement index ops: 140
    Duplication ratio: 1.43
    # of terms materialized: 32693
```

Jumlah istilah non-numerik yang termaterialisasi berbanding lurus dengan jumlah istilah pencarian yang harus dilakukan Neptune.

# Menggunakan cache pencarian
<a name="feature-overview-lookup-cache-using"></a>

Cache pencarian hanya tersedia pada jenis `R5d` instance, di mana cache ini diaktifkan secara otomatis secara default. Instans `R5d` Neptunus memiliki spesifikasi `R5` yang sama dengan instans, ditambah hingga 1,8 TB penyimpanan SSD berbasis lokal. NVMe Cache pencarian adalah khusus instans, dan beban kerja yang mendapat keuntungan dapat diarahkan secara khusus ke instans `R5d` dalam sebuah klaster Neptune, sementara beban kerja lainnya dapat diarahkan ke `R5` atau tipe instans lainnya.

Untuk menggunakan cache pencarian pada instance Neptunus, cukup tingkatkan instance itu ke jenis instance. `R5d` Ketika Anda melakukannya, Neptunus secara otomatis menyetel parameter cluster DB `1` ke (diaktifkan), dan membuat cache pencarian pada instance tertentu. [neptune\$1lookup\$1cache](parameters.md#parameters-db-cluster-parameters-neptune_lookup_cache) Anda kemudian dapat menggunakan [Status instans](access-graph-status.md) API untuk mengonfirmasi bahwa cache telah diaktifkan.

Demikian pula, untuk menonaktifkan cache pencarian pada instance tertentu, turunkan instance dari tipe `R5d` instance ke tipe `R5` instance yang setara.

Saat instans `R5d` diluncurkan, cache pencarian diaktifkan dan dalam mode start dingin, yang berarti bahwa cache kosong. Neptune pertama memeriksa di dalam cache pencarian untuk nilai properti atau literal RDF saat memproses kueri, dan menambahkan nilai dan literal jika belum ada. Ini secara beransur-ansur memanaskan cache.

Ketika Anda mengarahkan kueri baca yang memerlukan pencarian nilai properti atau literal RDF untuk instans *pembaca* R5d, performa baca menurun sedikit sementara cache memanas. Namun, ketika cache dihangatkan, kinerja baca meningkat secara signifikan dan Anda mungkin juga melihat penurunan I/O biaya yang terkait dengan pencarian yang mengenai cache daripada penyimpanan cluster. Pemanfaatan memori juga meningkat.

Jika instans *penulis* adalah sebuah `R5d`, instans tersebut memanaskan cache pencariannya secara otomatis pada setiap operasi tulis. Pendekatan ini sedikit meningkatkan latensi untuk kueri tulis, tetapi memanaskan cache pencarian dengan lebih efisien. Kemudian jika Anda mengarahkan kueri baca yang memerlukan pencarian nilai properti atau literal RDF ke instans penulis, Anda mulai mendapatkan peningkatan performa baca dengan segera, karena nilai-nilai telah di-cache di sana.

Selain itu, jika Anda menjalankan loader massal pada instans tulis `R5d`, Anda mungkin memperhatikan bahwa performanya sedikit terdegradasi karena cache.

Karena cache pencarian dikhususkan untuk setiap node, penggantian host me-reset cache ke start dingin.

Anda dapat menonaktifkan sementara cache pencarian pada semua instance di cluster DB Anda dengan menyetel parameter cluster [neptune\$1lookup\$1cache](parameters.md#parameters-db-cluster-parameters-neptune_lookup_cache) DB ke `0` (dinonaktifkan). Secara umum, bagaimanapun, lebih masuk akal untuk menonaktifkan cache pada instance tertentu dengan menurunkannya dari tipe `R5` instance `R5d` ke bawah.