Utgivelse av den dokumentorienterte DBMS Apache CouchDB 3.0

fant sted utgivelse av en distribuert dokumentorientert database Apache CouchDB 3.0, som tilhører klassen av NoSQL-systemer. Prosjektkilder spre lisensiert under Apache 2.0.

Forbedringerimplementert i Apache CouchDB 3.0:

  • Standardkonfigurasjonen er forbedret.
    Ved oppstart må admin-brukeren nå defineres, uten hvilken serveren vil avsluttes med en feil ( lar deg løse problemer med å starte servere som utilsiktet forlater tilgang uten autentisering). Anrop til "/_all_dbs" krever nå administrative rettigheter, og alle databaser opprettes som standard kun tilgjengelig for admin-brukeren (tilgangsparametere kan endres gjennom "_security"-objektet). Som standard er redigering av objekter i _users-databasen forbudt;

  • La til muligheten til å lage brukerdefinerte segmenterte (partisjonerte) databaser, noe som gjør det mulig å definere egne regler for distribusjon av dokumenter på tvers av segmenter (shard range). Lagt til spesielle optimaliseringer for oppdelte databaser til Mango-visninger og indekser;
  • Implementert automatisk delingsmodus under segmentering (sharding). I databasen er det nå mulig å redistribuere data mellom segmenter, tar hensyn til en økning i verdien av q-faktoren som brukes til å bestemme nedbrytningsnivået;
  • La til ken-undersystem for automatisk bakgrunnsindeksering og å holde sekundære indekser (JavaScript, Mango, tekstsøkeindekser) oppdatert uten eksplisitt å starte deres konstruksjonsoperasjoner;
  • Smoosh-prosessen som brukes til automatisk databasepakking har blitt fullstendig omskrevet;
  • Nytt delsystem foreslått IO-kø, brukes til å endre I/O-prioriteten for visse operasjoner;
  • Implementerte et regresjonstestingssystem;
  • Lagt til offisiell støtte for arm64v8 (aarch64) og ppc64le (ppc64el) plattformer;
  • Lagt til støtte for kobling med JavaScript-motoren SpiderMonkey 1.8.5 (ESR-gren av Firefox 60) med forbedret støtte for ES5, ES6 og ES2016+;
  • Søkemotor inkludert Dreyfus basert på Lucene, som i stor grad forenkler utplasseringen av en søkemotor basert på CouchDB;
  • Lagt til backend for logging ved hjelp av systemd-journald;
  • Lagt til "[couchdb] single_node"-innstillingen, når den er satt, vil CouchDB automatisk opprette systemdatabaser hvis de mangler;
  • Ytelsen til couch_server-prosessen har blitt optimalisert;
  • Installasjonsprogrammet for Windows-plattformen har blitt betydelig forbedret;
  • Visninger er begrenset til 2^28 (268435456) resultater. Denne grensen kan konfigureres separat for vanlige og segmenterte visninger ved å bruke alternativene query_limit og partition_query_limit i delen "[query_server_config]";
  • Et eget HTTP-grensesnitt for lokalt nodeadministrasjon, lansert på nettverksport 5986, er fjernet, hvis funksjonalitet nå er tilgjengelig gjennom det vanlige grensesnittet for klyngeadministrasjon;
  • Maksimal dokumentstørrelse er redusert til 8 MB, noe som kan forårsake problemer med datareplikering fra eldre servere etter oppgradering til CouchDB 3.0. For å øke grensen kan du bruke "[couchdb] max_document_size"-innstillingen;
  • En større opprydding av foreldede funksjoner har blitt utført, slik som _replicator og _external calls, disk_size og data_size-feltene, og delayed_commits-alternativet;
  • Å kjøre CouchDB krever nå Erlang/OTP 20.3.8.11+, 21.2.3+ eller 22.0.5. Teoretisk sett er funksjonaliteten med Erlang/OTP 19-grenen bevart, men den dekkes av tester.

La oss huske at CouchDB lagrer data i et ordnet listeformat og tillater delvis replikering av data mellom flere databaser i en master-master-modus med samtidig deteksjon og løsning av konfliktsituasjoner. Hver server lagrer sitt eget lokale sett med data, synkronisert med andre servere, som kan tas offline og med jevne mellomrom replikere endringer. Spesielt gjør denne funksjonen CouchDB til en attraktiv løsning for synkronisering av programinnstillinger mellom forskjellige datamaskiner. CouchDB-baserte løsninger er implementert i selskaper som BBC, Apple og CERN.

CouchDB-spørringer og dataindeksering kan utføres i henhold til paradigmet MapReduce, bruker JavaScript for å generere datasamplingslogikk. Systemkjernen er skrevet i Erlang, som er optimalisert for å lage distribuerte systemer som betjener flere parallelle forespørsler. Visningsserveren er skrevet i C og er basert på JavaScript-motoren fra Mozilla-prosjektet. Tilgang til databasen utføres ved hjelp av HTTP-protokollen ved hjelp av en RESTful JSON API, som lar deg få tilgang til data, inkludert fra nettapplikasjoner som kjører i nettleseren.

Datalagringsenheten er et dokument som har en unik identifikator, versjon og inneholder et vilkårlig sett med navngitte felt i nøkkel/verdi-formatet. For å organisere et pseudostrukturert sett med data fra vilkårlige dokumenter (aggregering og utvalg), brukes konseptet med å danne visninger (visninger), for å definere hvilket JavaScript-språk som brukes. JavaScript kan også definere funksjoner for å validere data når du legger til nye dokumenter i en bestemt visning.

Kilde: opennet.ru

Legg til en kommentar