Am 17. Juli 2018 wurde in einer offiziellen AWS-Ankündigung erklärt, dass die ersten Zeichen jedes S3-Objektschlüssels nicht mehr zufällig sortiert werden müssen, um eine maximale Leistung zu erzielen: https://aws.amazon.com/about-aws/whats-new / 2018/07 / amazon-s3-kündigt-erhöhte-anfragerate-leistung an /
Amazon S3 kündigt erhöhte Leistung bei der Anforderungsrate an
Veröffentlicht am: 17. Juli 2018
Amazon S3 bietet jetzt eine verbesserte Leistung und unterstützt mindestens 3.500 Anfragen pro Sekunde zum Hinzufügen von Daten und 5.500 Anfragen pro Sekunde zum Abrufen von Daten, wodurch ohne zusätzliche Kosten erhebliche Verarbeitungszeiten eingespart werden können. Jedes S3-Präfix kann diese Anforderungsraten unterstützen, sodass die Leistung auf einfache Weise erheblich gesteigert werden kann.
Anwendungen, die heute auf Amazon S3 ausgeführt werden, profitieren von dieser Leistungsverbesserung, ohne dass Änderungen vorgenommen werden. Kunden, die neue Anwendungen auf S3 erstellen, müssen keine Anwendungsanpassungen vornehmen, um diese Leistung zu erzielen. Die Unterstützung von Amazon S3 für parallele Anforderungen bedeutet, dass Sie Ihre S3-Leistung um den Faktor Ihres Computerclusters skalieren können, ohne Anpassungen an Ihrer Anwendung vornehmen zu müssen. Leistungsskalen pro Präfix, sodass Sie so viele Präfixe verwenden können, wie Sie parallel benötigen, um den erforderlichen Durchsatz zu erzielen. Die Anzahl der Präfixe ist unbegrenzt.
Durch diese Leistungssteigerung der S3-Anforderungsrate werden alle vorherigen Anweisungen zur zufälligen Zuordnung von Objektpräfixen entfernt, um eine schnellere Leistung zu erzielen. Das heißt, Sie können jetzt bei der S3-Objektbenennung logische oder sequenzielle Benennungsmuster verwenden, ohne dass dies Auswirkungen auf die Leistung hat. Diese Verbesserung ist jetzt in allen AWS-Regionen verfügbar. Weitere Informationen finden Sie im Amazon S3-Entwicklerhandbuch.
Das ist toll, aber auch verwirrend. Es heißt, dass jedes S3- Präfix diese Anforderungsraten unterstützen kann, was es einfach macht, die Leistung signifikant zu steigern
Da Präfixe und Begrenzer nur Argumente für die GET Bucket (List Objects)
API sind, wenn der Inhalt von Buckets aufgelistet wird, kann es sinnvoll sein, über die Leistung beim Abrufen von Objekten "pro Präfix" zu sprechen. Jeder Aufruf von GET Bucket (List Objects)
kann ein beliebiges Präfix und Trennzeichen auswählen, sodass Präfixe keine vordefinierte Entität sind.
Wenn mein Bucket beispielsweise die folgenden Objekte enthält:
a1/b-2
a1/c-3
Dann kann ich wählen, "/" oder "-" als Trennzeichen zu verwenden, wenn ich den Bucket-Inhalt aufführe, sodass ich meine Präfixe als entweder betrachten kann
a1/
oder
a1/b-
a1/c-
Da die GET Object
API jedoch den gesamten Schlüssel verwendet, ist das Konzept eines bestimmten Präfixes oder Begrenzers für den Objektabruf nicht vorhanden. Kann ich also mit 5.500 Anfragen / Sek. Rechnen a1/
oder alternativ mit 5.500 Anfragen / Sek. a1/b-
Und 5.500 Anfragen / Sek. a1/c-
?
Kann jemand erklären, was mit der Ansage gemeint ist, wenn sie ein bestimmtes Leistungsniveau (z. B. +5.500 Anfragen pro Sekunde zum Abrufen von Daten) für "jedes s3-Präfix" vorschlägt?