Izdanje dokumentno orijentisane SDB Apache CouchDB 3.0

Održan izdanje distribuirane dokumentno orijentisane baze podataka Apache CouchDB 3.0, koja pripada klasi NoSQL sistema. Izvorični kod projekta se razširjajo pod licenco Apache 2.0.

Izboljšave, realizovani u Apache CouchDB 3.0:

  • Ojačana je zaštita u podrazumevanoj konfiguraciji.
    Pri pokretanju obavezno mora biti definisan korisnik admin, bez kojeg server neće raditi i završiće sa greškom (rešava probleme sa pokretanjem servera koji slučajno ostavljaju pristup bez autentifikacije). Za pristup pozivima „/_all_dbs“ sada su potrebna administratorska prava, a sve baze podataka po defaultu se kreiraju kao dostupne samo za korisnika admin (parametri pristupa mogu biti izmenjeni putem objekta „_security“). Podrazumevano je zabranjena izmena objekata u bazi podataka _users;
  • Dodana mogućnost kreiranja korisnikom definisanih segmentiranih baza podataka, što omogućava određivanje vlastitih pravila raspodele dokumenata po segmentima (shard range). U prikaze i indekse Mango dodate su posebne optimizacije za segmentirane baze podataka;
  • Izvedeno režim automatskog deljenja prilikom segmentiranja. U bazi podataka sada je moguće redistribuiranje podataka po segmentima u skladu sa povećanjem vrednosti q-faktora, koji se koristi za određivanje nivoa deljenja;
  • Dodana podstranica ken za automatsko pozadinsko indeksiranje i održavanje ažurnih sekundarnih indeksa (JavaScript, Mango, indeksi za pretragu teksta) bez eksplicitnog pokretanja operacija njihovog izgradnje;
  • Potpuno je prepisan proces smoosh, koji se koristi za automatsko pakovanje baza podataka;
  • Predložena je nova podstranica IO Queue, koja se koristi za promenu prioriteta ulaza/izlaza za određene operacije;
  • Implementiran je sistem regresivnog testiranja;
  • Dodata je zvanična podrška za platforme arm64v8 (aarch64) i ppc64le (ppc64el);
  • Dodata je podrška za povezivanje sa JavaScript motorom SpiderMonkey 1.8.5 (ESR-grana Firefox 60) sa poboljšanom podrškom za ES5, ES6 i ES2016+;
  • Uključen je pretraživač Dreyfus na bazi Lucene, koji značajno pojednostavljuje implementaciju pretraživačkog sistema zasnovanog na CouchDB;
  • Dodata je backend opcija za vođenje logova koristeći systemd-journald;
  • Dodata je konfiguracija „[couchdb] single_node”, pri čemu CouchDB automatski stvara sistemske baze podataka ako one nedostaju;
  • Optimizacija delovanja procesa couch_server je bila izvedena;
  • Namestitveni program za platformo Windows je bil znatno izboljšan;
  • Velikost prikazov je omejena na 2^28 (268435456) rezultatov. To omejitev je mogoče posebej nastaviti za običajne in deljene prikaze z uporabo možnosti query_limit in partition_query_limit v razdelku «[query_server_config]»;
  • Ločen HTTP-vmesnik za upravljanje lokalnega vozlišča, ki je bil zagonjen na omrežnem portu 5986, je bil odstranjen, njegova funkcionalnost pa je zdaj dostopna preko skupnega vmesnika za upravljanje gruče;
  • Največja velikost dokumenta je bila zmanjšana na 8 MB, kar lahko povzroči težave pri replikaciji podatkov s starejših strežnikov po nadgradnji na CouchDB 3.0. Za povečanje omejitve lahko uporabite nastavitev «[couchdb] max_document_size»;
  • Izvedena je bila obsežna odstranitev zastarelih funkcionalnosti, kot so klici _replicator in _external, polja disk_size in data_size, možnost delayed_commits;
  • Za zagon CouchDB je zdaj potreben Erlang/OTP 20.3.8.11+, 21.2.3+ ali 22.0.5. Teoretično je ohranjena združljivost z različico Erlang/OTP 19, vendar je ta preizkušena.

Spomnimo, da CouchDB shranjuje podatke v obliki urejenega seznama in omogoča delno replikacijo podatkov med več DB v načinu 'master-master' z istočasnim zaznavanjem in reševanjem konfliktov. Vsak strežnik hrani svoj lokalni niz podatkov, sinhroniziran z drugimi strežniki, ki jih je mogoče prevesti v offline način in občasno replikirati spremembe. Ta možnost CouchDB še posebej privlači za organizacijo sinhronizacije nastavitev programov med različnimi računalniki. Rešitve, ki temeljijo na CouchDB, so implementirane v podjetjih, kot so BBC, Apple in CERN.

Poizvedbe na CouchDB in indeksacija podatkov se lahko izvajajo v skladu s paradigmo MapReduce, pri čemer se za oblikovanje logike izbire podatkov uporablja jezik JavaScript. Jedro sistema je napisano v jeziku Erlang, optimiziranem za ustvarjanje strežniških sistemov za več paralelnih poizvedb. View-strežnik je napisan v jeziku C in temelji na JavaScript-motornem projektu Mozilla. Dostop do DB poteka preko protokola HTTP z uporabo RESTful JSON API, kar omogoča dostop do podatkov tudi iz aplikacij, ki se izvajajo v brskalniku.

Kot podatkovna enota deluje dokument z edinstvenim identifikatorjem, različico in vsebuje poljubno število poimenovanih polj v formatu ključ/vrednost. Za organizacijo pseudo-strukturiranega sklada podatkov iz poljubnih dokumentov (agregacijo in oblikovanje vzorcev) se uporablja koncept oblikovanja predstavitev (view), pri čemer se uporablja jezik JavaScript. V JavaScriptu je prav tako mogoče definirati funkcije za preverjanje pravilnosti podatkov ob dodajanju novih dokumentov v okviru določene predstavitve.

Izvor: opennet.ru

Kupite zanesljivo gostovanje za spletne strani z zaščito pred DDoS, VPS VDS strežniki 🔥 Kupite zanesljivo gostovanje za spletne strani z zaščito pred DDoS, VPS VDS strežniki | ProHoster