Was ist der richtige Begriff, um eine „persistente Transaktion“ zu beschreiben?

dba.stackexchange https://dba.stackexchange.com/questions/2313

  •  16-10-2019
  •  | 
  •  

Frage

Ich bin eine Art von Administrator einer Nullverabreichung von Oodbms, aber meistens mache ich Programmierung.

Ich erinnere mich, dass ich vor Jahren über eine SQL -Datenbank gelesen habe, die ein Konzept von so etwas wie einer dauerhaften Transaktion hatte. Es könnte Sybase gewesen sein. Wie auch immer, was dieses "Ding" war, war wie eine Transaktion, die Sie anfangen und die zwischen Verbindungen und mit dem mit dem mit normalen "normalen" Transaktionen bestehen können. Im Grunde genommen gab es Ihnen eine "Ansicht" dieser Datenbank, die sich von der Hauptdatenbank abweiden könnte, jedoch auf demselben Server ausgeführt wird und daher den größten Teil der Ressource freigibt, anstatt seinen eigenen "eigenen" Server zu haben. Ich hoffe du verstehst was ich jetzt meine.

Wie auch immer, wie heißt es, und ist es noch in modernen Datenbanken verfügbar. Gibt es insbesondere eine der ausgefallenen verteilten NoSQL -Datenbanken, die das können?

Der Grund, warum ich frage, ist, dass ich so etwas verwenden könnte, um die Inszenierung der nächsten Version meiner Software in der Hauptdatenbank auszuführen und mir die Notwendigkeit zu sparen, ein Staging -System zu haben, das so leistungsfähig ist wie das Hauptdaten und die Probleme/Bandbreite der Synchronisierung der Änderungen vom Haupt- bis zum Test. Ich würde einfach die "permanente Transaktion" starten, die neue Software für ein paar Tage testen und möglicherweise einige Benutzer eine Vorschau erhalten und die Änderungen wegwerfen, wenn ich fertig bin. Dann mache ich die wirkliche Bereitstellung und beginne eine neue "permanente Transaktion" für die nächste Version ...

NB: Ich konnte keine sinnvollen Tags platzieren, weil es mein erster Beitrag ist und ich nicht das Recht hatte, Tags zu erfinden, und es gab nichts Schöneres als "persistent" oder "dauerhaft" oder sogar "langer Lauf" ...

War es hilfreich?

Lösung

Ich weiß, was Sie meinen, wir tun es im Speicher mithilfe des Speichers NetApp Flexclones. Ein Flexclone "sieht" genauso aus wie eine Kopie eines Dateisystems, aber die zugrunde liegenden Blöcke auf den Scheiben sind Kopie auf dem Schreiben, Der einzige Raum, den er tatsächlich einnimmt, ist die der Änderungen, die Sie vornehmen.

Der Klon ist jedoch nicht Ein Strom von Änderungen, wie ein Redo -Protokoll. Die Art und Weise, wie NetApp funktioniert, ist, dass jeder Block, den Sie auf der Ebene des Dateisystems sehen, wirklich ein gerechter Zeiger auf einen Block für den "echten" Speicher ist. Das Erstellen eines Flexclons ist lediglich eine Frage des Kopierens der Liste der Zeiger, daher ist es ein sehr leichter Betrieb. Wenn Sie einen Block auf einem Flexclone wechseln, wird der Zeiger in einen frischen Block verschoben und das Original kopiert, er wird wie gewohnt fortgesetzt. Dies hat zwei interessante Auswirkungen:

  1. Sobald Sie einmal einen Block geändert haben, können Sie ihn so oft ändern, wie Sie möchten - er wird keinen Speicher mehr belegen
  2. Sobald die anfängliche Kuh fertig ist, ist die Zugangsgeschwindigkeit zum FlexClone identisch mit der eines realen Volumens.

Wir würden normalerweise die Primärin einsetzen Hotbackup -Modus (Für Oracle, aber da es sich um den Speicher handelt, funktioniert dies mit jeder Datenbank mit einem äquivalenten Modus.) von archivierten Wiederholungsprotokollen nach Bedarf und öffnen Sie sie mit resetlogs. Wir erlauben standardmäßig eine "Snap -Reserve" von 10% (dh Sie können bis zu 10% des Klons ändern), dies ist jedoch vollständig konfigurierbar - Sie können es zu 100% machen und eine "Split" durchführen, die auch eine unabhängige Kopie erstellt. Diese Technologie (mit cleverem Shell -Scripting) hat die Erstellung von Testumgebungen von mehr als 3 Tagen bis zu mehreren Minuten auf meiner Website geschaffen. Ich bin ein großer Fan.

Andere Tipps

Ich denke, Sie suchen einen getrennten Datensatz. Es kompliziert das Transaktionsmanagement, da Sie Datenbanksperren nicht verwalten können.

Mit JDBC -Treibern kann ein Datensatz von der Datenbank getrennt werden.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit dba.stackexchange
scroll top