Ich habe kürzlich eine Situation festgestellt, in der meine CouchDB-Instanz den gesamten verfügbaren Speicherplatz auf einer VM-Instanz mit 20 GB verwendet hat. Bei der Untersuchung entdeckte ich, dass ein Verzeichnis in/usr/local/var/lib/couchdb/eine Reihe von .view-Dateien enthielt, von denen die größte 16 GB war. Ich konnte die * .view-Dateien entfernen, um den normalen Betrieb wiederherzustellen. Ich bin nicht sicher, warum die .view-Dateien so groß wurden und wie CouchDB .view-Dateien verwaltet.CouchDB .view-Datei außer Kontrolle geraten?
Ein bisschen mehr Informationen. Ich habe eine VM mit Ubuntu 9.10 (karmic) mit 512 MB und CouchDB 0.10. Die VM hat einen Cron-Job, der ein Python-Skript aufruft, das eine Ansicht abfragt. Der Cron-Job wird alle fünf Minuten ausgeführt. Jedes Mal, wenn die Ansicht abgefragt wird, erhöht sich die Größe einer .view-Datei. Ich habe einen Job geschrieben, um dies stündlich zu überwachen, und nach ein paar Tagen sehe ich die Datei nicht rollt oder in anderer Größe abnimmt.
Hat jemand Einblick in dieses Problem? Gibt es ein Dokument, das ich vermisst habe? Ich konnte nichts zu dem Thema finden, aber das könnte daran liegen, dass ich an den falschen Stellen oder meinen Suchbegriffen nachgesehen habe.
Dokumente sind groß und Änderungen an Dokumenten von Bedeutung sind. Das macht alles Sinn. Vielen Dank für Ihre Antwort. Aber räumt CouchDB nicht nach sich auf? Oder bleibt das dem Administrator überlassen? Scheint kaputt oder fehlt mir etwas? –
CouchDB erfordert, dass Sie Komprimierung ausführen, um Speicherplatz zu wiederherzustellen. Wann dies möglich ist, hängt stark von Ihrer Umgebung ab. In der Regel würden Sie dies tun, wenn die Last auf dem Server niedrig ist und sie mit einem Cron-Job auslöst. Wenn Sie über Replikate verfügen, sollten Sie auch verstehen, wie sich dies auf die Replikation auswirken kann. – Kerr
Ich stimme nicht zu, "wenn Ihre Ansichten für einen bestimmten Satz von Dokumenten sehr groß sind, dann haben Sie möglicherweise schlecht gestaltete Ansichten". Das "kann" ist da, aber der Autor sollte betonen, dass eine kleine Ansicht für die Anwendung nicht unbedingt schnell ist. Z.B. eine Operation wie '? include_docs' ist sehr intensiv, was das Einbeziehen vollständiger Dokumente in die Ansicht für die Performance notwendig macht. Dies ist wiederum der Punkt, an dem CouchDB den Speicherplatz für die Leistung abdeckt. – Till