Izlazak dokumentno orijentirane SVE Apache CouchDB 3.0

Održano objavljivanje distribuirane dokumentno orijentirane baze podataka Apache CouchDB 3.0, koja pripada klasi NoSQL sustava. Izvorni kod projekta distribuiraju se pod licencom Apache 2.0.

Poboljšanja, implementiran u Apache CouchDB 3.0:

  • Povećana je zaštita u zadanom konfiguraciji.
    Pri pokretanju sada je obavezno definirati korisnika admin, bez kojeg poslužitelj završava s greškom (rješava probleme s pokretanjem poslužitelja koji zaboravljaju ostaviti pristup bez autentifikacije). Za pristup pozivima „/_all_dbs” sada su potrebna administratorska prava, a sve baze podataka se po defaultu stvaraju dostupnima samo korisniku admin (pristupni parametri mogu se promijeniti putem objekta „_security”). Preuređivanje objekata u bazi podataka _users je po defaultu zabranjeno;
  • Dodana mogućnost stvaranja korisnički definiranih segmentiranih (particioniranih) baza podataka, koje omogućuju definiranje vlastitih pravila raspodjele dokumenata po segmentima (shard range). U prikaze i indekse Mango dodane su posebne optimizacije za segmentirane baze podataka;
  • Implementiran režim automatskog dijeljenja pri segmentiranju (sharding). U bazi podataka sada je moguće redistribuiranje podataka po segmentima uzimajući u obzir povećanu vrijednost q-faktora, koji se koristi za određivanje razine dijeljenja;
  • Dodana podizvođač ken za automatsko pozadinsko indeksiranje i održavanje sekundarnih indeksa (JavaScript, Mango, indeksi za pretraživanje teksta) bez eksplicitnog pokretanja operacija izgradnje;
  • Potpuno je prepisan proces smoosh, koji se koristi za automatsko pakiranje baza podataka;
  • Predložena je nova podjela IO Queue, koja se koristi za promjenu prioriteta ulaza/izlaza za određene operacije;
  • Implementiran je sustav regresivnog testiranja;
  • Dodana je službena podrška za platforme arm64v8 (aarch64) i ppc64le (ppc64el);
  • Dodana je podrška za povezivanje s JavaScript motorom SpiderMonkey 1.8.5 (ESR-grana Firefox 60) s poboljšanom podrškom za ES5, ES6 i ES2016+;
  • Uključen je pretraživački motor Dreyfus na temelju Lucene, koji značajno pojednostavljuje implementaciju pretraživačkog sustava na temelju CouchDB;
  • Dodana je pozadina za vođenje evidencije koristeći systemd-journald;
  • Dodana je konfiguracija „[couchdb] single_node”, pri čemu CouchDB automatski stvara sistemske baze podataka ako su odsutne;
  • Optimizacija performansi procesa couch_server je završena;
  • Instalator za platformu Windows značajno je poboljšan;
  • Veličina prikaza je ograničena na 2^28 (268435456) rezultata. Ova granica može se zasebno prilagoditi za obične i segmentirane prikaze pomoću opcija query_limit i partition_query_limit u sekciji „[query_server_config]“;
  • Uklonjen je zasebni HTTP-učitelj za upravljanje lokalnim čvorom, koji se pokreće na mrežnom portu 5986, a funkcionalnost je sada dostupna kroz zajedničko sučelje za upravljanje klasterom;
  • Maksimalna veličina dokumenta smanjena je na 8 MB, što može uzrokovati probleme s replikacijom podataka sa starih poslužitelja nakon ažuriranja na CouchDB 3.0. Za povećanje limite može se koristiti postavka „[couchdb] max_document_size“;
  • Obavljena je velika čišćenje zastarjelih mogućnosti, kao što su pozivi _replicator i _external, polja disk_size i data_size, opcija delayed_commits;
  • Za pokretanje CouchDB sada je potreban Erlang/OTP 20.3.8.11+, 21.2.3+ ili 22.0.5. Teoretski je očuvana funkcionalnost s granom Erlang/OTP 19, ali je ona podložna testiranju.

Podsjetimo, CouchDB pohranjuje podatke u obliku uređenog popisa i omogućuje djelomičnu replikaciju podataka između više baza podataka u 'master-master' režimu uz simultano otkrivanje i rješavanje sukoba. Svaki poslužitelj pohranjuje svoj lokalni skup podataka, sinkroniziran s drugim poslužiteljima, koji se mogu prebaciti u offline mode i povremeno replicirati promjene. Ova mogućnost čini CouchDB privlačnim rješenjem za organizaciju sinkronizacije postavki programa između različitih računala. Rješenja temeljena na CouchDB implementirana su u kompanijama kao što su BBC, Apple i CERN.

Upiti prema CouchDB i indeksiranje podataka mogu se izvršavati prema paradigmi MapReduce, koristeći jezik JavaScript za oblikovanje logike izbora podataka. Jezgra sustava napisana je na jeziku Erlang, optimiziranom za izradu servisa koji obrađuju mnoštvo paralelnih upita distribuiranih sustava. View-server je napisan na jeziku C i temelji se na JavaScript motoru iz projekta Mozilla. Pristup bazi podataka ostvaruje se putem HTTP protokola koristeći RESTful JSON API, što omogućava pristup podacima, uključujući putem web-aplikacija izvedenih u preglednicima.

Kao jedinica za pohranu podataka koristi se dokument koji ima jedinstveni identifikator, verziju i sadrži proizvoljan skup imenovanih polja u formatu ključ/vrijednost. Za organizaciju pseudo-strukturiranog skupa podataka iz proizvoljnih dokumenata (agregaciju i formiranje uzoraka) koristi se koncept formiranja prikaza (view), za čije se određivanje koristi jezik JavaScript. U JavaScriptu također se mogu definirati funkcije za provjeru ispravnosti podataka prilikom dodavanja novih dokumenata unutar određenog prikaza.

Izvor: opennet.ru

Kupite pouzdan hosting za web stranice s DDoS zaštitom, VPS VDS servere 🔥 Kupite pouzdan hosting za web stranice s DDoS zaštitom, VPS VDS servere | ProHoster