Administración de la compresión basada en diccionarios en Amazon DocumentDB 8.0 - Amazon DocumentDB

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Administración de la compresión basada en diccionarios en Amazon DocumentDB 8.0

Amazon DocumentDB 8.0 presenta un nuevo algoritmo de compresión de documentos, zstd, como una alternativa mejorada a. LZ4 Al habilitar la compresión de diccionarios en una colección de Amazon DocumentDB 8.0 seleccionando Zstd como algoritmo de compresión, los documentos de la colección se muestrean para crear un diccionario de compresión personalizado. Los documentos nuevos y actualizados se comprimen con este diccionario y el algoritmo zstd. Este enfoque suele lograr relaciones de compresión más altas que los métodos de compresión estándar, especialmente para colecciones con esquemas de documentos consistentes o nombres de campo repetidos.

Lz4 es un algoritmo diseñado para una compresión y descompresión rápidas. Se sabe que es liviano para la CPU y, al mismo tiempo, logra una compresión notable. Zstd es un algoritmo de uso general que, con la configuración predeterminada, usa más CPU pero logra mejores relaciones de compresión que lz4. El uso de diccionarios mejora aún más la compresión en la mayoría de los documentos JSON. Algunas de las ventajas del algoritmo Zstd son:

  • Reducción de los costes de almacenamiento: unas relaciones de compresión más altas implican un menor uso del almacenamiento y unos costes más bajos.

  • Menor rendimientoI/O: Compressed documents require less I/O, lo que podría mejorar.

  • Optimizado para su colección: el diccionario está diseñado específicamente para los patrones de datos de su colección.

nota

La compresión basada en diccionarios no se admite en las versiones 3.6, 4.0 y 5.0 de Amazon DocumentDB.

Consideraciones sobre el rendimiento

La compresión Zstd implica las siguientes ventajas y desventajas:

  • Almacenamiento frente a CPU: la compresión Zstd logra mejores relaciones de compresión, pero puede consumir un poco más de recursos de la CPU en comparación con la compresión. LZ4

  • Compresión inicial: es posible que las nuevas colecciones no logren una compresión óptima hasta que no se hayan insertado suficientes documentos para formar un diccionario eficaz. En la actualidad, un diccionario se entrena si reúne al menos 100 documentos.

  • Tipo de carga de trabajo: las cargas de trabajo de lectura intensiva en las que todos los datos caben en la caché del búfer pueden experimentar un aumento de la latencia y el uso de la CPU debido a la sobrecarga de descompresión.

La compresión Zstd es especialmente eficaz para colecciones con documentos pequeños, matrices de documentos y nombres de campos repetidos.

Habilitar la compresión basada en diccionarios

En el caso de colecciones nuevas, puede utilizar el siguiente comando para activar la compresión Zstd:

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

También puedes activar o modificar la compresión en una colección existente:

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

Para habilitar el algoritmo Zstd en todas las colecciones del clúster, puede modificar el grupo de parámetros del clúster para seleccionar «zstd» como valor para el parámetro «default_collection_compression».

Introducción

Amazon DocumentDB 8.0 incluye la compresión Zstd activada de forma predeterminada. Siempre puede desactivarla configurando el valor de 'default_compression' como deshabilitado en el grupo de parámetros del clúster. Debe tenerse en cuenta que, a partir de Amazon DocumentDB 8.0, «activado» ya no es una opción válida para default_compression y debe seleccionar entre Zstd y. LZ4

Supervisión

Puede ver la información de compresión de una colección mediante uno de los siguientes comandos:

  • db.runCommand ({CollStats: «myCollection»}) O

  • db.collection.stats ()

Estos comandos devuelven estadísticas clave que puede utilizar para calcular la relación de compresión:

  • algoritmo de compresión: el algoritmo utilizado («lz4" o «zstd»)

  • StorageSize: el almacenamiento real que utiliza la colección después de la compresión. Tenga en cuenta que este número incluye la fragmentación (es decir, el espacio no utilizado en las páginas de la base de datos)

  • avgObjSize: El tamaño lógico promedio de los documentos de la colección, descomprimido. Tenga en cuenta que si su colección tiene más de 20 000 documentos, este número será una aproximación basada en una muestra de 20 000 documentos.

  • tamaño: el tamaño lógico de la colección sin compresión. Este número se obtiene multiplicando avgObjSize por el número total de documentos de la colección, por lo que si avgObjSize es una aproximación, este número también será una aproximación.

  • recuento: número de documentos de la colección

Las siguientes CloudWatch métricas pueden resultar útiles a la hora de evaluar la compresión basada en diccionarios:

  • CPUUtilization

  • FreeableMemory

  • VolumeBytesUsed

  • VolumeReadIOPs

  • VolumeWriteIOPs

Métricas de CollStats:

  • storageSize

  • tamaño

Además, puede resultar útil realizar un seguimiento de las métricas específicas de la aplicación, como la latencia y el rendimiento por tipo de consulta o API.