CouchDB In-Memory-Implementierung

8

Gibt es ein nachgeordnetes Backend für CouchDB, d. h. dieselbe REST-Schnittstelle und Semantik, aber rein speicherintern? Wir haben eine Testsuite, die jeden Test auf einer unveränderten Datenbank jedes Mal ausführt (um reproduzierbar zu sein), aber das Laufen gegen reale Datenbank könnte schneller sein.

    
Alex B 11.05.2012, 01:58
quelle

5 Antworten

6

Meinst du damit gegen eine Mock -Datenbank zu laufen?

Ich glaube nicht, dass etwas direkt aus der Box kommt. Zwei Ideen:

  1. CouchDB in einem Speicher-Dateisystem. Richten Sie eine Ramdisk oder tmpfs mount ein und konfigurieren Sie die CouchDB database_dir und view_index_dir , um dorthin zu zeigen.
  2. PouchDB portiert CouchDB auf den IndexedDB-Standard des Browsers. Sie haben nicht gesagt, welche Sprache und welche Umgebung Sie verwenden, aber wenn Sie Node.js ausführen können, lohnt es sich, nachzusehen. PouchDB hat eine gute Dynamik und ich denke, es wird bald in Node.js laufen (vielleicht durch jsdom oder eine andere Bibliothek. Beachten Sie, dass Sie nicht die vollständige Lösung erhalten; aber Sie haben Ihre Frage auf "gibt es In-Memory IndexedDB erweitert Implementierungen für Node.js ", für die die Antwort entweder" ja "oder" bald "ist, angesichts ihrer Annahme-Trajektorie.
JasonSmith 11.05.2012 02:09
quelle
2

Gefunden: Ссылка - es unterstützt verschiedene Plattformen und scheint eine ernsthafte Anstrengung zu sein.

    
Vijay Rudraraju 13.10.2015 06:55
quelle
2

Ziemlich spät zur Party, aber ich hatte großen Erfolg mit pouchdb-server , basierend auf der oben erwähnten PouchDB Projekt (eine JavaScript-Implementierung von CouchDB). Es kann gegen eine Vielzahl von Back-Ends ausgeführt werden, einschließlich eines In-Memory-Back-Ends. Das bedeutet, dass Sie

ausführen können %Vor%

um einen In-Memory CouchDB-kompatiblen Server zu erhalten. Es gibt verschiedene andere Befehlszeilenoptionen, die ebenfalls untersucht werden können.

Ich denke, es ist in der Lage, die gesamte CouchDB-Testsuite auszuführen, also würde ich annehmen, dass es ziemlich unwahrscheinlich ist, dass Sie zu viele Implementierungsunterschiede haben würden.

    
David Alan Hjelle 24.03.2016 15:59
quelle
0

Ich habe das gleiche Problem ... für Tests möchte ich einfach keine couchdb einrichten ... ich möchte nur ein wenig Speicher haben, so einfach wie möglich.

Was habe ich getan: * Ich erstelle einen Speicher CouchDB Connector = & gt; es ist nur eine sehr einfache Implementierung von "org.ektorp.CouchDbConnector" * Im Frühjahr verdrahte ich die CouchDbConnection-Implementierung, die ich brauche = & gt; Wenn ich es für meine Dev-Tests verwende, verbinde ich meinen Speicher CouchDB Connector, wenn ich eine Verbindung zu einem echten CouchDb herstellen möchte, benutze ich den üblichen Connector = & gt; org.ektorp.impl.StdCouchDbConnector

Das einzige Problem ist, dass "org.ektorp.CouchDbConnector" mehr als 50 Methoden hat, die implementiert werden müssen. Für meine Probleme reichte es aus, nur ein paar dieser Methoden zu implementieren. Hängt von Ihren Testfällen ab.

    
user3227576 05.10.2015 20:07
quelle
-1

memorydb ist eine partielle (in Bearbeitung befindliche) In-Memory-Implementierung von CouchDB zur Verwendung mit Kivik , das als eigenständiger Server ausgeführt werden kann.

Nicht alle Funktionen sind bereits implementiert.

    
Flimzy 14.10.2017 09:48
quelle

Tags und Links