AliES est un noyau hautement personnalisé pour Alibaba Cloud Elasticsearch. Il prend en charge toutes les fonctionnalités du noyau Elasticsearch open source et ajoute des capacités développées par l'équipe Alibaba Cloud Elasticsearch, notamment l'optimisation des métriques, la gestion des pools de threads, l'optimisation des disjoncteurs ainsi que l'amélioration des performances des requêtes et des écritures. Ces ajouts renforcent la stabilité et les performances du cluster, réduisent les coûts et étendent la couverture de la surveillance et des opérations et maintenance (O&M). Cette rubrique décrit les nouvelles fonctionnalités et les optimisations apportées à chaque version d'AliES.
Elasticsearch V7.16.2
Version du noyau 1.7.0
Plug-ins
Le plug-in aliyun-timestream est disponible. Utilisez-le pour créer, modifier, interroger et supprimer des index de séries temporelles, ce qui simplifie la gestion des données de séries temporelles. Pour plus d'informations, consultez la rubrique Présentation d'aliyun-timestream.
Les instructions Prometheus Querying Language (PromQL) sont prises en charge pour interroger les données stockées dans Elasticsearch. Pour plus d'informations, consultez la rubrique Intégrer Elasticsearch à Prometheus et Grafana via aliyun-timestream pour mettre en œuvre une surveillance unifiée.
Elasticsearch V7.10.0
Version du noyau 1.12.0
Recherche
Le plug-in analysis-dynamic-synonym est disponible.
L'équilibrage des shards primaires est pris en charge.
La longueur des valeurs de paramètre dans les requêtes wildcard et prefix est désormais limitée.
Les requêtes complexes, y compris les requêtes terms et prefix sur les champs
keyword, sont optimisées grâce à l'utilisation dedoc_values. Les performances des requêtes s'améliorent jusqu'à 80 % dans les scénarios à faible taux de correspondance.Les requêtes numériques term et terms sont optimisées via
doc_values. Les performances des requêtes s'améliorent jusqu'à 80 % dans les scénarios à faible taux de correspondance.Les performances des requêtes term et terms basées sur l'arbre BKD sont améliorées de 30 % grâce à une stratégie de chargement différé.
Corrections de bugs
La gestion des tâches au niveau de la couche de stockage est améliorée pour résoudre un problème où la communication basée sur RPC se bloquait occasionnellement.
Le processus de réplication des données est optimisé pour éviter l'erreur « fail engine » sur les nœuds réplicas.
Le processus de promotion des shards réplicas est amélioré pour prévenir les incohérences d'index entre les shards primaires et les shards réplicas.
Version du noyau 1.10.0
Stockage/Snapshot
LuceneVerifyIndexOutputest optimisé pour accélérer la restauration des index. Pour plus de détails, consultez la page ES pull #96975.
Coordination du cluster
ClusterStaten'est plus référencé par les tâches persistantes. Dans les clusters à grande échelle, les nœuds maîtres dédiés peuvent accumuler une utilisation élevée de la mémoire. Pour éviter les délais d'expiration lors de l'élection du leader dans ces environnements, la valeur par défaut decluster.election.initial_timeoutpasse de 100 millisecondes à 1 seconde. Pour plus de détails, consultez la page ES pull #90724.
Recherche
Un délai d'expiration de requête de bout en bout est ajouté pour contrôler la durée globale des requêtes. En cas de dépassement du délai, des résultats partiels sont renvoyés au lieu d'échouer la requête.
Des champs supplémentaires sont ajoutés aux journaux d'accès.
Corrections de bugs
Correction d'un problème où le fichier d'index de mise à jour DV référencé par Lucene Merge était supprimé par des opérations de vidage concurrentes. Pour plus de détails, consultez la page Lucene pull #13017.
Version 1.9.0 du noyau
Recherche
Le framework de requêtes concurrentes a été refondu pour les clusters Kernel-enhanced Edition, apportant les améliorations suivantes :
La mémoire heap JVM est réutilisée, ce qui réduit la surcharge liée au garbage collection (GC) et améliore l'utilisation des ressources.
La durée de la phase de récupération (fetch) pour l'extraction de texte brut est réduite. Avec le paramètre
sizedéfini à 10 000, la phase de récupération est jusqu'à 6 à 10 fois plus rapide et la durée totale de la requête est réduite de 50 %.Les types d'agrégations suivants sont désormais pris en charge dans les requêtes concurrentes : percentile, percentile ranks, sampler, diversified sampler, significant text, geo_distance, geohash_grid, geotile_grid, geo_bounds, geo_centroid et scripted_metric.
Des champs tels que
traceIdet un champ de durée de requête ont été ajoutés aux journaux d'accès de bout en bout. UtiliseztraceIdpour suivre l'exécution complète de la requête sur tous les nœuds.La structure d'index personnalisée et l'analyse du mapping pour le texte brut ont été optimisées, doublant ainsi les performances d'écriture pour le texte brut.
Mise en cache
Dans les scénarios comportant peu de requêtes principales mais un grand nombre de sous-requêtes, la mise en cache n'était pas appliquée aux sous-requêtes. Pour activer la mise en cache dans ces scénarios, exécutez l'appel API suivant :
PUT _cluster/settings
{
"persistent": {
"search.query_cache_get_wait_lock_enable": "true",
"search.query_cache_skip_factor": "200000000"
}
}
k-NN
Résolution des incohérences de données entre les shards primaires et les réplicas dans les scénarios de requête k-NN.
Corrections de bugs
Correction d'un problème où l'exécution de
GET _cat/nodeéchouait après la migration d'un shard sur un nœud lors d'une mise à jour blue-green.
Version 1.8.0 du noyau
Plug-ins
Le plug-in aliyun-timestream est disponible pour Elasticsearch V7.10.0. Il améliore les performances de stockage et de requête pour les données de séries temporelles et prend en charge :
La création, la modification, l'interrogation et la suppression d'index de séries temporelles
L'exécution d'instructions PromQL pour interroger les données stockées dans Elasticsearch
L'écriture de données dans les index de séries temporelles à l'aide du protocole de ligne InfluxDB
Pour plus d'informations, consultez Présentation d'aliyun-timestream, Intégrer Elasticsearch avec Prometheus et Grafana basé sur aliyun-timestream pour implémenter une surveillance intégrée et Intégrer aliyun-timestream avec le protocole de ligne InfluxDB.
Version 1.7.0 du noyau
Recherche
Le plug-in analytic-search est disponible. Il améliore considérablement les performances des requêtes dans les scénarios de journalisation :
Les politiques de fusion des index et les politiques d'agrégation par histogramme de date sont optimisées. Les requêtes inconditionnelles ou à condition unique, telles que celles effectuées sur la page Discover de Kibana, sont plus de 6 fois plus rapides dans les scénarios de requête de journaux. Dans les environnements ingérant plus de 1 To de données par jour, le temps de requête passe de plusieurs minutes à 5 secondes ou moins.
La récupération simultanée des données est prise en charge pour les requêtes concurrentes, ce qui améliore l'utilisation des ressources et réduit le temps moyen de récupération des données de 50 % dans les scénarios de journalisation.
Les petits segments en lecture seule sont fusionnés en continu avant la fusion forcée, améliorant ainsi les performances des requêtes de 20 %.
Améliorations des performances
Les requêtes d'écriture entre les nœuds clients et les nœuds de données sont compressées à l'aide de LZ4. Cela réduit la surcharge de bande passante réseau de 30 %.
La fusion forcée peut s'exécuter en parallèle sur plusieurs shards, réduisant ainsi la durée totale de la fusion forcée.
Les grands blocs de données du texte brut peuvent être compressés et les paramètres de compression zstd sont optimisés, réduisant la taille du texte brut de 8 %. La méthode Patched Frame of Reference (PFOR) est également prise en charge pour les publications Lucene, réduisant la taille de l'index de 3 % supplémentaires.
Corrections de bugs
Correction d'un problème selon lequel la fonctionnalité
source_reuse_doc_valuesdu plug-in aliyun-codec ne prenait pas en charge les champs dont les noms contenaient des points (.).
Version 1.6.0 du noyau
Compression
La fonctionnalité
source_reuse_doc_valuesest ajoutée au plug-in aliyun-codec afin de réduire davantage la taille des index et les coûts de stockage. Pour plus d'informations, consultez la rubrique Utilisation du plug-in aliyun-codec.
Limitation du débit
Le plug-in aliyun-qos est mis à jour vers la version 2.0, ajoutant des types et des paramètres de limitation du débit plus granulaires. Pour plus d'informations, consultez la rubrique Utilisation du plug-in aliyun-qos.
Version 1.5.0 du noyau
Compression
Le plug-in aliyun-codec est disponible pour améliorer la compression au niveau du noyau des clusters. Pour plus d'informations, consultez la rubrique Utilisation du plug-in aliyun-codec.
Corrections de bugs
Correction d'un bug lié au type de champ
search_as_you_type. Pour plus de détails, consultez le problème GitHub nº 65319.
Version 1.4.0 du noyau
Recherche
Le plug-in aliyun-knn est mis à jour avec des performances d'écriture améliorées, la prise en charge des requêtes de script et une recherche vectorielle optimisée grâce à des optimisations au niveau matériel.
Limitation du débit
Le plug-in aliyun-qos est optimisé pour la limitation du débit au niveau du cluster. Le trafic est automatiquement réparti sur les nœuds sans nécessiter de connaissance de la topologie du cluster ou de la charge des nœuds, améliorant ainsi l'utilisabilité et la stabilité du cluster.
Version du noyau 1.3.0
Recherche
Isolation des requêtes lentes est disponible pour limiter l'impact des requêtes anormales sur la stabilité du cluster.
-
Le plug-in gig est disponible. Il effectue un basculement en quelques secondes lorsqu'une exception se produit sur un nœud du cluster, évitant ainsi les fluctuations de requêtes causées par des nœuds anormaux.
Pour les clusters Elasticsearch V7.10.0 Standard Edition, le plug-in gig est intégré au plug-in aliyun-qos, qui est installé par défaut.
Réplication
La réplication physique est disponible pour améliorer les performances d'écriture des index dotés de shards réplicas.
Séries temporelles
La fonctionnalité de pruning est disponible pour les index de séries temporelles afin d'améliorer les performances des requêtes.
Observabilité
Vous pouvez consulter les journaux d'accès au cluster. Ces journaux incluent des champs tels que Time, Node IP et Content. Utilisez-les pour résoudre les problèmes et analyser les requêtes.
Gestion du cluster
Les performances de planification des nœuds maîtres dédiés sont multipliées par 10, permettant à chaque nœud maître dédié de planifier davantage de shards.
Elasticsearch V6.7.0
Version du noyau 1.3.0
Recherche
L'isolation des requêtes lentes est disponible pour limiter l'impact des requêtes anormales sur la stabilité du cluster.
Le plug-in gig est disponible. Il effectue un basculement en quelques secondes lorsqu'une exception se produit sur un nœud du cluster, évitant ainsi les fluctuations de requêtes causées par des nœuds anormaux.
Avant d'utiliser ces fonctionnalités, confirmez que votre cluster exécute la version du noyau V1.3.0. Si nécessaire, mettez à niveau le noyau. Les mises à niveau du noyau sont prises en charge uniquement pour les clusters Standard Edition exécutant les versions de noyau V0.3.0, V1.0.2 ou V1.3.0.
Version du noyau 1.2.0
Réplication
La réplication physique est disponible pour améliorer les performances d'écriture des index dotés de shards réplicas.
Séries temporelles
La fonctionnalité de pruning est disponible pour les index de séries temporelles afin d'améliorer les performances des requêtes.
Performances d'écriture
La déduplication des données basée sur la clé primaire lors des requêtes est optimisée, ce qui améliore les performances d'écriture des documents avec clés primaires de 10 %.
Stockage
Les transducteurs à états finis (FST) qui n'occupent pas de mémoire heap JVM sont pris en charge. Un seul nœud peut stocker jusqu'à 20 TiB de données d'index.
Version du noyau 1.0.2
Observabilité
Vous pouvez consulter les journaux d'accès au cluster. Ces journaux incluent des champs tels que Time, Node IP et Content. Utilisez-les pour résoudre les problèmes et analyser les requêtes.
Version du noyau 1.0.1
Disjoncteur
Les politiques de disjoncteur pour les JVM sont configurables. Lorsque l'utilisation de la mémoire heap JVM atteint 95 %, le cluster rejette les requêtes entrantes pour protéger sa stabilité. Configurez les paramètres suivants :
|
Paramètre |
Valeur par défaut |
|
|
|
|
|
|
Version du noyau 0.3.0
Gestion du cluster
Les performances de planification des nœuds maîtres dédiés sont multipliées par 10, permettant à chaque nœud maître dédié de planifier davantage de shards.
Performances d'écriture
Les performances d'écriture sont améliorées de 10 % et la surcharge liée au vidage du translog est réduite.