Veröffentlichung des dokumentorientierten DBMS Apache CouchDB 3.0

fand statt Veröffentlichung einer verteilten dokumentorientierten Datenbank Apache CouchDB 3.0, gehört zur Klasse der NoSQL-Systeme. Projektquellen Ausbreitung lizenziert unter Apache 2.0.

Verbesserungenimplementiert in Apache CouchDB 3.0:

  • Die Standardkonfiguration wurde erweitert.
    Beim Start muss nun der Admin-Benutzer definiert werden, ohne den der Server mit einem Fehler beendet wird (ermöglicht die Lösung von Problemen beim Starten von Servern, die versehentlich den Zugriff ohne Authentifizierung verlassen). Aufrufe von „/_all_dbs“ erfordern jetzt Administratorrechte, und alle Datenbanken werden standardmäßig erstellt und sind nur für den Admin-Benutzer zugänglich (Zugriffsparameter können über das „_security“-Objekt geändert werden). Standardmäßig ist das Bearbeiten von Objekten in der _users-Datenbank verboten;

  • Hinzugefügt von die Möglichkeit, benutzerdefinierte segmentierte (partitionierte) Datenbanken zu erstellen, wodurch es möglich wird, eigene Regeln für die Verteilung von Dokumenten über Segmente (Shard-Bereich) zu definieren. Spezielle Optimierungen für Shard-Datenbanken zu Mango-Ansichten und -Indizes hinzugefügt;
  • Umgesetzt automatischer Teilungsmodus während der Segmentierung (Sharding). In der Datenbank ist es nun möglich, Daten unter Berücksichtigung einer Erhöhung des Wertes des Q-Faktors, der zur Bestimmung des Aufschlüsselungsgrades verwendet wird, auf die Segmente neu zu verteilen;
  • Hinzugefügt von Ken-Subsystem für die automatische Hintergrundindizierung und die Aktualisierung sekundärer Indizes (JavaScript, Mango, Textsuchindizes), ohne deren Erstellungsvorgänge explizit zu starten;
  • Der für die automatische Datenbankpaketierung verwendete Smoosh-Prozess wurde komplett neu geschrieben;
  • Neues Subsystem vorgeschlagen IO-Warteschlange, wird verwendet, um die E/A-Priorität für bestimmte Vorgänge zu ändern;
  • Implementierung eines Regressionstestsystems;
  • Offizielle Unterstützung für die Plattformen arm64v8 (aarch64) und ppc64le (ppc64el) hinzugefügt;
  • Unterstützung für die Verknüpfung mit der JavaScript-Engine SpiderMonkey 1.8.5 (ESR-Zweig von Firefox 60) mit verbesserter Unterstützung für ES5, ES6 und ES2016+ hinzugefügt;
  • Suchmaschine enthalten Dreyfus basierend auf Lucene, was die Bereitstellung einer auf CouchDB basierenden Suchmaschine erheblich vereinfacht;
  • Backend für die Protokollierung mit systemd-journald hinzugefügt;
  • Die Einstellung „[couchdb] single_node“ wurde hinzugefügt. Wenn sie festgelegt ist, erstellt CouchDB automatisch Systemdatenbanken, wenn diese fehlen.
  • Die Leistung des Couch_server-Prozesses wurde optimiert;
  • Das Installationsprogramm für die Windows-Plattform wurde erheblich verbessert;
  • Die Anzahl der Aufrufe ist auf 2^28 (268435456) Ergebnisse beschränkt. Dieses Limit kann für reguläre und segmentierte Ansichten separat konfiguriert werden, indem die Optionen query_limit und partition_query_limit im Abschnitt „[query_server_config]“ verwendet werden.
  • Eine separate lokale HTTP-Knotenverwaltungsschnittstelle, die auf Netzwerkport 5986 gestartet wurde, wurde entfernt, deren Funktionalität nun über die gemeinsame Clusterverwaltungsschnittstelle verfügbar ist;
  • Die maximale Dokumentgröße wurde auf 8 MB reduziert, was nach dem Upgrade auf CouchDB 3.0 zu Problemen bei der Datenreplikation von älteren Servern führen kann. Um das Limit zu erhöhen, können Sie die Einstellung „[couchdb] max_document_size“ verwenden;
  • Es wurde eine umfassende Bereinigung veralteter Funktionen durchgeführt, z. B. der Aufrufe _replicator und _external, der Felder disk_size und data_size sowie der Option „delayed_commits“.
  • Zum Ausführen von CouchDB ist jetzt Erlang/OTP 20.3.8.11+, 21.2.3+ oder 22.0.5 erforderlich. Theoretisch bleibt die Funktionalität mit dem Erlang/OTP 19-Zweig erhalten, wird aber durch Tests abgedeckt.

Erinnern wir uns daran, dass CouchDB Daten in einem geordneten Listenformat speichert und eine teilweise Replikation von Daten zwischen mehreren Datenbanken im Master-Master-Modus bei gleichzeitiger Erkennung und Lösung von Konfliktsituationen ermöglicht. Jeder Server speichert seinen eigenen lokalen Datensatz, synchronisiert mit anderen Servern, der offline geschaltet werden kann und regelmäßig Änderungen repliziert. Insbesondere diese Funktion macht CouchDB zu einer attraktiven Lösung für die Synchronisierung von Programmeinstellungen zwischen verschiedenen Computern. CouchDB-basierte Lösungen wurden in Unternehmen wie der BBC, Apple und CERN implementiert.

CouchDB-Abfragen und Datenindizierung können gemäß dem Paradigma durchgeführt werden MapReduce, Verwendung von JavaScript zum Generieren einer Datenstichprobenlogik. Der Systemkern ist in Erlang geschrieben, das für die Erstellung verteilter Systeme optimiert ist, die mehrere parallele Anforderungen bedienen. Der Viewserver ist in C geschrieben und basiert auf der JavaScript-Engine aus dem Mozilla-Projekt. Der Zugriff auf die Datenbank erfolgt über das HTTP-Protokoll mithilfe einer RESTful-JSON-API, die den Zugriff auf Daten auch von im Browser ausgeführten Webanwendungen ermöglicht.

Die Datenspeichereinheit ist ein Dokument, das über eine eindeutige Kennung und Version verfügt und einen beliebigen Satz benannter Felder im Schlüssel/Wert-Format enthält. Um einen pseudostrukturierten Datensatz aus beliebigen Dokumenten zu organisieren (Aggregation und Auswahl), wird das Konzept der Bildung von Ansichten (Views) verwendet, um zu definieren, welche JavaScript-Sprache verwendet wird. JavaScript kann auch Funktionen zum Validieren von Daten definieren, wenn neue Dokumente innerhalb einer bestimmten Ansicht hinzugefügt werden.

Source: opennet.ru

Kommentar hinzufügen