Shuffle-sharding
Warteschlangen erhalten durch shuffle-sharding die Zuweisung ihrer Anfragen
Shuffle-sharding ist eine Technik zur Zuweisung von Anfragen an Warteschlangen, die eine bessere Isolierung als die Hashfunktion modulo die Anzahl der Warteschlangen bietet.
Oft geht es darum, verschiedene Anfrageströme voneinander zu isolieren, damit ein Strom mit hoher Intensität nicht die Ströme mit geringer Intensität überlagert. Eine einfache Möglichkeit, Anfragen in Warteschlangen zu platzieren, besteht darin, einige Merkmale der Anfrage zu hashen, modulo die Anzahl der Warteschlangen, um den Index der zu verwendenden Warteschlange zu erhalten. Die Hashfunktion verwendet als Eingabe Merkmale der Anfrage, die sich mit den Strömen decken. Zum Beispiel ist dies im Internet oft das 5-Tupel aus Quell- und Zieladresse, Protokoll sowie Quell- und Zielport.
Dieses einfache hashbasierte Schema hat die Eigenschaft, dass ein Strom mit hoher Intensität alle Ströme mit geringer Intensität überlagert, die auf dieselbe Warteschlange hashen. Eine gute Isolierung für eine große Anzahl von Strömen erfordert eine große Anzahl von Warteschlangen, was problematisch ist. Shuffle-sharding ist eine agilere Technik, die eine bessere Isolierung der Ströme mit geringer Intensität von den Strömen mit hoher Intensität ermöglichen kann. Die Terminologie von Shuffle-sharding verwendet die Metapher des Austeilens einer Hand aus einem Kartendeck; jede Warteschlange ist eine metaphorische Karte. Die Shuffle-sharding-Technik beginnt mit dem Hashen der die Flüsse identifizierenden Merkmale der Anfrage, um einen Hashwert mit Dutzenden oder mehr Bits zu erzeugen. Dann wird der Hashwert als Quelle der Entropie verwendet, um das Deck zu mischen und eine Hand von Karten (Warteschlangen) auszuteilen. Alle ausgeteilten Warteschlangen werden überprüft, und die Anfrage wird in eine der überprüften Warteschlangen mit der kürzesten Länge platziert. Mit einer bescheidenen Handgröße ist es nicht teuer, alle ausgeteilten Karten zu überprüfen, und ein bestimmter Strom mit geringer Intensität hat eine gute Chance, den Auswirkungen eines bestimmten Stroms mit hoher Intensität auszuweichen. Mit einer großen Handgröße ist es teuer, die ausgeteilten Warteschlangen zu überprüfen, und es ist schwieriger für die Ströme mit geringer Intensität, den gemeinsamen Auswirkungen einer Gruppe von Strömen mit hoher Intensität auszuweichen. Die Handgröße sollte daher wohlüberlegt gewählt werden.
Link zum offiziellen Glossar