Uz dokumentiem orientētas DBMS Apache CouchDB 3.0 izlaišana

notika izplatītas uz dokumentiem orientētas datu bāzes izlaišana Apache CouchDB 3.0, kas pieder NoSQL sistēmu klasei. Projekta avoti izplatīties licencēts saskaņā ar Apache 2.0.

Uzlabojumiieviests Apache CouchDB 3.0:

  • Noklusējuma konfigurācija ir uzlabota.
    Startējot, tagad ir jādefinē admin lietotājs, bez kura serveris tiks pārtraukts ar kļūdu (ļauj atrisināt problēmas ar serveru palaišanu, kas netīšām atstāj piekļuvi bez autentifikācijas). Izsaukumiem uz "/_all_dbs" tagad ir nepieciešamas administratora tiesības, un visas datu bāzes pēc noklusējuma tiek izveidotas, un tām var piekļūt tikai administrators (piekļuves parametrus var mainīt, izmantojot objektu "_security"). Pēc noklusējuma objektu rediģēšana _users datubāzē ir aizliegta;

  • Pievienots iespēja izveidot lietotāja definētas segmentētas (sadalītas) datu bāzes, ļaujot definēt savus noteikumus dokumentu sadalei pa segmentiem (shard range). Mango skatiem un indeksiem pievienotas īpašas optimizācijas šķelto datu bāzēm;
  • Īstenots automātisks dalīšanas režīms segmentācijas laikā (sadalīšana). Datu bāzē tagad ir iespējams pārdalīt datus starp segmentiem, ņemot vērā sadalījuma līmeņa noteikšanai izmantotā q koeficienta vērtības pieaugumu;
  • Pievienots ken apakšsistēma automātiskai fona indeksēšanai un sekundāro indeksu (JavaScript, Mango, teksta meklēšanas indeksu) atjaunināšanai, nepārprotami neuzsākot to izveides darbības;
  • Smoosh process, kas tiek izmantots automātiskai datubāzes iesaiņošanai, ir pilnībā pārrakstīts;
  • Ierosināta jauna apakšsistēma IO rinda, ko izmanto, lai mainītu I/O prioritāti noteiktām darbībām;
  • Ieviesta regresijas testēšanas sistēma;
  • Pievienots oficiālais atbalsts arm64v8 (aarch64) un ppc64le (ppc64el) platformām;
  • Pievienots atbalsts saistīšanai ar JavaScript dzinēju SpiderMonkey 1.8.5 (Firefox 60 ESR filiāle) ar uzlabotu atbalstu ES5, ES6 un ES2016+;
  • Meklētājprogramma iekļauta Dreyfus pamatojoties uz Lucene, kas ievērojami vienkāršo uz CouchDB balstītas meklētājprogrammas izvietošanu;
  • Pievienota aizmugursistēma reģistrēšanai, izmantojot systemd-journald;
  • Pievienots iestatījums “[couchdb] single_node”, kad tas ir iestatīts, CouchDB automātiski izveidos sistēmas datu bāzes, ja to trūkst;
  • Couch_server procesa veiktspēja ir optimizēta;
  • Windows platformas instalēšanas programma ir ievērojami uzlabota;
  • Skatījumu skaits ir ierobežots līdz 2^28 (268435456) rezultātiem. Šo ierobežojumu var atsevišķi konfigurēt parastajiem un segmentētajiem skatiem, izmantojot opcijas query_limit un partition_query_limit sadaļā “[query_server_config]”;
  • Ir noņemts atsevišķs HTTP lokālā mezgla pārvaldības interfeiss, kas palaists tīkla portā 5986, kura funkcionalitāte tagad ir pieejama, izmantojot kopējo klasteru pārvaldības saskarni;
  • Maksimālais dokumenta lielums ir samazināts līdz 8 MB, kas var radīt problēmas ar datu replikāciju no vecākiem serveriem pēc jaunināšanas uz CouchDB 3.0. Lai palielinātu ierobežojumu, varat izmantot iestatījumu “[couchdb] max_document_size”;
  • Ir veikta liela novecojušo līdzekļu tīrīšana, piemēram, _replicator un _external calls, disk_size un data_size lauki, kā arī opcija delayed_commits;
  • Lai palaistu CouchDB, tagad ir nepieciešams Erlang/OTP 20.3.8.11+, 21.2.3+ vai 22.0.5. Teorētiski funkcionalitāte ar Erlang/OTP 19 atzaru ir saglabāta, taču to aptver testi.

Atgādināsim, ka CouchDB datus glabā sakārtotā saraksta formātā un ļauj daļēji replikēt datus starp vairākām datu bāzēm master-master režīmā ar vienlaicīgu konfliktsituāciju noteikšanu un atrisināšanu. Katrs serveris saglabā savu lokālo datu kopu, kas ir sinhronizēta ar citiem serveriem, ko var izmantot bezsaistē un periodiski atkārtot izmaiņas. Jo īpaši šī funkcija padara CouchDB par pievilcīgu risinājumu programmu iestatījumu sinhronizēšanai starp dažādiem datoriem. Uz CouchDB balstīti risinājumi ir ieviesti tādos uzņēmumos kā BBC, Apple un CERN.

CouchDB vaicājumus un datu indeksēšanu var veikt atbilstoši paradigmai MapReduce, izmantojot JavaScript, lai ģenerētu datu izlases loģiku. Sistēmas kodols ir rakstīts Erlang valodā, kas ir optimizēta, lai izveidotu sadalītas sistēmas, kas apkalpo vairākus paralēlus pieprasījumus. Skata serveris ir rakstīts C valodā un ir balstīts uz JavaScript dzinēju no Mozilla projekta. Piekļuve datu bāzei tiek veikta, izmantojot HTTP protokolu, izmantojot RESTful JSON API, kas ļauj piekļūt datiem, tostarp no tīmekļa lietojumprogrammām, kas darbojas pārlūkprogrammā.

Datu glabāšanas vienība ir dokuments, kuram ir unikāls identifikators, versija un kas satur patvaļīgu nosauktu lauku kopu atslēgas/vērtības formātā. Lai organizētu pseidostrukturētu datu kopu no patvaļīgiem dokumentiem (apkopošana un atlase), tiek izmantots skatu (skatu) veidošanas jēdziens, lai noteiktu, kura JavaScript valoda tiek izmantota. JavaScript var arī definēt funkcijas datu apstiprināšanai, pievienojot jaunus dokumentus noteiktā skatā.

Avots: opennet.ru

Pievieno komentāru