VERANSTALTUNGEN

Digital Workspace World
22.10.18 - 22.10.18
In Wiesbaden, RheinMain CongressCenter

PM Forum 2018
23.10.18 - 24.10.18
In Nürnberg

PM Forum 2018
23.10.18 - 24.10.18
In Nürnberg

MCC Fachkonferenz CyberSecurity für die Energiewirtschaft
24.10.18 - 25.10.18
In Köln

Panda Security: IT Security Breakfast
26.10.18 - 26.10.18
In Spanischen Botschaft in Berlin

Big Data

Nachdem sich Teil 1 mit Application-Caching-Strategien beschäftigt hat, widmet sich dieser Beitrag nun den Caching-Topologien und Bereinigungsstrategien. Moderne Caches kommen in drei unterschiedlichen Systemtypen vor. Nachfolgend erläutern ihre Vor- und Nachteile auf.

In-Process-Caches

Der In-Process-Cache kommt am häufigsten in nichtverteilten Systemen zum Einsatz. Der Cache wird im Arbeitsspeicher der Anwendung selbst beibehalten und bietet die schnellstmögliche Zugriffsgeschwindigkeit.

Dieser Cachetyp kommt beim Caching von Datenbanken zum Einsatz. Er kann allerdings auch als eine Art Objektpool dienen, zum Beispiel durch Pooling der zuletzt genutzten Netzwerkverbindungen, die zu einem späteren Zeitpunkt nochmals verwendet werden sollen.

Einsatz bei Datenbanken.

Bild 1: Einsatz bei Datenbanken.

Vorteile:

  • Höchste Zugriffsgeschwindigkeit 

  • Daten lokal verfügbar 

  • Wartungsfreundlich

Nachteile:

  • Datenredundanz bei mehreren Applikationen 

  • Hoher Verbrauch an Arbeitsspeicher an jedem einzelnen Knoten 

  • Zwischengespeicherte Daten im Arbeitsspeicher der Anwendung 

  • Anscheinend einfacher Aufbau, allerdings mit versteckten Herausforderungen 


Caches in eingebetteten Knoten

Durch die Verwendung eines im Knoten eingebetteten Caches wird die Applikation selbst Teil des Clusters. Diese Caching-Topologie ist eine Kombination aus einem In-Process-Cache sowie dem Cooperative Caching und kann entweder die Partitionierung oder eine vollständige Datensatzreplikation nutzen.

Bei der vollständigen Replikation profitiert die Anwendung von den Vorteilen eines In-Process-Cache, da alle Daten lokal zur Verfügung stehen (höchste Zugriffsgeschwindigkeit). Allerdings geht das zu Lasten des Arbeitsspeichers und der Datenmenge.

Bei der Datenpartitionierung weiß die Anwendung, wo die angefragten Daten liegen und fordert sie direkt über eine bereits bestehende Datenverbindung an. Die Geschwindigkeit ist zwar geringer als bei lokal verfügbaren Daten, aber weiterhin akzeptabel.

Die Kombi macht’s.

Bild 2: Die Kombi macht’s.

Vorteile:

  • Daten können bei höchster Zugriffsgeschwindigkeit repliziert werden 

  • Daten können zum Erstellen größerer Datensätze partitioniert werden 

  • Zwischengespeicherte Daten dienen mehreren Applikationen als gemeinsamer Statusbericht 

  • Die Applikation selbst kann skaliert werden 


Nachteile: 


  • Hohe Wiederholungsrate bei Replikation 

  • Anwendung und Cache können nicht unabhängig voneinander skaliert werden 

  • Daten werden im Arbeitsspeicher der Anwendung zwischengelagert 


Lesen Sie auch den anderen Beitrag der Serie „Big Data“:

Teil 1: Application-Caching-Strategien
Teil 2: Caching-Topologien und Bereinigungsstrategien


C/S-Architekturen

EinClient--Server-Cache ist heute einer der gängigsten Setups (neben dem reinen In-Process-Cache).Oftmals agieren diese Systeme als Cooperative Caches, da sie als Multi-Server-Architektur skalieren und dabei das gleiche Feature Set aufweisen wie ein Cache in einem eingebetteten Knoten – bloß mit einer zusätzlichen Client-Ebene.

Diese Architektur pflegt separate Cluster der Anwendungen, nutzt hierfür die zwischengespeicherten Daten sowie die Daten selbst und bietet daher die Möglichkeit, Anwendungs- und Caching-Cluster unabhängig voneinander zu skalieren. Anstelle eines Caching-Clusters ist es ebenso möglich, einen Caching-Server einzusetzen. So wird aber immer seltener verfahren.

Die Zugriffsmuster auf eine Client-Server-Cache-Architektur sind vergleichbar mit denen auf eine externe relationale Datenbank oder andere netzwerkgebundenen Backend-Ressourcen.

C/S – heute Commodity.

Bild 3: C/S – heute Commodity.


Vorteile:

  • Daten können für höchste Zugriffsgeschwindigkeit repliziert werden 

  • Daten können zum Erstellen größerer Datensätze partitioniert werden 

  • Zwischengespeicherte Daten dienen mehreren Applikationen als gemeinsamer Statusbericht Anwendungen und Cache können unabhängig voneinander skaliert werden 

  • Anwendungen können ohne Datenverlust neu gestartet werden 


Nachteile: 


  • Hohe Wiederholungsrate bei Replikation 

  • Stets zusätzlicher Netzwerk-Roundtrip (schnelles Netzwerk) 


Least Frequently Used (LFU)

Die Bereinigungsstrategie Least Frequently Used entfernt Werte, auf die am wenigsten zugegriffen wird. Für die Analyse zeichnet jeder Datensatz seine Zugriffe mit einem Zähler auf, der nur weiter hochzählt. Das Ergebnis kann mit jenen für andere Datensätze zum Feststellen des LFU-Elements verglichen werden.

Bereinigungsstrategie 1.

Bild 4: Bereinigungsstrategie 1.

Vorteile:

  • Berücksichtigt das Alter des Elements 

  • Berücksichtigt Bezugsfrequenz des Elements 

  • Funktioniert besser unter hoher Belastung, wenn schnell viele Elemente angefordert werden (höhere Trefferquote) 


Nachteile: 


  • Ein häufig angefragtes Element wird nur nach zahlreichen Fehlern entfernt 

  • Man muss mehr darauf achten, ungültige Elemente, die sich ändern, als solche zu deklarieren 


Least Recently Used (LRU)

Die Bereinigungsstrategie Least Recently Used entfernt Werte, die lange nicht verwendet wurden. Jeder Datensatz zeichnet seine letzte Zugriffszeit auf, die mit anderen Datensätzen verglichen werden kann, um das letzte LRU-Element festzustellen.

Bereinigungsstrategie 2.

Bild 5: Bereinigungsstrategie 2.


Vorteile:

  • Ist dem optimalen Algorithmus am nächsten 

  • Wählt Elemente aus und entfernt solche, die länger nicht verwendet wurden 


Nachteile: 


  • Teils geringe Erfolgsquote, da es meist wichtiger ist, wie oft auf ein Element zugegriffen wurde, als wann dies zuletzt erfolgt ist

Andere Bereinigunsstrategien

Abgesehen von LRU und LFU wurden im Laufe der letzten zehn Jahre eine Reihe anderer Bereinigungsstrategien entwickelt. Sie verfolgen unterschiedliche Ziele. Einige versuchen, bessere Treffer zu landen benötigen dafür aber viel Processing-Leistung oder Metadaten. Andere kombinieren die beiden vorherigen Strategien oder – im einfachsten Fall – wählen einfach zufällig Einträge aus.

Je nach Ziel unterscheiden sich Erfolg und Effizienz hinsichtlich der bereinigten Elemente. Eine komplette Übersicht anderer häufig verwendeter Bereinigungsstrategien sind auf Wikipedia zu finden.

Weitere Informationen:

Teil 1 dieser Serie hat sich mit dem Thema Application-Caching-Strategien beschäftigt.

Christoph EngelbertChristoph Engelbert, Technical Evangelist Senior Solutions Architect bei Hazelcast

https://hazelcast.com/

 

GRID LIST
Analytics Dashboard

BI-Tools: Hauptmerkmale im Vergleich

Ideen veranschaulichen und Daten visualisieren – die Vielzahl an Tools im Bereich…
Search

Worauf kommt es bei einer Enterprise-Search-Lösung an?

Mit der richtigen Lösung für die unternehmensweite Suche können Mitarbeiter schnell an…
Otto Neuer

Mit Datenanalysen die Fußball-WM gewinnen

Ob Orakel aus der Tierwelt oder Big Data-Analysen: Vor großen Fußballturnieren gibt es…
Schatzkiste

Heben Sie Ihren Datenschatz mithilfe von Self-Service-BI

Unternehmen stehen heute einer riesigen Datenmenge gegenüber, die eine Unmenge an…
Tb W190 H80 Crop Int Edfb0446c4d7b02ec6e9e4f9acaf3aad

Prognostische Analytik liefert Daten für bessere Entscheidungen

Traditionell konzentrieren sich Business-Intelligence (BI)-Berichte auf eine Analyse der…
Tb W190 H80 Crop Int 489dee67c6511f2f775a4da1af1b344d

Daten sind das neue Öl, aber Informationen sind das neue Gold

Branchenübergreifend wird in und von Unternehmen immer wieder die gleiche Frage gestellt:…
Smarte News aus der IT-Welt