Plug-in faster-bulk adalah alat bawaan yang mengoptimalkan operasi write dengan mengagregasi permintaan bulk berdasarkan ukuran dan interval waktu tertentu. Pendekatan ini mencegah operasi write batch kecil memblokir antrian write, sehingga ideal untuk skenario throughput tinggi dengan banyak shard indeks. Plug-in ini dinonaktifkan secara default dan harus diaktifkan secara manual. Namun, karena agregasi ini menambah latensi, plug-in tidak disarankan untuk skenario write berlatensi rendah.
Catatan penggunaan
Anda harus menginstal plug-in sebelum menggunakannya. Untuk informasi selengkapnya, lihat Instal atau uninstal plug-in bawaan.
Kinerja write
Data referensi berikut menunjukkan kinerja plug-in faster-bulk dalam lingkungan pengujian tertentu.
Lingkungan pengujian: Tiga node data 16-core, 64 GB dan dua node client independen 16-core, 64 GB, menggunakan dataset esrally nyc-taxis resmi (650 byte per dokumen), dengan apack.fasterbulk.combine.interval diatur ke 200 ms.
Status translog | Tanpa plug-in | Dengan plug-in | Peningkatan kinerja |
Synchronous (default) | 182.314/s | 226.242/s | 23% |
Asynchronous | 218.732/s | 241.060/s | 10% |
Aktifkan agregasi bulk
PUT _cluster/settings
{
"transient" : {
"apack.fasterbulk.combine.enabled":"true"
}
}Konfigurasi parameter agregasi
Konfigurasikan ukuran agregasi dan interval waktu untuk permintaan bulk. Sistem akan memicu penulisan data ketika ukuran kumulatif permintaan bulk atau interval waktu agregasi pada satu node data mencapai ambang batas yang dikonfigurasi.
PUT _cluster/settings
{
"transient" : {
"apack.fasterbulk.combine.flush_threshold_size":"1mb",
"apack.fasterbulk.combine.interval":"50"
}
}Parameter | Deskripsi | Default |
apack.fasterbulk.combine.flush_threshold_size | Ukuran kumulatif maksimum dari permintaan bulk yang diagregasi pada satu node data. | 1mb |
apack.fasterbulk.combine.interval | Interval waktu maksimum untuk mengagregasi permintaan bulk. Satuan: ms. | 50 |
Untuk skenario konkurensi tinggi dengan volume data besar, Anda dapat meningkatkan ukuran agregasi maksimum atau interval waktu sesuai kapasitas kluster Anda. Hal ini membantu mencegah permintaan bulk memblokir antrian write.
Directed routing
Saat melakukan batch-write dokumen tanpa menentukan nilai routing atau primary key (_id), Anda dapat mengaktifkan directed routing untuk kluster atau indeks tertentu guna meningkatkan kecepatan write. Fitur ini tidak memengaruhi permintaan write yang telah menentukan nilai routing atau primary key (_id).
Untuk mengaktifkan directed routing untuk kluster:
PUT _cluster/settings
{
"persistent" : {
"index.direct_routing.global.enable" : "true"
}
}Untuk mengaktifkan directed routing untuk indeks tertentu:
PUT <index_name>/_settings
{
"index.direct_routing.enable" : "true"
}Nonaktifkan agregasi bulk
PUT _cluster/settings
{
"transient" : {
"apack.fasterbulk.combine.enabled":"false"
}
}