Simple Log Service (SLS) utilise des shards pour contrôler le débit en lecture et en écriture des Logstores, Eventstores et Metricstores. Vous pouvez fractionner ou fusionner des shards afin d'ajuster le nombre de shards actifs et le débit global. Le fractionnement peut être automatique, mais la fusion est exclusivement manuelle.
Concepts clés
Plage de shard
Chaque shard couvre une plage de hachage MD5 fermée à gauche et ouverte à droite : [BeginKey,EndKey). Les plages ne se chevauchent pas et couvrent ensemble l'intégralité de l'espace MD5 : [00000000000000000000000000000000,ffffffffffffffffffffffffffffffff). Lorsque vous créez un Logstore ou un Metricstore, SLS répartit la plage MD5 de manière égale entre le nombre de shards spécifié.
BeginKey : début de la plage du shard. Cette valeur est inclusive.
EndKey : fin de la plage du shard. Cette valeur est exclusive.
Par exemple, le Logstore A comporte quatre shards avec les plages suivantes :
Tableau 1. Exemple de plages de shards
|
ID du shard |
Plage |
|
Shard0 |
[00000000000000000000000000000000,40000000000000000000000000000000) |
|
Shard1 |
[40000000000000000000000000000000,80000000000000000000000000000000) |
|
Shard2 |
[80000000000000000000000000000000,c0000000000000000000000000000000) |
|
Shard3 |
[c0000000000000000000000000000000,ffffffffffffffffffffffffffffffff) |
La lecture des données nécessite de spécifier un ID de shard. L'écriture des données prend en charge deux modes :
-
Mode d'équilibrage de charge : chaque paquet de données est écrit aléatoirement dans un shard disponible.
Ce mode est recommandé lorsque le trafic en écriture dépasse la capacité d'un seul shard.
-
Mode de routage par clé de hachage : vous spécifiez une clé MD5 et les données sont écrites dans le shard dont la plage contient cette clé.
Par exemple, sur la base de l'exemple de plage de shard, si vous écrivez des données avec une clé MD5 de 5F, celles-ci seront stockées dans Shard1. Si vous utilisez une clé de 8C, les données seront écrites dans Shard2.
Capacité de lecture et d'écriture des shards
Chaque shard possède des limites définies de capacité en lecture et en écriture. Pour plus de détails, consultez la section Lecture et écriture des données.
Planifiez le nombre de shards en fonction du trafic réel de vos données. Fractionnez les shards lorsque le trafic dépasse la capacité ; fusionnez-les lorsque le trafic est nettement inférieur à la capacité afin de réduire le nombre de shards actifs et les coûts.
Si les appels API en écriture renvoient systématiquement des erreurs 403 ou 500, vérifiez le trafic et les codes d'état dans Cloud Monitor pour déterminer si vous avez besoin de davantage de shards.
Si les requêtes dépassent la capacité d'un shard, SLS les traite dans la mesure du possible sans garantir la qualité du service.
Statut du shard
Le statut d'un shard peut être readwrite ou readonly.
Les nouveaux shards commencent avec le statut readwrite. Après un fractionnement ou une fusion, les shards d'origine passent au statut readonly et de nouveaux shards readwrite sont créés. Le statut n'affecte pas les performances en lecture, mais seuls les shards readwrite garantissent les performances en écriture — les shards readonly n'acceptent pas de nouvelles écritures.
Fractionnement et fusion
Vous pouvez ajuster le nombre de shards actifs de deux manières :
-
Un fractionnement divise un shard en deux nouveaux shards
readwriteplacés après l'original. Leur plage MD5 combinée équivaut à la plage du shard d'origine.Seuls les shards
readwritepeuvent être fractionnés. Après le fractionnement, le shard d'origine devientreadonly— vous pouvez toujours consommer ses données, mais vous ne pouvez pas y écrire de nouvelles données. -
Une fusion combine deux shards adjacents en un nouveau shard
readwriteplacé après eux. Sa plage MD5 couvre la plage combinée des deux shards d'origine.Sélectionnez un shard
readwritequi n'est pas le dernier de la séquence. SLS le fusionne automatiquement avec le shard adjacent situé à sa droite. Les deux shards d'origine deviennentreadonly— vous pouvez toujours consommer leurs données, mais vous ne pouvez pas y écrire de nouvelles données.
Fractionner un shard
Planifiez le nombre de shards en fonction de votre trafic de données. Chaque shard prend en charge un débit en écriture de 5 Mo/s ou 500 requêtes/s et un débit en lecture de 10 Mo/s ou 100 requêtes/s. Il s'agit de limites souples — SLS traite le trafic excédentaire dans la mesure du possible. Fractionnez les shards lorsque le débit est insuffisant.
Si les appels API en écriture renvoient systématiquement des erreurs 403 ou 500, vérifiez le trafic et les codes d'état dans Cloud Monitor pour déterminer si vous avez besoin de davantage de shards.
Opérations via la console
Connectez-vous à la console Simple Log Service.
-
Dans la section Projects, cliquez sur celui de votre choix.

Dans le volet de navigation de gauche, choisissez
Log Storage > Logstores. Sur la page Logstores, placez le curseur sur le logstore cible et choisissez .Sur la page Logstore Attributes, cliquez sur Modify.
-
Sélectionnez un shard à fractionner et cliquez sur Split.
ImportantSeuls les shards
readwritepeuvent être fractionnés.Sur la page Shard Management, recherchez le shard
readwriteà fractionner, puis cliquez sur Split dans la colonne Actions. Dans la boîte de dialogue qui s'affiche, sélectionnez le nombre de nouveaux shards et cliquez sur OK.
Cliquez sur Save.
Afficher les shards
Opérations via la console
Connectez-vous à la console Simple Log Service.
-
Dans la section Projects, cliquez sur celui de votre choix.

Dans le volet de navigation de gauche, choisissez
Log Storage > Logstores. Sur la page Logstores, placez le curseur sur le logstore cible et choisissez .-
Sur la page Logstore Attributes, consultez la liste des shards du logstore.
Cette page affiche le nombre total de shards (Total Shards), y compris le nombre de shards readwrite et readonly, ainsi que les détails de chaque shard, notamment son Id, son statut (Status), ses clés BeginKey/EndKey et son heure de création (Creation Time).
Fractionnement automatique des shards
SLS fractionne automatiquement un shard lorsque toutes les conditions suivantes sont réunies :
L'option Auto Split Shard est activée.
Le trafic en écriture vers le shard a dépassé sa capacité d'écriture pendant plus de cinq minutes.
Le nombre de shards
readwritedans le logstore est inférieur à la valeur configurée pour Maximum Shards.
Les shards créés par un fractionnement au cours des 15 dernières minutes ne sont pas éligibles au fractionnement automatique.
Activez le fractionnement automatique des shards et définissez la valeur Maximum Shards lors de la création ou de la modification d'un Logstore.
-
Auto Split Shard
Par exemple, si vous disposez de quatre shards, SLS évalue chaque shard indépendamment. Il fractionne tout shard remplissant les conditions, à condition que le nombre total de shards ne dépasse pas le maximum configuré.
-
Maximum Shards
Limite supérieure du nombre total de shards après un fractionnement automatique. Valeur maximale prise en charge : 256 shards
readwrite.
Fusionner des shards
Lorsque le trafic de données est nettement inférieur à la capacité des shards, fusionnez les shards pour réduire le nombre de shards actifs et diminuer les coûts. Une fusion combine un shard avec le shard adjacent situé à sa droite et doit être effectuée manuellement.
Pour fusionner des shards, vous devez spécifier un shard dont le statut est readwrite et qui n'est pas le dernier shard readwrite de la séquence.
Dans le volet de navigation de gauche, choisissez
Log Storage > Logstores. Sur la page Logstores, placez le curseur sur le logstore cible et choisissez .Sur la page Logstore Attributes, cliquez sur Modify.
-
Sélectionnez un shard à fusionner et cliquez sur Merge.
La page Shard Management répertorie tous les shards avec leurs détails. La colonne Actions propose les options Split ou Merge pour les shards
readwrite. Aucune action n'est disponible pour les shardsreadonly. -
Cliquez sur Save.
Après la fusion, les deux shards d'origine passent au statut
readonly. Un nouveau shardreadwriteest créé avec une plage MD5 couvrant la plage combinée des deux shards d'origine.
Supprimer un shard
Les shards supprimés ne peuvent pas être restaurés. Agissez avec prudence.
-
Suppression automatique
Si vous définissez une période de conservation des données pour le logstore, SLS supprime automatiquement les shards et leurs données à l'expiration de cette période.
-
Suppression manuelle
Si vous avez activé le stockage permanent, supprimez l'intégralité du Logstore pour retirer ses shards et ses données. Arrêter la facturation/Supprimer un logstore.
Référence API
|
Actions |
API |
|
Fractionner un shard |
|
|
Fusionner des shards |
|
|
Répertorier les shards |
> Modify