

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

# Koleksi sampah kamus Neptunus
<a name="storage-gc"></a>

 Neptunus mendukung pengumpulan sampah kamus (GC) yang dapat diaktifkan melalui `neptune_lab_mode` [ parameter ](parameters.md) untuk data grafik properti. Fitur ini memerlukan reboot instance penulis untuk mengaktifkan. Fitur ini tersedia dari rilis mesin [ 1.4.3.0](https://docs.aws.amazon.com/releases/release-1.4.3.0.xml). 

**Kompatibilitas dengan rilis mesin sebelum 1.4.8.0**  
 Sebelum mesin rilis 1.4.8.0, Anda dapat mengaktifkan kamus GC hanya pada cluster tanpa `neptune_streams` diaktifkan. Neptunus secara otomatis menonaktifkan fitur jika `neptune_streams` diaktifkan. Neptunus juga menonaktifkan fitur jika ada `neptune_streams` data yang belum kedaluwarsa. Dimulai dengan rilis mesin 1.4.8.0, pembatasan ini tidak lagi berlaku, dan Anda dapat mengaktifkan kamus GC pada cluster yang telah `neptune_streams` diaktifkan. 

 Saat diaktifkan, entri kamus yang tidak digunakan dibersihkan oleh pekerjaan latar belakang. Itu tidak mengurangi`VolumeBytesUsed`, melainkan membebaskan ruang dalam indeks untuk sisipan baru. Tingkat pertumbuhan kemungkinan akan lebih sedikit ketika kamus GC diaktifkan relatif terhadap saat tidak. `VolumeBytesUsed` 

 Pengumpulan sampah kamus berjalan di latar belakang dan memindai semua grafik dan data kamus untuk menemukan istilah yang tidak digunakan. Proses baru dipicu saat memulai setelah sekitar 6% dari data telah berubah. GC bersaing dengan thread kueri untuk sumber daya server seperti CPU, buffer cache, undo log generation, dan write I/O operasi, yang berpotensi mengurangi throughput kueri. Karena GC memindai data yang tidak secara aktif tersentuh oleh kueri, hal itu dapat memengaruhi cache buffer pada node penulis. Cluster dapat melihat I/O operasi penulisan tambahan dan memiliki lebih banyak log undo untuk dibersihkan saat GC melakukan penghapusan baru, yang juga dapat menghasilkan nilai yang lebih tinggi untuk metrik. `UndoLogListSize` 

 GC dapat dijalankan dalam dua mode, `soft_delete` dan`enabled`. Saat dijalankan dalam `soft_delete` mode, entri kamus yang tidak digunakan ditandai dihapus (soft\_delete) tetapi tidak dihapus secara eksplisit. Mode ini juga dapat digunakan untuk memahami karakteristik kinerja setelah operasi latar belakang dihidupkan. Ketika `enabled` mode digunakan, entri dihapus secara eksplisit (hapus 'keras'). Disarankan untuk menjalankan GC dalam `soft_delete` mode untuk jangka waktu tertentu sebelum beralih ke `enabled` mode. 

 Kamus GC mendukung konkurensi maksimum 16 (pada mesin dengan 16 atau lebih inti). Ini berjalan secara default dengan satu utas, tetapi dapat dijalankan dengan konkurensi yang lebih tinggi ketika diaktifkan untuk pertama kalinya. Utas GC kamus berjalan pada prioritas yang sama dengan utas kueri, dan mereka bersaing dengan sumber daya pada penulis secara merata. 

 Kamus GC dapat diaktifkan melalui `neptune_lab_mode` [ parameter ](parameters.md) dengan mengatur `DictionaryGCMode` kunci. Ini menerima tiga nilai yang mungkin: `disabled` (default),`soft_delete`, atau`enabled`. Misalnya, contoh kode berikut akan menyetel `DictionaryGCMode` ke`soft_delete`: 

```
neptune_lab_mode = 'DictionaryGCMode=soft_delete'
```

 [Parameter konkurensi](parameters.md),`DictionaryGCConcurrency`, adalah opsional dan dapat mengambil nilai antara 1 dan 16. Jika disetel ke nilai yang lebih tinggi dari minimum 16 dan jumlah inti, konkurensi dibatasi pada nilai itu. 

```
neptune_lab_mode = 'DictionaryGCMode=soft_delete,DictionaryGCConcurrency=2'
```

 Pekerjaan GC kamus diaktifkan di latar belakang setelah server dimulai, setelah ada beberapa data yang tersedia. Status mesin menampilkan status GC kamus saat ini. Contoh output yang ditunjukkan di bawah ini menunjukkan bahwa kamus GC dalam `soft_delete` mode dan berjalan dengan konkurensi 2. Jika pekerjaan latar belakang sedang berjalan, itu bisa secara aktif memindai entri kamus yang tidak digunakan dan menghapusnya, atau menunggu serangkaian penghapusan baru untuk memicu putaran baru GC. 

```
{"status":"healthy",...,"labMode":{"ObjectIndex":"disabled","DictionaryGC":"{Mode=enabled,Concurrency=2}"},...}
```

 Kamus GC dijeda ketika salah satu dari kondisi ini terpenuhi: 
+  Beban massal aktif. 
+  Memori yang dapat dibebaskan kurang dari 15Gb. 
+  `UndoLogListSize`lebih tinggi dari 1.000.000. 