View a markdown version of this page

Koleksi sampah kamus Neptunus - Amazon Neptune

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

Koleksi sampah kamus Neptunus

Neptunus mendukung pengumpulan sampah kamus (GC) yang dapat diaktifkan melalui neptune_lab_mode parameter untuk data grafik properti. Fitur ini memerlukan reboot instance writer untuk diaktifkan. Fitur ini tersedia dari rilis mesin 1.4.3.0.

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 mengurangiVolumeBytesUsed, 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 danenabled. 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 dengan mengatur DictionaryGCMode kunci. Ini menerima tiga nilai yang mungkin: disabled (default),soft_delete, atauenabled. Misalnya, contoh kode berikut akan menyetel DictionaryGCMode kesoft_delete:

neptune_lab_mode = 'DictionaryGCMode=soft_delete'

Parameter konkurensi,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.

  • UndoLogListSizelebih tinggi dari 1.000.000.