Was ist ein Batterie-Backup-Cache?


8

Ich habe einen Artikel über die Leistungsoptimierung von Innodb gelesen und in diesem Beitrag erwähnte der Autor wiederholt etwas, das als "Batterie-Backup-Cache" bezeichnet wurde. Es ist mir nicht klar, wovon er sprach und Google hat auch nicht geholfen. Ich vermute, dass dies eine Art Backup-Speicher ist, falls es zu einem Stromausfall kommt. Habe ich recht?


1
Wird normalerweise auf Server-RAID-Karten verwendet, die das Schreib-Caching unterstützen. Wenn die Stromversorgung ausfällt und ungeschriebene Daten vorhanden sind, hält der Akku diese im Cache am Leben, damit sie bei
Wiederherstellung

Antworten:


7

RAID-Arrays verwenden einen batteriegepufferten Cache, sodass sie Daten schneller verarbeiten als schreiben können. Ohne den Akku könnten sie kein Caching durchführen, ohne das Risiko eines Datenverlusts während eines Stromausfalls.

Dies ist die einzige Instanz, die ich mir vorstellen kann, wo Sie einen Cache benötigen, der speziell batteriegepuffert ist . Wenn es flüchtigen Speicher unterstützen würde, wäre es egal.

Ich nehme an, ich sollte beachten, dass dies eine Funktion eines professionellen Hardware-RAID-Setups ist und kein Software- oder Consumer-RAID-On-Board-RAID. Die Batterien sind beträchtlich, ungefähr so ​​groß wie eine Altoiddose . Sie neigen dazu, alle 4-5 Jahre schlecht zu werden, was Ihr Caching beendet und Ihrem Backing Store einen Performance-Hit verleiht.


+1 - der ursprüngliche Artikel spezifiziert tatsächlich einen 'batteriegepufferten RAID-Cache', also ist dies mit ziemlicher Sicherheit der
Fall

Ja, ein Hardware-RAID-Array ist eine perfekte Anwendung für diese Technik. Insgesamt ist es ein sehr allgemeines Konzept, das in vielen Anwendungen verwendet werden kann.
Andyz Smith

3

Die magnetische Speicherung ist langsam, stellen Sie also besser einen Cache davor. Es ist leicht zu erkennen, wie dies das Lesen beschleunigt, aber kann es auch das Schreiben beschleunigen?

  • Ein geschriebener Cache funktioniert nicht, da er zwar eine Kopie der geschriebenen Daten im Cache aufbewahrt (für nachfolgende Lesevorgänge), den Vorgang jedoch erst dann als erfolgreich bestätigt, wenn er sich im realen Speicher befindet ("trifft Eisenoxid").

  • Ein Rückschreib-Cache funktioniert, weil er dem Host signalisiert, dass die Operation beendet ist, sobald er sich im Cache befindet. Es wird etwas später im Hintergrund in den permanenten (magnetischen) Speicher geschrieben.

Rückschreibcaches klingen zunächst besser, führen jedoch ein Schwachstellenfenster ein: Bei einem Stromausfall gehen alle bestätigten, aber noch nicht geschriebenen Daten verloren. Die Dateisysteme oder Datenbanken können dies nicht verhindern, da Journale, Scheduler-Barrieren, Operationsreihenfolgen usw. von der Schreibbestätigung abhängen, um zu bedeuten, dass Daten bereits sicher geschrieben sind.

Die Lösung besteht darin, dem Cache eine kleine Batterie hinzuzufügen, damit dieser einen Stromausfall überstehen kann. Sobald die Stromversorgung wiederhergestellt ist, werden alle ausstehenden Schreibvorgänge abgeschlossen (noch bevor der Host gestartet wird).

Jetzt gibt es auch zwei andere Alternativen:

  • Ersetzen Sie den RAM-Cache durch nichtflüchtigen Speicher. SSDs können bei gleichen Kosten viel größer sein, sind aber nicht so schnell wie RAM. In vielen Fällen sind sie jedoch schneller als die Datenverbindung, sodass sie schnell genug sein können.

  • Fügen Sie dem Cache einen kleinen nichtflüchtigen Speicher hinzu. Im Falle eines Stromausfalls lässt eine sehr kleine Batterie (oder ein Superkondensator) gerade genug zusätzliche Zeit, um die anstehenden Cache-Einträge zum Flashen zu speichern. Sie müssen den RAM nicht für unbestimmte Zeit am Leben halten.


1

Caching wird verwendet, um Vorgänge zu beschleunigen. Ein typisches Verwendungsmuster für einen Benutzer besteht darin, mehrmals auf denselben Datensatz zuzugreifen. Lesen Sie es, überprüfen Sie es, erhalten Sie einige Details dazu usw. Wenn das zugrunde liegende System den Datensatz auch nur kurz im Speicher behält, ist der Zugriff beim nächsten Versuch des Benutzers, mit dem Datensatz zu interagieren, tausende Male schneller als beim Laden wieder Festplatte.

Das Problem tritt auf, wenn Ingenieure die gute Idee haben, zur Verbesserung der Systemleistung Dinge, die der Benutzer dem Datensatz hinzugefügt hat, für eine Weile in den Speicher zu stellen. Die Daten werden erst auf die Festplatte geschrieben, wenn der Cache geleert ist. Dies kann einige Sekunden oder vielleicht zehn Sekunden dauern. Da der Cache jedoch klein ist und viele Änderungen nicht passen, besteht die Möglichkeit, dass einige Änderungen auf die Festplatte geschrieben werden , während andere kurz im Schreibcache bleiben . Wenn der Strom ausfällt, während dies in der Schwebe ist, können die Ergebnisse für die Integrität eines Datei- oder Datenbanksystems verheerend sein.

Einige Systeme implementieren daher ein logisches Schutzschema in Software, indem sie Änderungen datieren oder zwischengespeicherte Änderungen oder alle möglichen leicht verrückten Dinge protokollieren. Wenn Sie jedoch einen batteriegepufferten Schreibcache haben, können Sie auf diese Dinge verzichten und sicher wissen, dass der Schreibcache immer durchgeschrieben wird .

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.