Kann CouchDB Tausende von separaten Datenbanken auf demselben Rechner verwalten?Kann CouchDB Tausende von separaten Datenbanken verwalten?
Stellen Sie sich vor Sie haben eine Sammlung von BankTransaction
s. Es gibt viele tausend Datensätze. (BEARBEITEN: keine Transaktionen wirklich speichern - denken Sie nur an eine sehr große Anzahl von sehr kleinen, häufig aktualisierten Datensätzen. Es ist im Grunde eine Join-Tabelle von SQL-Land.)
Jeder Tag möchten Sie eine Zusammenfassung der Transaktionen, die aufgetreten sind nur bei Ihrer örtlichen Bankfiliale. Wenn sich alle Datensätze in einer einzelnen Datenbank befinden, wird beim Regenerieren der Ansicht der Transaktionen der Zweigstellen verarbeitet. Dies ist ein viel größerer Teil der Arbeit und unnötig für den Benutzer, der sich nur um seine bestimmte Teilmenge von Dokumenten kümmert.
Dadurch scheint es so, als ob jeder Bankzweig in eine eigene Datenbank partitioniert werden sollte, damit die Ansichten in kleineren Blöcken und unabhängig voneinander erzeugt werden können. Aber ich habe nie von jemandem gehört, der das macht, und es scheint wie ein Anti-Pattern (z. B. das Duplizieren des gleichen Design-Dokuments in Tausenden von verschiedenen Datenbanken).
Gibt es eine andere Art, wie ich dieses Problem modellieren sollte? (Sollte die Partitionierung zwischen getrennten Rechnern stattfinden, nicht getrennte Datenbanken auf demselben Rechner?) Wenn nicht, kann CouchDB die Tausende von Datenbanken verwalten, die benötigt werden, um die Partitionen klein zu halten?
(Danke!)
Um Ihre Frage zu beantworten, Ja. ** ABER **, ist riskant, nicht Transaktionsspeicher für die Transaktion zu verwenden ... – ajreal
@ajreal CouchDB ist transaktional, sonst würde es die ACID-Konformität nicht bestehen. Jeder Dokument-Schreibvorgang ist auf Dokumentebene transaktional. Sie können eine Transaktion nicht gleichzeitig auf> 1 Dokument ausführen. –