MongoDB

MongoDB ist die führende Open-Source, Document Datenbank die für einfache Entwicklung und Skalierung aber auch für Big Data Szenarien entwickelt wurde.

Hintergrundwissen Transaktionen: Lesen lokaler Snapshots

Marc-David Militz
Experte
  • Artikel von Dj Walker-Morgan

    • englischer Originalartikel
      https://www.mongodb.com/blog/post/transactions-background-part-3-local-snapshot-reads
      Übersetzung mit freundlicher Genehmigung von MongoDB

      • Zusammenfassung

        • Damit Transaktionen effektiv genutzt werden können, ist es notwendig auf die Datenbank zu einem fest definierten Zeitpunkt zugreifen zu können. Diese "point in time" Konsistenz macht es möglich, festzustellen, welche Daten zu welchem Snapshot gehören. Dabei werden die Ressourcen anhand logischer Sessions getracked.

          • Hintergrund

            • Bei der "traditionellen" Art eine langlaufende Abfrage auf einem Server abzuarbeiten werden die Daten aus einem bestimmten Snapshot ausgelesen, bis der Cursor ein Teilergebnis zurück geliefert hat. Im Prozess des "zurück Lieferns" wurde der Status des Cursors gespeichert und die Locks, sowie auch die Snapshots der Datenbank werden freigegeben. Danach wird ein neuer Lock gesetzt, ein Snapshot erstellt, der Cursor wiederhergestellt und die Abfrage fortgesetzt. Das bedeutet, dass der Zeitpunkt des Snapshots mit jedem Teilergebnis weiterwandert.

              • Den Snapshot behalten

                • Lokale Reads auf einem Snapshot setzen die Locks und Snapshots nicht frei, wenn ein Teilergebnis zurückgeliefert wird. Die logische Session des Clients wird benutzt, um den Lock und Snapshot zu speichern und diese erst dann freizusetzen, wenn die gesamte Operation oder Transaktion abgeschlossen ist. Das Nutzen einer Session macht es außerdem möglich die Ressourcen serverübergreifend zu nutzen.

                  • Lokale Snapshot-Lesevorgänge verwenden

                    • Um das Verhalten eines Lokale Snapshot-Lesevorgangs zu erzielen muss eine Multi-Dokument-Transaktion mit einer Client-Session und einem ReadConcern "snapshot" gestartet werden. Mit dem "snapshot" ReadConcern werden alle Operationen gegen einen konsistenten Snapshot gefahren. Unabhängig von der Anzahl der einzelnen Statements, Netzwerk Roundtrips oder Teilrückgaben. Wenn die Session und die Transaktion als "causally consistent" gekennzeichnet sind, dann wird der verwendete Snapshot außerdem mit den Operationen in der vorhergehenden Transaktion des Session konsistent sein.

                      • Lokale Snapshot-Lesevorgänge und Transaktionen

                        • Lokale Snapshot-Reads eröffnen Transaktionen die Möglichkeit, clusterübergreifend, von einem einheitlichen "point in time" zu arbeiten. Das bedeutet, dass Multi-Dokument Operationen unter der Voraussetzung ausgeführt werden können, dass der Zeitpunkt des Snapshots sich nicht bewegt und konsistent bleibt.

                          Wer tiefer in das Thema MongoDB Transaktionen einsteigen will, für den hat Qualiero die Schulung MongoDB Datenbank-Entwickler-Kurs im Angebot
                          https://www.qualiero.com/lerninhalte/classroom-trainings/mongodb-datenbank-entwickler-kurs.html

Neueste Mitgliederaktivitäten

Diesen Community Beitrag weiterempfehlen