CouchDB

 CouchDB ist eine dokumentorientierte Datenbank, die anders als herkömmliche relationale Datenbanksysteme ihre Daten nicht in Tabellen unter einem festen Schema speichert, sondern die Felder und Werte in einem  JSON Datensatz ablegt. Dadurch ist es möglich, unterschiedlich strukturierte Datensätze in ein und derselben Datenbank vorzuhalten. Die Daten werden dabei nicht durch partielle Aktualisierungen abgespeichert, sondern wie in einem Versionskontrollsystem immer als neue Version eines vollständigen Datensatzes behandelt. Abgefragt werden sie über sogenannte views, welche die gewünschten Informationen aus den Datensätzen extrahieren und aggregieren können. Dazu kommt ein von Google entwickelter Algorithmus namens  MapReduce zum Einsatz, der es ermöglicht, Anfragen möglichst effizient über extrem große Datenmengen auszuführen. Anfragen können über eine  REST-API ausgeführt werden, sodass man weitgehend unabhängig von einer bestimmten Programmiersprache mit solch einer Datenbank interagieren kann. Darüber hinaus bietet CouchDB die Möglichkeit, verteilte Instanzen einer Datenbank zu betreiben.

Ein solcher Ansatz ist für die Hochschulbibliographie bzw. die E-Dissertationen einerseits interessant, um eine Versionierung der Metadatensätze zu realisieren, andererseits um unterschiedliche Exportformate direkt als sogenannte attachments mit einem Datensatz zu verknüpfen. Dies stellt sich beispielsweise im Rahmen der Suchmaschine als problematisch heraus, wenn es sich bei den Formaten um XML handelt: Da Solrs REST-API selbst Felder über XML beschickt, müssen solche eingebetteten Datensätze in sogenannten  CDATA-Abschnitten gekapselt werden. Während dies während der Indexierung bezüglich der Performanz nicht sonderlich ins Gewicht fällt, führt es allerdings bei vollständigen Exporten, wie sie z.B. in OAI-PMH vorkommen können, zu signifikanten Performanzeinbußen. Anhand der zisgeo-Daten soll nun überprüft werden, ob sich die Speicherung der Exportformate in CouchDB günstig auf das komplette Systemverhalten auswirkt.

Ressourcen