Release van documentgeoriënteerde DBMS Apache CouchDB 3.0

vond plaats uitgave van een gedistribueerde documentgeoriënteerde database Apache CouchDB 3.0behorend tot de klasse van NoSQL-systemen. Projectbroncode worden verspreid gelicentieerd onder Apache 2.0.

Verbeteringengeïmplementeerd in Apache CouchDB 3.0:

  • Geharde beveiliging in de standaardconfiguratie.
    Bij het opstarten moet nu de admin-gebruiker worden gedefinieerd, zonder welke de server zijn werk met een fout zal voltooien (hiermee kunt u problemen oplossen met het starten van servers die per ongeluk de toegang verlaten zonder authenticatie). Het aanroepen van "/_all_dbs" vereist nu beheerdersrechten en alle databases worden standaard gemaakt en zijn alleen toegankelijk voor de admin-gebruiker (toegangsparameters kunnen worden gewijzigd via het object "_security"). Het bewerken van objecten in de database _users is standaard niet toegestaan;

  • Toegevoegd de mogelijkheid om door de gebruiker gedefinieerde gesegmenteerde (gepartitioneerde) databases te maken, die het mogelijk maken om uw eigen regels te definiëren voor het distribueren van documenten in segmenten (shardbereik). Speciale optimalisaties voor gesharde databases zijn toegevoegd aan Mango-weergaven en indexen;
  • Geïmplementeerd automatische deelmodus bij het segmenteren (sharding). In de database is het nu mogelijk om gegevens te herverdelen over segmenten, rekening houdend met de toename van de waarde van de q-factor die wordt gebruikt om het uitsplitsingsniveau te bepalen;
  • Toegevoegd ken-subsysteem voor automatische indexering op de achtergrond en het up-to-date houden van secundaire indexen (JavaScript, Mango, tekstzoekindexen) zonder expliciet hun constructieactiviteiten te starten;
  • Het smoosh-proces dat wordt gebruikt voor het automatisch verpakken van de database is volledig herschreven;
  • Nieuw subsysteem voorgesteld IO-wachtrijgebruikt om de I/O-prioriteit voor bepaalde bewerkingen te wijzigen;
  • Implementatie van een regressietestsysteem;
  • Officiële ondersteuning toegevoegd voor arm64v8 (aarch64) en ppc64le (ppc64el) platforms;
  • Ondersteuning toegevoegd voor koppeling met de SpiderMonkey 1.8.5 JavaScript-engine (ESR-tak van Firefox 60) met verbeterde ondersteuning voor ES5, ES6 en ES2016+;
  • Zoekmachine inbegrepen Dreyfus gebaseerd op Lucene, wat de inzet van een zoekmachine op basis van CouchDB aanzienlijk vereenvoudigt;
  • Backend toegevoegd voor loggen met behulp van systemd-journald;
  • Toegevoegd "[couchdb] single_node" instelling, indien ingesteld, zal CouchDB automatisch systeemdatabases maken als ze ontbreken;
  • Optimalisatie van de prestaties van het couch_server-proces;
  • Aanzienlijk verbeterd installatieprogramma voor het Windows-platform;
  • Weergaven zijn beperkt tot 2^28 (268435456) resultaten. Deze limiet kan afzonderlijk worden geconfigureerd voor gewone en gesegmenteerde weergaven met behulp van de opties query_limit en partition_query_limit in de sectie "[query_server_config]".
  • Een afzonderlijke HTTP-beheerinterface voor lokale knooppunten verwijderd die draait op netwerkpoort 5986, waarvan de functionaliteit nu beschikbaar is via een gemeenschappelijke clusterbeheerinterface;
  • De maximale documentgrootte is teruggebracht tot 8 MB, wat problemen met gegevensreplicatie van oudere servers kan veroorzaken na het upgraden naar CouchDB 3.0. U kunt de instelling "[couchdb] max_document_size" gebruiken om de limiet te verhogen;
  • Veel verouderde functies zijn opgeschoond, zoals _replicator en _external calls, disk_size en data_size velden, delay_commits optie;
  • CouchDB vereist nu dat Erlang/OTP 20.3.8.11+, 21.2.3+ of 22.0.5 wordt uitgevoerd. Theoretisch blijft het werken met de Erlang/OTP 19-tak behouden, maar het wordt gedekt door tests.

Bedenk dat CouchDB gegevens opslaat in een geordend lijstformaat en gedeeltelijke replicatie van gegevens tussen verschillende databases in de "master-master" -modus mogelijk maakt met gelijktijdige detectie en oplossing van conflictsituaties. Elke server houdt zijn eigen lokale gegevensset bij, gesynchroniseerd met andere servers, die offline kan worden gehaald en periodiek wijzigingen kan repliceren. Met name deze functie maakt CouchDB tot een aantrekkelijke oplossing voor het synchroniseren van programma-instellingen tussen verschillende computers. Op CouchDB gebaseerde oplossingen zijn ingezet door bedrijven zoals de BBC, Apple en CERN.

CouchDB-query's en gegevensindexering kunnen worden uitgevoerd volgens het paradigma KaartVerminderen, met behulp van de JavaScript-taal om de logica voor gegevensbemonstering te vormen. De kern van het systeem is geschreven in de Erlang-taal, die is geoptimaliseerd voor het creëren van gedistribueerde systemen die veel parallelle verzoeken dienen. De viewserver is geschreven in C en is gebaseerd op een JavaScript-engine van het Mozilla-project. Toegang tot de database wordt uitgevoerd met behulp van het HTTP-protocol met behulp van de RESTful JSON API, waarmee u toegang hebt tot gegevens, ook van webapplicaties die in de browser worden uitgevoerd.

De eenheid van gegevensopslag is een document met een unieke identificatiecode, versie en een willekeurige set benoemde velden in de sleutel/waarde-indeling. Om een ​​pseudo-gestructureerde dataset te organiseren uit willekeurige documenten (aggregatie en bemonstering), wordt het concept van het vormen van views (view) gebruikt, voor de definitie waarvan de JavaScript-taal wordt gebruikt. JavaScript kan ook functies definiëren om gegevens te valideren wanneer nieuwe documenten binnen een bepaalde weergave worden toegevoegd.

Bron: opennet.ru

Voeg een reactie