CouchDB 1.3 freigegeben
Die neue Version der NoSQL-Datenbank bringt unter anderem Verbesserungen an der HTTP-Schnittstelle, dem Replikator, der Benutzeroberfläche Futon und bei URL-Rewrites.
CouchDB 1.3 bietet erstmals experimentelle Unterstützung für Cross-Origin Resource Sharing (kurz CORS). Dank dieses W3C-Standards kann ein Server die Same Origin Policy aufweichen, die Clients dürfen dann per „XMLHttpRequest“ auch Anfragen an andere Domains stellen. Darüber hinaus haben die Entwickler das ebenfalls vom W3C betreute Server-Sent Events-Protokoll eingebaut. Damit können sich Clients über Änderungen an der Datenbank via Push-Nachrichten in Form von DOM-Events informieren lassen.
Die Rekursionstiefe des URL-Rewriters liegt jetzt bei 100 Aufrufen, eine Änderung des Wertes ist aber möglich. Des Weiteren encodiert der URL-Rewriter den Datenbanknamen, so dass enthaltene Sonderzeichen wie der Schrägstrich "/" nicht mehr zu einem Fehler führen. Rekursive Aufrufe des Rewriters überschreiben zudem nicht mehr den „X-CouchDB-Request-Path“.
Der Replikator nutzt jetzt in den Checkpoint-IDs eine neue serverweite UUID. Damit sollen sich abgebrochene Replikationen schneller und leichter wieder aufnehmen lassen. Für die Erzeugung von UUIDs steht neuerdings der „utc_id“-Algorithmus zur Verfügung, der als Wert die Zeit seit dem 1. Januar 1970 in Mikrosekunden nebst einem frei wählbaren Suffix zurückliefert.
Passwörter dreht CouchDB 1.3 mit der Hashfunktion PBKDF2 durch die Mangel. Bei der Benutzung der "/_config/admins"-API läuft das Passwort-Hashing jetzt synchron ab. Das soll insbesondere unregelmäßig auftauchende Fehler in der JavaScript-Test-Suite beheben. Die Test-Suite selbst ist nur noch über die Kommandozeile zu erreichen, den Link in der Benutzeroberfläche Futon haben die Entwickler entfernt. Fehlen einem Benutzer für bestimmte Aktionen die Rechte, deaktiviert Futon die zugehörigen Schaltflächen. Futon zeigt jetzt auch, wie lange die Bearbeitung einer Anfrage gedauert hat.
CouchDB ist eine dokumentenorientierte Datenbank, die komplette JSON-Dokumente speichert. Abfragen lassen sich via HTTP beziehungsweise über den Browser stellen. Sämtliche Änderungen listet das ausführliche Changelog auf.





