El 17 de julio de 2018 hubo un anuncio oficial de AWS que explicaba que ya no es necesario aleatorizar los primeros caracteres de cada clave de objeto S3 para lograr el máximo rendimiento: https://aws.amazon.com/about-aws/whats-new / 2018/07 / amazon-s3-anuncia-aumento-rendimiento-tasa-solicitud /
Amazon S3 anuncia un mayor rendimiento de la tasa de solicitud
Publicado en: 17 de julio de 2018
Amazon S3 ahora proporciona un mayor rendimiento para admitir al menos 3.500 solicitudes por segundo para agregar datos y 5.500 solicitudes por segundo para recuperar datos, lo que puede ahorrar un tiempo de procesamiento significativo sin cargo adicional. Cada prefijo S3 puede admitir estas tasas de solicitud, lo que facilita el aumento significativo del rendimiento.
Las aplicaciones que se ejecutan en Amazon S3 hoy disfrutarán de esta mejora de rendimiento sin cambios, y los clientes que crean nuevas aplicaciones en S3 no tienen que realizar ninguna personalización de aplicaciones para lograr este rendimiento. El soporte de Amazon S3 para solicitudes paralelas significa que puede escalar el rendimiento de su S3 por el factor de su clúster de cómputo, sin realizar ninguna personalización en su aplicación. El rendimiento se escala por prefijo, por lo que puede usar tantos prefijos como necesite en paralelo para lograr el rendimiento requerido. No hay límites para la cantidad de prefijos.
Este aumento del rendimiento de la tasa de solicitud S3 elimina cualquier guía previa para aleatorizar los prefijos de objetos para lograr un rendimiento más rápido. Eso significa que ahora puede usar patrones de nombres lógicos o secuenciales en nombres de objetos S3 sin ninguna implicación de rendimiento. Esta mejora ahora está disponible en todas las regiones de AWS. Para obtener más información, visite la Guía del desarrollador de Amazon S3.
Eso es genial, pero también es confuso. Dice que cada prefijo S3 puede admitir estas tasas de solicitud, lo que facilita el aumento significativo del rendimiento
Pero dado que los prefijos y delimitadores son solo argumentos para la GET Bucket (List Objects)
API cuando se enumera el contenido de los depósitos, ¿cómo puede tener sentido hablar sobre el rendimiento de recuperación de objetos "por prefijo". Cada llamada a GET Bucket (List Objects)
puede elegir el prefijo y delimitador que desee, por lo que los prefijos no son una entidad predefinida.
Por ejemplo, si mi cubo tiene estos objetos:
a1/b-2
a1/c-3
Entonces puedo elegir usar "/" o "-" como mi delimitador cada vez que enumero el contenido del depósito, por lo que podría considerar que mis prefijos son
a1/
o
a1/b-
a1/c-
Pero como la GET Object
API usa la clave completa, el concepto de un prefijo o delimitador particular no existe para la recuperación de objetos. Entonces, ¿puedo esperar 5,500 requerimientos / segundo a1/
o, alternativamente, 5,500 requerimientos / segundo a1/b-
y 5,500 encendido a1/c-
?
Entonces, ¿alguien puede explicar qué significa el anuncio cuando sugiere un nivel particular de rendimiento (por ejemplo, +5,500 solicitudes por segundo para recuperar datos) para "cada prefijo s3"?