Le plug-in faster-bulk agrège les requêtes bulk selon leur taille et un intervalle de temps pour empêcher les écritures par petits lots de bloquer la file d'attente. Il convient aux scénarios à haut débit comportant de nombreux shards d'index. Désactivé par défaut, ce plug-in requiert une activation manuelle. L'agrégation ajoutant de la latence, nous déconseillons son usage dans les scénarios d'écriture exigeant une faible latence.
Remarques sur l'utilisation
Installez le plug-in avant de l'utiliser. Pour plus d'informations, consultez la rubrique Installation ou désinstallation d'un plug-in intégré.
Performances d'écriture
Les données suivantes illustrent les performances du plug-in faster-bulk dans un environnement de test spécifique.
Environnement de test : trois nœuds de données (16 cœurs, 64 Go) et deux nœuds clients indépendants (16 cœurs, 64 Go), utilisant le jeu de données officiel esrally nyc-taxis (650 octets par document), avec le paramètre apack.fasterbulk.combine.interval défini sur 200 ms.
|
État du translog |
Sans le plug-in |
Avec le plug-in |
Amélioration des performances |
|
Synchrone (par défaut) |
182 314/s |
226 242/s |
23 % |
|
Asynchrone |
218 732/s |
241 060/s |
10 % |
Activation de l'agrégation bulk
PUT _cluster/settings
{
"transient" : {
"apack.fasterbulk.combine.enabled":"true"
}
}
Configuration des paramètres d'agrégation
L'écriture des données se déclenche lorsque la taille cumulative des requêtes bulk ou l'intervalle d'agrégation sur un nœud de données atteint le seuil configuré.
PUT _cluster/settings
{
"transient" : {
"apack.fasterbulk.combine.flush_threshold_size":"1mb",
"apack.fasterbulk.combine.interval":"50"
}
}
|
Paramètre |
Description |
Valeur par défaut |
|
apack.fasterbulk.combine.flush_threshold_size |
Taille cumulative maximale des requêtes bulk agrégées sur un seul nœud de données. |
1mb |
|
apack.fasterbulk.combine.interval |
Intervalle de temps maximal pour l'agrégation des requêtes bulk. Unité : ms. |
50 |
Dans les scénarios à forte concurrence avec de grands volumes de données, augmentez la taille d'agrégation ou l'intervalle de temps, dans les limites de la capacité de votre cluster, pour éviter que les requêtes bulk ne bloquent la file d'attente d'écriture.
Routage dirigé
Lors de l'écriture par lot de documents sans valeur de routage ni clé primaire (_id), activez le routage dirigé au niveau du cluster ou de l'index pour améliorer la vitesse d'écriture. Les requêtes d'écriture spécifiant déjà une valeur de routage ou une clé primaire (_id) ne sont pas affectées.
Pour activer le routage dirigé pour un cluster :
PUT _cluster/settings
{
"persistent" : {
"index.direct_routing.global.enable" : "true"
}
}
Pour activer le routage dirigé pour un index spécifique :
PUT <index_name>/_settings
{
"index.direct_routing.enable" : "true"
}
Désactivation de l'agrégation bulk
PUT _cluster/settings
{
"transient" : {
"apack.fasterbulk.combine.enabled":"false"
}
}