Proposition: NoSQL vs ACID

In der Welt der Datenbanken stehen NoSQL-Datenbanken und ACID-Eigenschaften (Atomicity, Consistency, Isolation, Durability) oft im Kontrast zueinander.

Im Folgenden werden die entsprechenden Konzepte kurz erläutert:

  • Atomicity:
    • In der Regel haben NoSQL-Datenbanken kein Konzept von “Transaktionen”. Atomizität ist nur für einzelne veränderte Dokumente umsetzbar. Das heißt: ein einzelnes Dokument wird entweder vollständig aktualisiert oder überhaupt nicht.
    • Redis, Google Datastore bieten Transaktionen an, wenn sich die Dokumente auf dem selben Node befinden.
    • MongoDB bietet auch dann Transaktionen an, wenn die Dokumente sich auf mehreren geshardeten Clustern befinden.
  • Consistency: BASE-Prinzipien,
  • Isolation: MVCC-Prinzip,
  • Durability:
    • In-memory only: Standardmäßig halten die meisten NoSQL-Datenbanken neue Updates nur in-memory.
    • Write-ahead logging: Einige NoSQL-Datenbanken können so konfiguriert werden, dass sie write-ahead logging unterstützen. Hierbei werden Änderungen zunächst in ein Protokoll geschrieben, bevor sie in die Datenbank übernommen werden. Bei einem Systemfehler können die Protokolleinträge neu angewendet werden.