Membuat Penulisan Gremlin Multithreaded yang Efisien - Amazon Neptune

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

Membuat Penulisan Gremlin Multithreaded yang Efisien

Ada beberapa pedoman untuk pemuatan multithreaded data ke Neptune menggunakan Gremlin.

Jika memungkinkan, berikan setiap thread satu set simpul atau edge untuk penyisipan atau modifikasi yang tidak bertabrakan. Sebagai contoh, thread 1 menangani rentang ID 1–50.000, thread 2 menangani rentang ID 50,001–100.000, dan seterusnya. Hal ini mengurangi kemungkinan memperoleh ConcurrentModificationException. Agar aman, letakkan blok try/catch di sekitar semua penulisan. Jika ada yang gagal, Anda bisa mencobanya lagi setelah beberapa saat.

Penulisan dalam batch dalam ukuran batch antara 50 dan 100 (vertex atau edge) umumnya bekerja dengan baik. Jika Anda memiliki banyak properti yang ditambahkan untuk setiap vertex, angka yang mendekati 50 dari 100 mungkin menjadi pilihan yang lebih baik. Beberapa eksperimen sangat berharga. Jadi untuk penulisan dalam batch, Anda dapat menggunakan sesuatu seperti ini:

g.addV(‘test’).property(id,’1’).as(‘a’). addV(‘test’).property(id,’2’). addE(‘friend’).to(‘a’).

Hal ini kemudian diulang dalam setiap operasi batch.

Menggunakan batch secara signifikan lebih efisien alih-alih menambahkan satu vertex atau edge per perjalanan memutar Gremlin ke server.

Jika Anda menggunakan klien Gremlin Language Variant (GLV), Anda dapat membuat batch secara terprogram dengan terlebih dahulu membuat traversal. Kemudian tambahkan ke dalamnya, dan akhirnya, ulangi di atasnya; misalnya:

t.addV(‘test’).property(id,’1’).as(‘a’) t.addV(‘test’).property(id,’2’) t.addE(‘friend’).to(‘a’) t.iterate()

Sebaiknya gunakan klien Gremlin Language Variant jika memungkinkan. Namun Anda dapat melakukan sesuatu yang mirip dengan klien yang mengajukan kueri sebagai string teks dengan menggabungkan string untuk membangun batch.

Jika Anda menggunakan salah satu pustaka Klien Gremlin daripada dasar HTTP untuk kueri, semua utas harus berbagi klien, cluster, atau kumpulan koneksi yang sama. Anda mungkin perlu menyetel pengaturan untuk mendapatkan kemungkinan throughput terbaik—pengaturan seperti ukuran kolam koneksi dan jumlah thread pekerja yang digunakan klien Gremlin.