Um mit dem wachsenden Volumen an Medieninhalten Schritt zu halten, hat Verizon Media, jetzt Edgio Media, in die Erweiterung unseres globalen Cache-Footprint investiert. Allein im Jahr 2019 haben wir eine Kapazität von mehr als 25 Tbit/s, sieben globale Pops und fast 900 Verbindungen auf der letzten Meile hinzugefügt. Obwohl die Leistung effektiv verbessert werden kann, reicht die Rohkapazität nicht aus, und es ist auch kein nachhaltiges Geschäftsmodell, um die ständig wachsende globale Nachfrage nach Streaming-Inhalten zu erfüllen.
Um die Verfügbarkeit unserer Netzwerkkapazität zu maximieren, investieren wir gleichermaßen in Technologien, Prozesse und Tools, mit denen die Betriebs- und Infrastrukturkosten unter Kontrolle gehalten werden. Unser Forschungsteam setzt kontinuierlich die Grenzen von Caching-Technologien fort und wendet Prozesse an und optimiert sie, um unseren Netzwerkbetreibern eine detaillierte Kontrolle darüber zu geben, wie, wann und wo Inhalte zwischengespeichert werden.
Moderne Caching-Strategien
Das Ziel jeder Caching-Strategie ist es, die beliebtesten Inhalte im Cache zu behalten und gleichzeitig die weniger beliebten Inhalte schnell und effizient zu entfernen. Im Laufe der Jahre haben Forscher und Softwareentwickler unzählige Strategien entwickelt, um die Caching-Herausforderung zu lösen. Diese reichen von relativ einfach bis extrem komplex. Zu den beliebtesten Strategien gehören:
- Der am wenigsten verwendete (LRU)
- Am seltensten verwendet (LFU)
- First in, First Out (FIFO)
Es wäre praktisch, wenn es eine einzige Caching-Strategie gäbe, die alle Situationen regelt. Eine solche Lösung muss jedoch noch entwickelt werden, und die Effektivität einer bestimmten Strategie kann je nach Server- und Festplattengröße, Datenverkehrsmuster und anderen Faktoren stark variieren. Auf der Grundlage umfangreicher Tests haben wir festgestellt, dass LRU den besten Kompromiss zwischen Trefferrate und Festplatten-I/O bietet und 60 % weniger Schreibvorgänge als FIFO bietet und gleichzeitig hohe Trefferraten beibehält. Darüber hinaus ist LRU für die in unserem CDN verwendeten Festplattengrößen mit komplexeren Richtlinien wie S4LRU (Quadruply-segmented LRU) gleichzusetzen. Weitere Einzelheiten finden Sie in diesem Dokument, das wir letztes Jahr auf der Konferenz zur passiven und aktiven Messung (PAM) in Puerto Varas, Chile, veröffentlicht haben.
Weiterentwicklung der Caching-Strategie mit Hybrid-LRU
Auch wenn LRU sehr gut für unsere Umwelt funktioniert, suchen wir immer nach Möglichkeiten, Innovationen voranzutreiben und die Kundenleistung zu verbessern. Dies hat zu einer neuen Funktion geführt, die wir kürzlich zu unserer Plattform hinzugefügt haben, nämlich Hybrid LRU. Es wird Hybrid genannt, weil es eine Abstraktionsschicht auf LRU hinzufügt. Wenn wir die Hybridfunktion nicht verwenden, funktioniert das System weiterhin normal, sodass es sehr leicht zu verstehen und zu aktivieren oder zu deaktivieren ist.
Mit dem Hybridansatz arbeiten wir daran, das LRU-System zu optimieren, um uns mehr Kontrolle über bestimmte Inhalte zu geben. Unter Kontrolle verstehen wir die Möglichkeit, bestimmte Inhalte explizit für eine längere oder kürzere Dauer auf der Grundlage vordefinierter Einstellungen zu speichern.
Dies ist aufgrund von Veränderungen in der gesamten Video-Streaming-Landschaft wichtig, insbesondere aufgrund des rapiden Wachstums des Live-Streamings. Allein in unserem Netzwerk wurden Hunderttausende von Live-Events veranstaltet, von denen viele Millionen von Zuschauern gleichzeitig empfangen werden. Trotz der enormen Beliebtheit solcher Veranstaltungen wird ein Live-Event-Stream, sobald er abgeschlossen ist, wahrscheinlich nicht mehr in nennenswerter Lautstärke erneut gestreamt. Mit Hybrid-LRU können wir einen kürzeren Cachezeitraum festlegen, wodurch wertvolle Cache-Ressourcen für andere Medien und Inhalte freigesetzt werden.
Wir experimentieren mit der Sperrung bestimmter Inhalte und bieten bestmögliche Sicherheit, dass sie in unserem Cache verbleiben. Dies kann besonders nützlich für Live-Videostreams mit begrenzter Haltbarkeit sein, kann aber noch einige Stunden nach einem Live-Event, das zu einem normalen Video-on-Demand-Inhalt wird, sehr gefragt sein. Diese Funktion kann auch unter Bedingungen verwendet werden, in denen ein Content Provider bestimmte Inhalte explizit für einen bestimmten Zeitraum sperren möchte, damit sie nicht auf die Ursprungsserver treffen.
Hybrid-LRU ermöglicht es uns auch, einige Inhalte über einen längeren Zeitraum zu speichern. Dies ist nützlich, wenn sich der Ursprung beispielsweise in einem entfernten Teil der Welt befindet, was zu einer schlechten QoE führen kann, wenn das CDN keinen angeforderten Inhalt im Cache hat. In solchen Fällen würde eine neue Clientanforderung einen Cache-Fehlschlag auslösen, den der Ursprung füllen muss, was möglicherweise zu einer Neupufferung führt. Eine langsamere Veralterung dieses Inhalts bleibt länger im Cache und verringert die Anzahl derartiger Ursprünge.
Hybrid-LRU-Verwendungsparameter
Hybrid-LRU besteht aus zwei einstellbaren Parametern, die es uns ermöglichen, die Entfernung oder Entfernung bestimmter Inhalte aus unseren Caches entweder zu verzögern oder zu beschleunigen:
- Fälligkeitsrate
- Gültigkeitsdauer (TTL)
Der Parameter „Time To Live“ (TTL) verringert das Alter eines Artikels um einen bestimmten Betrag. Es funktioniert, indem einem Element für die Dauer, die durch diese Variable festgelegt wird, eine extrem niedrige Punktzahl für die Räumung zugewiesen wird. Dadurch wird ein Element gezwungen, seit dem letzten Zugriff im Cache eine bestimmte Dauer zu verbleiben. Der Standardwert ist 0 Sekunden, was bedeutet, dass keine besondere Voreinstellung vorliegt.
Die folgenden Diagramme zeigen, wie diese einstellbaren Parameter funktionieren, um die Dauer des Inhalts im Cache anzupassen. Diese Parameter als Drehregler oder Drehregler zu betrachten, die genau an die Anforderungen des Inhalts angepasst werden können, ist nützlich. In den Diagrammen wird dargestellt, wie Objekte im Laufe der Zeit in Server-Caches altern, während auf den Zugriff gewartet wird.
Sehen wir uns zunächst die Fälligkeitsrate an. Herkömmliche LRU-Objekte altern im Zeitverlauf mit derselben Rate. Aber wenn wir die Alterskurve erhöhen, werden die Artikel mit der Zeit schneller. Wenn wir das Wahlrad in die entgegengesetzte Richtung drehen, werden Elemente langsamer als LRU. Drehen Sie das Wahlrad so weit, dass die langsameren Elemente niemals die „Ausräumungsschwelle“ überschreiten, wie in Abbildung 1 gezeigt. Mit dieser Kontrolle können wir Elemente entweder früher entfernen, um Speicherplatz freizugeben, oder Elemente länger auf der Festplatte aufbewahren, um die Anzahl der Abzüge zu reduzieren oder aus anderen Gründen.
Im Gegensatz zur Fälligkeitsrate können wir mit TTL die Cachefähigkeit eines bestimmten Elements ändern. Während der mit der TTL-Funktion eingestellten Dauer altert ein Element nicht, während es sich auf der Festplatte befindet, so dass es weniger wahrscheinlich (sogar sehr unwahrscheinlich) ist, dass es vertrieben wird. Nach Ablauf der TTL kann das Element entweder auf die herkömmliche LRU-Art oder mit schneller oder langsamer Alterung (je nach Konfiguration durch den Bediener) altern. In der folgenden Abbildung behielt TTL mit langsamer Alterung ein Element auf der Festplatte so weit, dass es den Schwellenwert für das Auswerfen des Cache nicht überschritten hat. Am anderen Ende sorgte TTL dafür, dass ein Live-Video-Stream mindestens für die Dauer des Ereignisses zwischengespeichert wurde, danach aber schnell durch schnelles Altern von der Festplatte entfernt wurde.
In den meisten Fällen ist die Änderung des Werts für die Alterungsrate die bevorzugte Methode zur Anpassung des Zeitpunkts, wann Inhalte aus dem Cache entfernt werden, da sie sich leicht an die Menge des Datenverkehrs auf einer Festplatte anpassen lässt. TTL hingegen ist aggressiver und kann einen Teil einer Festplatte effektiv sperren, bis der Inhalt freigegeben wird. Wie diese Beispiele jedoch zeigen, können die beiden Bedienelemente zusammen verwendet werden, um zuverlässig den gewünschten Effekt zu erzielen.
Zukunftsorientierte Caching-Strategien
Eine breit angelegte Caching-Strategie wie LRU ist wie ein großer Hammer und behandelt alle Inhalte gleich, unabhängig vom Typ oder der Dateigröße. Wenn eine Datei innerhalb einer bestimmten Zeit keinen Treffer erhält, wird sie aus dem Cache gelöscht. In der Zwischenzeit befinden sich andere Dateien (z. B. einmalige Live-Videostreams/-Ereignisse), die in Zukunft wahrscheinlich keine Treffer bekommen, im Cache und nehmen Platz ein. Hybrid-LRU sorgt für eine gewisse Verfeinerung, um unnötigen Cache-Platzbedarf zu reduzieren und die Cache-Trefferquote zu verbessern. Es ist so, als würde man einen kleinen Hammer oder Schraubendreher verwenden, um genauer zu steuern, welche Dateien im Cache bleiben und welche entfernt werden sollen.
Derzeit ist Hybrid-LRU experimentell und erfordert einen Bediener, der die Zeitrahmen für die Ausräumung der Inhalte anpassen muss. In der Zukunft untersuchen wir, ob Anforderungsprofile und andere Faktoren genutzt werden können, um automatisch Anpassungen vorzunehmen. Live-Events haben beispielsweise viele verschiedene Profile – Tausende von Anfragen für dieselben Dateisegmente werden gleichzeitig eingesendet – und dann Video-on-Demand-Dateien. Wir prüfen auch, ob Anpassungen auf der Grundlage der Dateigröße vorgenommen werden. Möchten Sie große Dateien auf der Festplatte behalten, um den Netzwerkverkehr zu minimieren, oder kleinere Dateien auf der Hand halten, um eine Cachetrefferquote zu erzielen?
Auch wenn wir auf die Leistung und Reife unseres Caching-Systems und unserer Strategien vertrauen, bleibt die Notwendigkeit, begrenzte Ressourcen zu optimieren, eine wichtige und kontinuierliche Anstrengung.