Safari Books Online is a digital library providing on-demand subscription access to thousands of learning resources.
Da CouchDB einen Append-Only B-Tree implementiert hat und somit Änderungen an Datensätzen immer nur an den B-Tree (binärer Suchbaum) angehängt werden, ist CouchDB relativ speicherintensiv. Die Vorteile eines solchen Vorgehens liegen auf der Hand: CouchDB verhält sich ähnlich wie eine Logdatei, bei der Änderungen immer nur hinten angehängt werden. Der Server muss also bei Änderungen nicht erst die richtige Stelle in der Datei suchen und dann ändern oder ggf. andere Daten umschichten. Deswegen gibt es auch keinen Shutdown-Befehl für CouchDB. Sie werden somit auch nicht erleben, dass Sie ein Wochenende damit verbringen müssen, irgendwelche ISAM-Checks zu machen oder eine Tabelle zu reparieren. Jedoch hat das auch zur Folge, dass die Datenbanken bisweilen relativ groß werden. Um dem entgegenzuwirken, gibt es die Funktion _compact. Sie schreibt die Datenbankdatei neu und entfernt dabei alte Dokumentversionen und gelöschte Dokumente, weswegen man hier von einer Art »Verdichtung« spricht. Dieser Prozess wird nicht automatisch ausgeführt, sondern muss manuell gestartet werden. Das können Sie über einen POST-Befehl auf die URL der betreffenden Datenbank tun.