Allzweck-Datenbanken, die nie löschen oder aktualisieren von Daten in-place
Ich bin sehr begeistert von dem Ansatz zum management von Daten befürwortet von Rich Hickey und umgesetzt Datomic, wo die Daten nie mutierte in-place), alle Versionen sind immer erhalten und Abfrage-in der Lage, und die Zeit ist ein erste-Klasse-Konzept.
Natürlich gibt es auch spezialisierte Datenbanken und die entsprechende Beschreibung, wie Git oder andere Versionskontrollsysteme. Die Frage ist, ob es irgendwelche (mehr oder weniger) Mehrzweck-DBMS-es-relationaler graph, hierarchische, Dokumente oder anderen Geschmack, die kann effektiv verwendet werden, in, sagen wir, eine E-Commerce-Web-Anwendung. Oder ist Datomic die einzige Wahl dann?
- Ich denke, dass sowohl die BerkeleyDB Java Edition und CouchDB arbeiten wie intern. Aber in beiden Fällen gibt es "space reclaim" - Prozesse, die das löschen Alter Daten und ich bin nicht sicher, ob die Geschichte wirklich ausgesetzt, wie ein erste-Klasse-Konzept (im Gegensatz zu "nur" benutzt, um die Transaktion isolation arbeiten).
- Das ist richtig. Ich bin mit CouchDB jetzt. Der Blick auf' map-und reduce-Funktionen können nicht auf die älteren Versionen zugreifen.
- Auch gibt es Git-Ketsch, die
a multi-master Git management system that replicates information across multiple Git servers for resilience and scalability.
, hier hinzufügen, git extensions für große binäre Dateien - und bekommen einige Speicher-geeignet für einige Arten von Anwendungen. - Apache HBase nicht mutieren, Daten und früheren Versionen queryable.
- Ich denke, Google-Spanner ist eine solche Datenbank, d.h.
old versions of data are subject to configurable garbage-collection poli- cies; and applications can read data at old timestamps. and F1 maintains a logical history log of all changes, which is written into Spanner itself as part of every transaction. F1 takes full snapshots of data at a timestamp to initialize its data structures, and then reads incremental changes to update them.
. Seine Spin-Off CockroachDB möglicherweise haben die gleichen Eigenschaften. - Noms versioniert, forkable, syncable, append-only-Datenbank. Es ist möglich, finden Sie in der gesamten Geschichte der Datenbank
- Es gibt auch Bigtable
- LiteTree SQLite mit Niederlassungen
- github.com/sirixdb/sirix
- juxt.pro/crux
Du musst angemeldet sein, um einen Kommentar abzugeben.
Es ist ein Ansatz für das Design von Systemen mit einer Idee, nie löschen oder mutieren von Daten, so genannte Event-Sourcing. Grundsätzlich ist die Idee zum speichern von Ereignissen (oder Fakten), die änderung des Systemstatus, anstelle von snapshots des Staates. Die Geschichte der Ereignisse wiedergegeben werden können und später zu produzieren, die einen bestimmten Zweck bestimmten Projektion dessen, was der Staat an jedem beliebigen Punkt in der Zeit aussah. Mehrere Projektionen aufgebaut, die für verschiedene Zwecke können nebeneinander in das system. Mehr Informationen finden Sie auf den folgenden Websites:
Es im Einklang mit dem, was Sie beschreiben, sondern eher als ein Datenbank-Modell, Event-Sourcing und Command Query Responsibility Segregation (CQRS) verschreiben eine Besondere Art und Weise zu entwerfen, die das gesamte system einschließlich der Datenbank-und business-logic-Layer.
Gibt es ein paar Rahmenbedingungen, die diesem Ansatz Folgen, wie:
Dies hat zwar nicht direkt deine Frage zu beantworten, es kann eine andere Perspektive auf das problem.
open-source, functional database with Complex Event Processing in JavaScript.
wenn nötig Idee realisiert für JavaScript.Irmin ist eine verteilte Datenbank, folgt den gleichen design-Prinzipien wie Git.