Wie Komprimierung in einer objektorientierten Speicherarchitektur funktioniert

Ein Team von Ingenieuren des MIT hat eine objektorientierte Speicherhierarchie entwickelt, um effizienter mit Daten zu arbeiten. Im Artikel werden wir verstehen, wie es funktioniert.

Wie Komprimierung in einer objektorientierten Speicherarchitektur funktioniert
/ PxHere /PD

Bekanntlich geht die Leistungssteigerung moderner CPUs nicht mit einer entsprechenden Verringerung der Latenz beim Speicherzugriff einher. Der Unterschied in den Indikatorenänderungen von Jahr zu Jahr kann bis zu 10 Mal betragen (PDF, Seite 3). Dadurch entsteht ein Engpass, der die volle Nutzung der verfügbaren Ressourcen verhindert und die Datenverarbeitung verlangsamt.

Leistungsschäden entstehen durch die sogenannte Dekompressionsverzögerung. In manchen Fällen kann die vorbereitende Datendekomprimierung bis zu 64 Prozessorzyklen dauern.

Zum Vergleich: Addition und Multiplikation von Gleitkommazahlen besetzen nicht mehr als zehn Zyklen. Das Problem besteht darin, dass der Speicher mit Datenblöcken fester Größe arbeitet und Anwendungen mit Objekten arbeiten, die unterschiedliche Datentypen enthalten können und sich in der Größe voneinander unterscheiden. Um das Problem zu lösen, haben Ingenieure am MIT eine objektorientierte Speicherhierarchie entwickelt, die die Datenverarbeitung optimiert.

Wie die Technologie funktioniert

Die Lösung basiert auf drei Technologien: Hotpads, Zippads und dem COCO-Komprimierungsalgorithmus.

Hotpads sind eine softwaregesteuerte Hierarchie von registriertem Hochgeschwindigkeitsspeicher (Scratchpad). Diese Register werden Pads genannt und es gibt drei davon – von L1 bis L3. Sie speichern Objekte unterschiedlicher Größe, Metadaten und Zeiger-Arrays.

Im Wesentlichen handelt es sich bei der Architektur um ein Cache-System, das jedoch auf die Arbeit mit Objekten zugeschnitten ist. Die Höhe der Unterlage, auf der sich das Objekt befindet, hängt davon ab, wie oft es verwendet wird. Wenn eine der Ebenen „überläuft“, startet das System einen Mechanismus ähnlich den „Garbage Collectors“ in den Sprachen Java oder Go. Es analysiert, welche Objekte weniger häufig verwendet werden als andere und verschiebt sie automatisch zwischen den Ebenen.

Zippads arbeitet auf Hotpads – archiviert und dearchiviert Daten, die in die letzten beiden Ebenen der Hierarchie eintreten oder diese verlassen – das L3-Pad und den Hauptspeicher. Die ersten und zweiten Pads speichern Daten unverändert.

Wie Komprimierung in einer objektorientierten Speicherarchitektur funktioniert

Zippads komprimiert Objekte, deren Größe 128 Bytes nicht überschreitet. Größere Objekte werden in Teile zerlegt, die dann in verschiedenen Speicherbereichen abgelegt werden. Wie die Entwickler schreiben, erhöht dieser Ansatz den Koeffizienten des effektiv genutzten Speichers.

Zum Komprimieren von Objekten wird der COCO-Algorithmus (Cross-Object COmpression) verwendet, auf den wir später noch eingehen werden, obwohl das System auch damit arbeiten kann Basis-Delta-Sofort oder FPC. Der COCO-Algorithmus ist eine Art Differenzkomprimierung (differentielle Kompression). Es vergleicht Objekte mit der „Basis“ und entfernt doppelte Bits – siehe Diagramm unten:

Wie Komprimierung in einer objektorientierten Speicherarchitektur funktioniert

Laut Ingenieuren des MIT ist ihre objektorientierte Speicherhierarchie 17 % produktiver als klassische Ansätze. Das Design ähnelt viel mehr der Architektur moderner Anwendungen, sodass die neue Methode Potenzial hat.

Es wird erwartet, dass Unternehmen, die mit Big Data und maschinellen Lernalgorithmen arbeiten, zuerst mit der Nutzung der Technologie beginnen werden. Eine weitere mögliche Richtung sind Cloud-Plattformen. IaaS-Anbieter werden in der Lage sein, effizienter mit Virtualisierung, Datenspeichersystemen und Rechenressourcen zu arbeiten.

Unsere zusätzlichen Ressourcen und Quellen:

Wie Komprimierung in einer objektorientierten Speicherarchitektur funktioniert „Wie wir IaaS bauen“: Materialien über die Arbeit von 1cloud

Wie Komprimierung in einer objektorientierten Speicherarchitektur funktioniert Entwicklung der 1cloud Cloud-Architektur
Wie Komprimierung in einer objektorientierten Speicherarchitektur funktioniert Objektspeicherdienst in 1cloud

Wie Komprimierung in einer objektorientierten Speicherarchitektur funktioniert Mögliche Angriffe auf HTTPS und wie man sich davor schützt
Wie Komprimierung in einer objektorientierten Speicherarchitektur funktioniert Inwiefern ähneln und unterscheiden sich die Ansätze von Continuous Delivery und Continuous Integration?
Wie Komprimierung in einer objektorientierten Speicherarchitektur funktioniert So schützen Sie einen Server im Internet: 1cloud-Erfahrung

Source: habr.com

Kommentar hinzufügen