Avalikustatud dokumentide haldamise andmebaas Apache CouchDB 3.0

Toimus jaotatud dokumentide andmebaasi versioon Apache CouchDB 3.0, mis kuulub NoSQL-süsteemide klassi. Projekti allikaid levitatakse lisensiga Apache 2.0.

Täiendused, mis on rakendatud Apache CouchDB 3.0:

  • Oletame, et põhikonfigureerimisse on lisatud täiendav kaitse.
    Käivitamisel peab nüüd olema määratud kasutaja admin, muidu server lõpetab töö veaga (lahendab probleemid serverite käivitamisel, mille puhul on unustatud jätta avatud ligipääs ilma autentimiseta). Kõigi „/_all_dbs” kutsumiste jaoks on nüüd nõutud administraatori õigused, ja kõik andmebaasid luuakse vaikeväärtustena ligipääsetavaks ainult admin kasutajale (ligipääsu parameetreid saab muuta objekti „_security” kaudu). Objektide redigeerimine andmebaasis _users on vaikeväärtusena keelatud;
  • Lisatud kasutajate määratletud segmenteeritud (partitsioneeritud) andmebaaside loomise võimalus, mis võimaldab määrata oma reeglid dokumentide jaotamiseks segmentide vahel (shard range). Mango vaated ja indeksitesse on lisatud spetsiaalsed optimeerimised segmenteeritud andmebaaside jaoks;
  • Teostatud automaatse sharding'u režiim. Andmebaasis on nüüd võimalik andmete jaotamine segmentide vahel, arvestades q-faktori suurendamist, mis määrab lõhkumise taseme;
  • Lisatud ken alamsüsteem automaatseks taustal indekseerimiseks ja sekundaarsete indeksite ajakohastamiseks (JavaScript, Mango, tekstipõhised indeksid) ilma eraldi töötlemise alustamiseta;
  • Protsess smoosh on täielikult ümber kirjutatud, mida kasutatakse andmebaaside automaatseks pakkimiseks;
  • Pakutud uus alamsüsteem IO Queue, mis muudab sisendi/väljundi prioriteeti teatud toimingute jaoks;
  • Rakendatud regressiivsete testide süsteem;
  • Lisatud ametlik tugi platvormide arm64v8 (aarch64) ja ppc64le (ppc64el);
  • Lisatud tugi JavaScript-mootori SpiderMonkey 1.8.5 (Firefox 60 ESR haru) sidumisel, parendatud ES5, ES6 ja ES2016+ toega;
  • Komplekti on lisatud otsingumootor Dreyfus , mis põhineb Lucene'il, võimaldades oluliselt lihtsustada otsingusüsteemi juurutamist CouchDB alusel;
  • Lisatud logimise tagasiside süsteem kasutades systemd-journald;
  • Lisatud seadistus „[couchdb] single_node”, mille aktiveerimisel loob CouchDB automaatselt süsteemi andmebaasid, kui need puuduvad;
  • Couch_serveri protsessi jõudlust on optimeeritud;
  • Windowsi platvormi installijat on oluliselt parandatud;
  • Vaadete suurus on piiratud 2^28 (268435456) tulemusega. Seda piiri saab eraldi kohandada tavavaadete ja segmenteeritud vaadete jaoks, kasutades valikuid query_limit ja partition_query_limit jaotises „[query_server_config]“;
  • Eemaldatud on eraldi HTTP liidese haldust lokaalses sõlmes, mis töötas võrguporti 5986 kaudu; selle funktsionaalsus on nüüd saadaval üldises klastrihalduse liideses;
  • Dokumendi maksimaalne suurus on vähendatud 8 MB-ni, mis võib põhjustada andmete replikatsiooni probleeme vanadelt serveritelt pärast uuendamist CouchDB 3.0-le. Piiri suurendamiseks saab kasutada seadistust „[couchdb] max_document_size“;
  • Suuremaid puhastusi on tehtud vananenud funktsioonide, näiteks _replicator ja _external, disk_size ja data_size väljade ning delayed_commits valiku kohta;
  • CouchDB käivitamiseks on nüüd vajalik Erlang/OTP 20.3.8.11+, 21.2.3+ või 22.0.5. Teoreetiliselt on säilinud ühilduvus Erlang/OTP 19 harudega, kuid need on kaetud testidega.

Tuletame meelde, et CouchDB salvestab andmed järjestatud loendi formaadis ja võimaldab osalist andmete replikatsiooni mitme andmebaasi vahel „master-master“ režiimis, samal ajal tuvastades ja lahendades konfliktseid olukordi. Iga server salvestab oma kohaliku andmekogu, mis on sünkroniseeritud teiste serveritega, mis võivad minna offline-režiimi ja perioodiliselt replitseerivad muudatusi. Eelkõige muudab see võimalus CouchDB atraktiivseks lahenduseks programmide seadistuste sünkroniseerimise korraldamiseks erinevate arvutite vahel. CouchDB-põhiseid lahendusi on rakendatud sellistes ettevõtetes nagu BBC, Apple ja CERN.

CouchDB-le esitatavaid päringuid ja andmete indekseerimist saab teostada vastavalt paradigmale MapReduce, kasutades andmevaliku loogika koostamisel JavaScripti keelt. Süsteemi tuum on kirjutatud Erlangis, mis on optimeeritud paljude üheaegsete päringute teenindamiseks jaotatud süsteemide jaoks. Vaate server on kirjutatud C keeles ja põhineb Mozilla projekti JavaScripti mootoril. Andmebaasi juurde pääseb HTTP-protokolli kaudu, kasutades RESTful JSON API-d, mis võimaldab ligipääsu andmetele ka veebirakendustest, mis töötavad brauseris.

Andmehoidla ühik on dokument, millel on ainulaadne идентификатор, versioon ja mis sisaldab juhuslikku komplekti nimetatud väljadest formaadis võtme/väärtus. Pseudostruktureeritud andmestiku korraldamiseks juhuslikest dokumentidest (kogumine ja valikute vormimine) kasutatakse esitluste (view) kontseptsiooni, mille määrmiseks kasutatakse JavaScripti keelt. JavaScriptis saab ka määratleda funktsioone andmete kehtivuse kontrollimiseks uute dokumentide lisamisel konkreetse esitluse raames.

Allikas: opennet.ru

Osta usaldusväärne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid 🔥 Osta usaldusväärne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid | ProHoster