Izdanje DBMS-a Apache CouchDB 3.0 usmjerenog na dokumente
odvijao izdanje distribuirane baze podataka orijentirane na dokumente Apache CouchDB 3.0, koji pripada klasi NoSQL sustava. Izvori projekta širenje licenciran pod Apache 2.0.
Zadana konfiguracija je poboljšana.
Prilikom pokretanja sada mora biti definiran admin korisnik, bez kojeg će poslužitelj završiti s pogreškom (omogućuje rješavanje problema s pokretanjem poslužitelja koji nenamjerno ostavljaju pristup bez provjere autentičnosti). Pozivi na "/_all_dbs" sada zahtijevaju administratorska prava, a sve baze podataka su prema zadanim postavkama dostupne samo korisniku administratoru (parametri pristupa mogu se mijenjati kroz objekt "_security"). Prema zadanim postavkama, uređivanje objekata u bazi podataka _users je zabranjeno;
Dodano mogućnost kreiranja korisnički definiranih segmentiranih (particioniranih) baza podataka, čime je moguće definirati vlastita pravila za distribuciju dokumenata po segmentima (raspon fragmenata). Dodane su posebne optimizacije za razdijeljene baze podataka u Mango prikaze i indekse;
Provedeno način automatskog dijeljenja tijekom segmentacije (sharding). U bazi podataka sada je moguće redistribuirati podatke među segmentima, uzimajući u obzir povećanje vrijednosti q-faktora koji se koristi za određivanje razine kvara;
Dodano ken podsustav za automatsko pozadinsko indeksiranje i održavanje sekundarnih indeksa (JavaScript, Mango, indeksi pretraživanja teksta) ažurnim bez izričitog pokretanja njihovih konstrukcijskih operacija;
Smoosh proces koji se koristi za automatsko pakiranje baze podataka potpuno je prepisan;
Predložen novi podsustav IO red, koristi se za promjenu I/O prioriteta za određene operacije;
Implementiran sustav regresijskog testiranja;
Dodana službena podrška za arm64v8 (aarch64) i ppc64le (ppc64el) platforme;
Dodana podrška za povezivanje s JavaScript motorom SpiderMonkey 1.8.5 (ESR ogranak Firefoxa 60) s poboljšanom podrškom za ES5, ES6 i ES2016+;
Uključena tražilica Dreyfus temeljeno na Luceneu, što uvelike pojednostavljuje implementaciju tražilice temeljene na CouchDB-u;
Dodana pozadina za bilježenje pomoću systemd-journalda;
Dodana je postavka “[couchdb] single_node”, kada je postavljena, CouchDB će automatski kreirati sistemske baze podataka ako one nedostaju;
Izvedba procesa couch_server je optimizirana;
Instalacijski program za Windows platformu značajno je poboljšan;
Pregledi su ograničeni na 2^28 (268435456) rezultata. Ovo se ograničenje može zasebno konfigurirati za obične i segmentirane poglede pomoću opcija query_limit i partition_query_limit u odjeljku “[query_server_config]”;
Uklonjeno je odvojeno HTTP lokalno sučelje za upravljanje čvorom, pokrenuto na mrežnom priključku 5986, čija je funkcionalnost sada dostupna putem zajedničkog sučelja za upravljanje klasterom;
Maksimalna veličina dokumenta smanjena je na 8 MB, što može uzrokovati probleme s replikacijom podataka sa starijih poslužitelja nakon nadogradnje na CouchDB 3.0. Za povećanje ograničenja možete upotrijebiti postavku “[couchdb] max_document_size”;
Provedeno je veliko čišćenje zastarjelih značajki, kao što su _replicator i _external pozivi, polja disk_size i data_size i opcija delayed_commits;
Pokretanje CouchDB-a sada zahtijeva Erlang/OTP 20.3.8.11+, 21.2.3+ ili 22.0.5. Teoretski, funkcionalnost s granom Erlang/OTP 19 je sačuvana, ali je pokrivena testovima.
Podsjetimo, CouchDB pohranjuje podatke u formatu uređene liste i omogućuje djelomičnu replikaciju podataka između nekoliko baza podataka u master-master modu uz istovremenu detekciju i rješavanje konfliktnih situacija. Svaki poslužitelj pohranjuje vlastiti lokalni skup podataka, sinkroniziran s drugim poslužiteljima, koji se mogu isključiti i povremeno replicirati promjene. Konkretno, ova značajka čini CouchDB atraktivnim rješenjem za sinkronizaciju programskih postavki između različitih računala. Rješenja temeljena na CouchDB-u implementirana su u tvrtkama 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. Jezgra sustava napisana je u Erlangu, koji je optimiziran za stvaranje distribuiranih sustava koji služe višestrukim paralelnim zahtjevima. Poslužitelj pogleda je napisan u C jeziku i temelji se na JavaScript motoru iz Mozilla projekta. Pristup bazi podataka provodi se pomoću HTTP protokola pomoću RESTful JSON API-ja, koji vam omogućuje pristup podacima, uključujući i web aplikacije koje se izvode u pregledniku.
Jedinica za pohranu podataka je dokument koji ima jedinstveni identifikator, verziju i sadrži proizvoljan skup imenovanih polja u formatu ključ/vrijednost. Za organiziranje pseudostrukturiranog skupa podataka iz proizvoljnih dokumenata (agregacija i selekcija) koristi se koncept formiranja pogleda (views), za definiranje kojeg se koristi JavaScript jezik. JavaScript također može definirati funkcije za provjeru podataka prilikom dodavanja novih dokumenata unutar određenog prikaza.