Lansarea DBMS-ului orientat pe documente Apache CouchDB 3.0

a avut loc lansarea unei baze de date distribuite orientate spre documente Apache CouchDB 3.0, aparținând clasei de sisteme NoSQL. Sursele proiectului răspândire licențiat sub Apache 2.0.

Îmbunătățiriimplementat în Apache CouchDB 3.0:

  • Configurația implicită a fost îmbunătățită.
    La pornire, acum trebuie definit utilizatorul admin, fără de care serverul se va termina cu o eroare (vă permite să rezolvați problemele cu lansarea serverelor care lasă din neatenție accesul fără autentificare). Apelurile la „/_all_dbs” necesită acum drepturi de administrator, iar toate bazele de date sunt create în mod implicit accesibile doar utilizatorului admin (parametrii de acces pot fi modificați prin obiectul „_security”). În mod implicit, editarea obiectelor din baza de date _users este interzisă;

  • Adăugat capacitatea de a crea baze de date segmentate (partiționate) definite de utilizator, făcând posibilă definirea propriilor reguli pentru distribuirea documentelor pe segmente (gamă de fragmente). S-au adăugat optimizări speciale pentru bazele de date fragmentate la vizualizările și indecșii Mango;
  • Implementat modul de divizare automată în timpul segmentării (sharding). În baza de date, acum este posibilă redistribuirea datelor între segmente, ținând cont de o creștere a valorii factorului q utilizat pentru a determina nivelul de defalcare;
  • Adăugat subsistem ken pentru indexarea automată în fundal și menținerea la zi a indicilor secundari (JavaScript, Mango, indici de căutare text) fără a lansa în mod explicit operațiunile de construcție a acestora;
  • Procesul smoosh utilizat pentru ambalarea automată a bazelor de date a fost complet rescris;
  • Noul subsistem propus Coada IO, folosit pentru a modifica prioritatea I/O pentru anumite operațiuni;
  • Implementarea unui sistem de testare a regresiei;
  • S-a adăugat suport oficial pentru platformele arm64v8 (aarch64) și ppc64le (ppc64el);
  • S-a adăugat suport pentru conectarea cu motorul JavaScript SpiderMonkey 1.8.5 (ramura ESR a Firefox 60) cu suport îmbunătățit pentru ES5, ES6 și ES2016+;
  • Motor de căutare inclus Dreyfus bazat pe Lucene, care simplifică foarte mult implementarea unui motor de căutare bazat pe CouchDB;
  • S-a adăugat backend pentru înregistrare folosind systemd-journald;
  • S-a adăugat setarea „[couchdb] single_node”, când este setată, CouchDB va crea automat baze de date de sistem dacă acestea lipsesc;
  • Performanța procesului couch_server a fost optimizată;
  • Programul de instalare pentru platforma Windows a fost îmbunătățit semnificativ;
  • Vizualizările sunt limitate la 2^28 (268435456) rezultate. Această limită poate fi configurată separat pentru vizualizări obișnuite și segmentate folosind opțiunile query_limit și partition_query_limit din secțiunea „[query_server_config]”;
  • O interfață de gestionare a nodurilor locale HTTP separată, lansată pe portul de rețea 5986, a fost eliminată, a cărei funcționalitate este acum disponibilă prin interfața comună de gestionare a clusterului;
  • Dimensiunea maximă a documentului a fost redusă la 8 MB, ceea ce poate cauza probleme cu replicarea datelor de pe servere mai vechi după actualizarea la CouchDB 3.0. Pentru a crește limita, puteți utiliza setarea „[couchdb] max_document_size”;
  • A fost efectuată o curățare majoră a caracteristicilor învechite, cum ar fi apelurile _replicator și _external, câmpurile disk_size și data_size și opțiunea delayed_commits;
  • Rularea CouchDB necesită acum Erlang/OTP 20.3.8.11+, 21.2.3+ sau 22.0.5. Teoretic, funcționalitatea cu ramura Erlang/OTP 19 este păstrată, dar este acoperită de teste.

Să ne amintim că CouchDB stochează datele într-un format de listă ordonată și permite replicarea parțială a datelor între mai multe baze de date într-un mod master-master cu detectarea și rezolvarea simultană a situațiilor de conflict. Fiecare server stochează propriul set local de date, sincronizate cu alte servere, care pot fi luate offline și pot reproduce periodic modificările. În special, această caracteristică face CouchDB o soluție atractivă pentru sincronizarea setărilor programului între diferite computere. Soluțiile bazate pe CouchDB au fost implementate în companii precum BBC, Apple și CERN.

Interogările CouchDB și indexarea datelor pot fi efectuate conform paradigmei MapReduce, folosind JavaScript pentru a genera logica de eșantionare a datelor. Nucleul sistemului este scris în Erlang, care este optimizat pentru a crea sisteme distribuite care servesc mai multe solicitări paralele. Serverul de vizualizare este scris în C și se bazează pe motorul JavaScript din proiectul Mozilla. Accesul la baza de date se realizează folosind protocolul HTTP folosind un API RESTful JSON, care vă permite să accesați date, inclusiv din aplicațiile web care rulează în browser.

Unitatea de stocare a datelor este un document care are un identificator unic, versiune și conține un set arbitrar de câmpuri denumite în format cheie/valoare. Pentru a organiza un set pseudo-structurat de date din documente arbitrare (agregare și selecție), se folosește conceptul de formare a vederilor (vederi), pentru a defini ce limbaj JavaScript este folosit. JavaScript poate defini, de asemenea, funcții pentru validarea datelor atunci când adăugați documente noi într-o anumită vizualizare.

Sursa: opennet.ru

Adauga un comentariu