30 puntos por hiddenest 2023-10-10 | 4 comentarios | Compartir por WhatsApp

Una crónica de trabajo de ingeniería para reducir los costos causados por almacenar grandes cantidades de datos en Redis en formato JSON sin compresión y por no compartir modelos entre servicios de Redis

  • Al cambiar la forma de almacenamiento de los mismos datos de origen, se redujo en 52% el uso de memoria de ElastiCache y en 66% el costo
  • Al usar Protobuf en lugar de JSON, se definió explícitamente la especificación de los datos y al mismo tiempo se unificó la forma de leer/escribir datos entre servicios
  • Al comparar con brotli, brotli mostró la mayor tasa de compresión. Se compararon el tiempo requerido y la tasa de compresión según el tamaño de window y el nivel de compresión, y se aplicó el valor óptimo
  • Al usar UUID como key de Redis, se pudo ahorrar aunque fuera un poco de uso de memoria usando ascii85
  • Se reconoció que la deuda técnica relacionada con el dominio puede convertirse en un obstáculo para las tareas de reducción de costos de infraestructura, y se resolvió mediante un esquema explícito

4 comentarios

 
nina514 2023-10-18

Conforme las especificaciones de los servidores han ido mejorando cada día, me había enfocado más en sacar el producto rápido que en pensar en la optimización, así que este es un contenido muy bueno que me permite volver a reflexionar sobre la optimización después de mucho tiempo!!

 
cosine20 2023-10-11

Sí, claro, en realidad JSON se usa sobre todo por la ventaja de que la legibilidad y la estructuración flexible resultan convenientes, pero en términos de tamaño es más práctico usar un protocolo binario como protobuf, y si nos vamos al extremo, algo como las estructuras PE tradicionales o protocolos binarios extremadamente optimizados como TCP sería aún mejor.
Creo que eso de llamarlo deuda técnica relacionada con el dominio le queda perfecto.

 
kyc1682 2023-10-10

Está genial.

 
gilbok 2023-10-10

¡Jefe! ¡Súbale mucho el sueldo a esta persona!!