Izdanje dokumentno orijentisanog DBMS Apache CouchDB 3.0

održan izdavanje distribuirane baze podataka orijentisane na dokumente Apache CouchDB 3.0, koji pripada klasi NoSQL sistema. Izvori projekta širenje licenciran pod Apache 2.0.

Poboljšanjaimplementirano u Apache CouchDB 3.0:

  • Zadana konfiguracija je poboljšana.
    Prilikom pokretanja sada mora biti definiran korisnik admin, bez kojeg će server prekinuti sa greškom (omogućava rješavanje problema s pokretanjem servera koji nehotice ostavljaju pristup bez autentifikacije). Pozivi na "/_all_dbs" sada zahtijevaju administratorska prava, a sve baze podataka se kreiraju prema zadanim postavkama dostupne samo administratoru (parametri pristupa se mogu mijenjati preko objekta "_security"). Po defaultu, uređivanje objekata u bazi podataka _users je zabranjeno;

  • Dodano mogućnost kreiranja korisnički definiranih segmentiranih (particioniranih) baza podataka, omogućavajući definiranje vlastitih pravila za distribuciju dokumenata po segmentima (raspon dijelova). Dodane posebne optimizacije za podijeljene baze podataka u Mango poglede i indekse;
  • Implementirano automatski način podjele tokom segmentacije (sharding). U bazi podataka sada je moguće preraspodijeliti podatke između segmenata, uzimajući u obzir povećanje vrijednosti q-faktora koji se koristi za određivanje nivoa raščlanjenja;
  • Dodano ken podsistem za automatsko pozadinsko indeksiranje i održavanje sekundarnih indeksa (JavaScript, Mango, indeksi pretraživanja teksta) ažurnim bez eksplicitnog pokretanja njihovih konstrukcijskih operacija;
  • Smoosh proces koji se koristi za automatsko pakovanje baze podataka je potpuno prepisan;
  • Predložen novi podsistem IO Queue, koristi se za promjenu I/O prioriteta za određene operacije;
  • Implementiran sistem regresijskog testiranja;
  • Dodata zvanična podrška za platforme arm64v8 (aarch64) i ppc64le (ppc64el);
  • Dodata podrška za povezivanje sa JavaScript motorom SpiderMonkey 1.8.5 (ESR grana Firefoxa 60) sa poboljšanom podrškom za ES5, ES6 i ES2016+;
  • Tražilica uključena Dreyfus baziran na Luceneu, što uvelike pojednostavljuje primenu pretraživača zasnovanog na CouchDB;
  • Dodan backend za logovanje pomoću systemd-journald;
  • Dodata je postavka “[couchdb] single_node”, kada je postavljena, CouchDB će automatski kreirati sistemske baze podataka ako nedostaju;
  • Izvedba procesa couch_server je optimizirana;
  • Instalater za Windows platformu je značajno poboljšan;
  • Pregledi su ograničeni na 2^28 (268435456) rezultata. Ovo ograničenje se može zasebno konfigurirati za regularne i segmentirane poglede koristeći opcije query_limit i partition_query_limit u odjeljku “[query_server_config]”;
  • Uklonjeno je zasebno HTTP interfejs za upravljanje lokalnim čvorovima, pokrenut na mrežnom portu 5986, čija je funkcionalnost sada dostupna preko zajedničkog interfejsa za upravljanje klasterom;
  • Maksimalna veličina dokumenta je smanjena na 8 MB, što može uzrokovati probleme s replikacijom podataka sa starijih servera nakon nadogradnje na CouchDB 3.0. Da povećate ograničenje, možete koristiti postavku “[couchdb] max_document_size”;
  • Izvršeno je veliko čišćenje zastarjelih karakteristika, kao što su _replicator i _external pozivi, polja disk_size i data_size i opcija delayed_commits;
  • Za pokretanje CouchDB-a sada je potreban Erlang/OTP 20.3.8.11+, 21.2.3+ ili 22.0.5. Teoretski, funkcionalnost sa Erlang/OTP 19 granom je očuvana, ali je pokrivena testovima.

Podsjetimo da CouchDB pohranjuje podatke u formatu uređene liste i omogućava djelomičnu replikaciju podataka između više baza podataka u master-master modu uz istovremeno otkrivanje i rješavanje konfliktnih situacija. Svaki server pohranjuje svoj vlastiti lokalni skup podataka, sinkroniziran s drugim serverima, koji se mogu staviti van mreže i periodično replicirati promjene. Konkretno, ova karakteristika čini CouchDB atraktivnim rješenjem za sinhronizaciju programskih postavki između različitih računala. Rešenja zasnovana na CouchDB implementirana su u kompanijama kao što su BBC, Apple i CERN.

CouchDB upiti i indeksiranje podataka mogu se izvesti prema paradigmi MapReduce, koristeći JavaScript za generiranje logike uzorkovanja podataka. Jezgro sistema je napisano na Erlangu, koji je optimizovan za kreiranje distribuiranih sistema koji opslužuju više paralelnih zahteva. View server je napisan u C i baziran je na JavaScript motoru iz Mozilla projekta. Pristup bazi podataka se obavlja pomoću HTTP protokola pomoću RESTful JSON API-ja, koji vam omogućava pristup podacima, uključujući i iz web aplikacija koje se pokreću u pretraživaču.

Jedinica za pohranu podataka je dokument koji ima jedinstveni identifikator, verziju i sadrži proizvoljan skup imenovanih polja u formatu ključ/vrijednost. Za organizovanje pseudostrukturiranog skupa podataka iz proizvoljnih dokumenata (agregacija i selekcija), koristi se koncept formiranja pogleda (pregledi) za definisanje koji se koristi JavaScript jezik. JavaScript također može definirati funkcije za provjeru valjanosti podataka prilikom dodavanja novih dokumenata unutar određenog pogleda.

izvor: opennet.ru

Dodajte komentar