“Die Admin-Party ist vorbei”, schreiben die Macher von Apaches NoSQL-Datenbank CouchDB. Die ist nun in Version 3.0 erschienen, verbessert die Security, führt aber auch neue Automatisierungsmöglichkeiten ein.
Beim Start müssen Admins nun einen Server-Admin-Nutzer festlegen, andernfalls quittiert Couch DB den Dienst. Der Zugriff auf den “/_all_dbs”-Endpoint ist jetzt ebenfalls nur noch Admins erlaubt. Und beim Anlegen neuer Datenbanken ist Admin zunächst standardmäßig der einzige Nutzer. Die Änderungen dürften auch eine Reaktion auf vergangene Sicherheitslücken in NoSQL-Datenbanken sein, die Hackern den Zugriff auf die Daten erlaubte. Ahnungslose Admins und schlecht gewählte Defaults brachten die unsicher konfigurierten Datenbanken ins Netz.
Sekundäre Indexierung optimiert
Doch es gibt auch Datenbank-spezifische Neuerungen. Nutzer können nun partitionierte Datenbanken erzeugen, um Dokumente in derselben Partition mit typischerweise demselben Partition Key abzulegen. Das beschleunigt den Zugriff über sekundäre Indizes, da sich zusammengehörige Dokumente in derselben Partition befinden und nicht auf verschiedene Shards (oder Replicas) verteilen.
Apropos sekundäre Indizes: Bei deren automatischer Indexierung hilft ein Subsystem namens Ken. Es sorgt dafür, die Indizes aktuell zu halten, ohne dass der Admin dies per Anfrage gezielt triggern muss. Shards lassen sich nun (automatisiert) splitten, während die Datenbank online ist. Das erlaubt es, eine größere Zahl an Shards zu erzeugen, um sich etwa besser gegen Serverausfälle zu wappnen. Und um Platz zu sparen, kann Smoosh Datenbanken und Views komprimieren. Den Daemon haben die Entwickler überarbeitet und verbessert.
Unter der Haube
Ansonsten unterstützt CouchDB nun die Javascript-Engine Spidermonkey in Version 60 oder 1.8.5. Das funktioniert allerdings nicht auf ARM64-Plattformen, auf denen CouchDB ebenfalls läuft. Die Implementierung der IO-Warteschlange ist erneuert, wobei die Entwickler das neue System als “hochkonfigurierbar und gut dokumentiert” bezeichnen. Nicht zuletzt hat CouchDB 3.0 “Dreyfus” an Bord, das CouchDB-Gegenstück zur Lucene-Suche. Integriert der Admin Clouseau-Java-Nodes in das Netzwerk, kann er textbasiertes Indexieren aktivieren.
Wer nun überlegt, von CouchDB 1.x auf CouchDB 3.x zu wechseln, kann dies aber nicht direkt tun. Um Daten und Indizes zu aktualisieren, führt der Weg zunächst über CouchDB 2.3.1, danach ist ein Upgrade auf CouchDB 3.0 möglich. Weitere Details zu den neuen CouchDB-Features liefert, neben den Release Notes, ein Blogpost.





