Gestion de la compression basée sur un dictionnaire dans Amazon DocumentDB 8.0 - Amazon DocumentDB

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Gestion de la compression basée sur un dictionnaire dans Amazon DocumentDB 8.0

Amazon DocumentDB 8.0 introduit un nouvel algorithme de compression de documents, zstd, comme alternative améliorée à. LZ4 Lorsque vous activez la compression de dictionnaire sur une collection Amazon DocumentDB 8.0 en sélectionnant Zstd comme algorithme de compression, les documents de votre collection sont échantillonnés pour créer un dictionnaire de compression personnalisé. Les documents nouveaux et mis à jour sont compressés à l'aide de ce dictionnaire et de l'algorithme zstd. Cette approche permet généralement d'obtenir des taux de compression plus élevés que les méthodes de compression standard, en particulier pour les collections comportant des schémas de documents cohérents ou des noms de champs répétés.

Lz4 est un algorithme conçu pour une compression et une décompression rapides. Il est connu pour être léger sur le processeur tout en obtenant une compression notable. Zstd est un algorithme à usage général qui, avec les paramètres par défaut, utilise plus de processeur mais atteint de meilleurs taux de compression que lz4. L'utilisation de dictionnaires améliore encore la compression pour la plupart des documents JSON. Certains avantages de l'algorithme Zstd sont les suivants :

  • Coûts de stockage réduits : des taux de compression plus élevés se traduisent par une réduction de l'utilisation du stockage et des coûts.

  • BaisseI/O: Compressed documents require less I/O, amélioration potentielle des performances.

  • Optimisé pour votre collection : le dictionnaire est spécialement conçu pour les modèles de données de votre collection.

Note

La compression basée sur un dictionnaire n'est pas prise en charge sur les versions 3.6, 4.0 et 5.0 d'Amazon DocumentDB.

Considérations sur les performances

La compression Zstd implique les compromis suivants :

  • Stockage ou processeur : la compression Zstd permet d'obtenir de meilleurs taux de compression mais peut utiliser un peu plus de ressources du processeur par rapport à la compression. LZ4

  • Compression initiale : les nouvelles collections peuvent ne pas atteindre une compression optimale tant que suffisamment de documents ne sont pas insérés pour créer un dictionnaire efficace. Actuellement, un dictionnaire est formé si la collection contient au moins 100 documents.

  • Type de charge de travail : les charges de travail intensives en lecture où l'intégralité des données se trouve dans le cache tampon peuvent connaître une augmentation de la latence et de l'utilisation du processeur en raison de la surcharge de décompression.

La compression Zstd est particulièrement efficace pour les collections contenant de petits documents, des tableaux de documents et des noms de champs répétés.

Activation de la compression basée sur un dictionnaire

Pour les nouvelles collections, vous pouvez utiliser la commande ci-dessous pour activer la compression Zstd :

db.createCollection("myCollection", { storageEngine: { documentDB: { compression: { enable: true, algorithm: "zstd" } } } } )

Vous pouvez également activer ou modifier la compression sur une collection existante :

db.runCommand({ collMod: "myCollection", storageEngine: { documentDB: { compression: { enable: true, algorithm: "zstd" } } } })

Pour activer l'algorithme Zstd dans toutes les collections de votre cluster, vous pouvez modifier le groupe de paramètres du cluster pour sélectionner « zstd » comme valeur pour le paramètre « default_collection_compression ».

Démarrage

Amazon DocumentDB 8.0 est livré avec la compression Zstd activée par défaut. Vous pouvez toujours le désactiver en définissant la valeur de 'default_compression' sur disabled dans le groupe de paramètres de votre cluster. Il convient de noter qu'à partir d'Amazon DocumentDB 8.0, « activé » n'est plus un choix valide pour default_compression, et vous devez sélectionner entre Zstd et. LZ4

Contrôle

Vous pouvez consulter les informations de compression d'une collection à l'aide de l'une des commandes suivantes :

  • DB.RunCommand ({collStats : « MyCollection »}) OU

  • db.collection.stats ()

Ces commandes renvoient des statistiques clés que vous pouvez utiliser pour calculer le taux de compression :

  • compression.algorithm : L'algorithme utilisé (« lz4 » ou « zstd »)

  • StorageSize : le stockage réel utilisé par la collection, après compression. Notez que ce nombre inclut la fragmentation (c'est-à-dire l'espace inutilisé dans les pages de base de données)

  • avgObjSize: taille logique moyenne des documents de la collection, décompressés. Notez que si votre collection compte plus de 20 000 documents, ce nombre sera une approximation basée sur un échantillon de 20 000 documents.

  • taille : taille logique de la collection sans compression. Ce nombre est obtenu en multipliant avgObjSize par le nombre total de documents de la collection, donc s'il s' avgObjSize agit d'une approximation, ce nombre le sera également.

  • nombre : nombre de documents dans la collection

Les CloudWatch mesures suivantes peuvent être utiles lors de l'évaluation de la compression basée sur un dictionnaire :

  • CPUUtilization

  • FreeableMemory

  • VolumeBytesUsed

  • VolumeReadIOPs

  • VolumeWriteIOPs

Métriques CollStats :

  • storageSize

  • size

En outre, il peut être utile de suivre les indicateurs spécifiques à votre application, tels que la latence et le débit par type de requête ou API.