Le 17 juillet 2018, une annonce officielle d'AWS expliquait qu'il n'était plus nécessaire de randomiser les premiers caractères de chaque clé d'objet S3 pour obtenir des performances maximales: https://aws.amazon.com/about-aws/whats-new / 2018/07 / amazon-s3-annonce-une-augmentation-des-performances-de-taux /
Amazon S3 annonce une augmentation des performances du taux de demandes
Publié le: 17 juil.2018
Amazon S3 offre désormais des performances accrues pour prendre en charge au moins 3 500 demandes par seconde pour ajouter des données et 5 500 demandes par seconde pour récupérer des données, ce qui peut économiser un temps de traitement important sans frais supplémentaires. Chaque préfixe S3 peut prendre en charge ces taux de demande, ce qui simplifie considérablement les performances.
Les applications exécutées sur Amazon S3 aujourd'hui bénéficieront de cette amélioration des performances sans aucun changement, et les clients qui créent de nouvelles applications sur S3 n'ont pas à effectuer de personnalisation d'application pour atteindre ces performances. La prise en charge d'Amazon S3 pour les demandes parallèles signifie que vous pouvez faire évoluer vos performances S3 selon le facteur de votre cluster de calcul, sans apporter de personnalisation à votre application. Échelles de performances par préfixe, vous pouvez donc utiliser autant de préfixes que nécessaire en parallèle pour atteindre le débit requis. Il n'y a pas de limite au nombre de préfixes.
Cette augmentation des performances du taux de demandes S3 supprime toutes les instructions précédentes pour randomiser les préfixes d'objet pour obtenir des performances plus rapides. Cela signifie que vous pouvez désormais utiliser des modèles de dénomination logiques ou séquentiels dans la dénomination d'objet S3 sans aucune incidence sur les performances. Cette amélioration est désormais disponible dans toutes les régions AWS. Pour plus d'informations, consultez le Guide du développeur Amazon S3.
C'est super, mais c'est aussi déroutant. Il indique que chaque préfixe S3 peut prendre en charge ces taux de demande, ce qui simplifie considérablement les performances.
Mais comme les préfixes et délimiteurs ne sont que des arguments de l' GET Bucket (List Objects)
API lors de la liste du contenu des compartiments, comment peut-il être logique de parler des performances de récupération d'objet "par préfixe". Chaque appel à GET Bucket (List Objects)
peut choisir le préfixe et le délimiteur qu'il souhaite, donc les préfixes ne sont pas une entité prédéfinie.
Par exemple, si mon compartiment contient ces objets:
a1/b-2
a1/c-3
Ensuite, je peux choisir d'utiliser "/" ou "-" comme délimiteur chaque fois que j'énumère le contenu du compartiment, donc je pourrais considérer que mes préfixes sont soit
a1/
ou
a1/b-
a1/c-
Mais comme l' GET Object
API utilise la clé entière, le concept d'un préfixe ou d'un délimiteur particulier n'existe pas pour la récupération d'objet. Alors, puis-je m'attendre à 5500 req / sec a1/
ou alternativement à 5500 req / sec a1/b-
et à 5500 on a1/c-
?
Quelqu'un peut-il donc expliquer ce que l'on entend par annonce lorsqu'elle suggère un niveau particulier de performances (par exemple +5 500 demandes par seconde pour récupérer des données) pour "chaque préfixe s3"?