jaotatud dokumendipõhise andmebaasi väljalase , mis kuulub NoSQL-süsteemide klassi. Projekti lähtekoodid ainekood on litsentsitud Apache 2.0 all.
, rakendatud Apache CouchDB 3.0:
- Oleme tugevdanud vaikimisi konfigureerimise kaitset.
Nüüd peab käivitamisel olema määratud admin kasutaja, vastasel juhul lõpetab server töö veaga (mis aitab lahendada serverite käivitamise probleeme, kui unustatakse jätta juurdepääs autentimata). Kutsudes ülesandeid „/_all_dbs”, on nüüd vajalik administraatori õiguste olemasolu, ja kõik andmebaasid luuakse vaikimisi ligipääsetavaks ainult admin kasutajale (juurdepääsu seadeid saab muuta objekti „_security” kaudu). K_ kasutajate objekti toimetamine on vaikimisi keelatud; - kasutaja määratletud jagatud (partitsioneeritud) andmebaaside loomise võimalus, mis võimaldab määrata oma reeglid dokumentide jaotamiseks jagudesse (shard range). Mango vaated ja indeksid on saanud spetsiaalsed optimeerimised jagatud andmebaaside jaoks;
- automaatne jagamise režiim segmentimisel (sharding). Andmebaasis on nüüd võimalik andmeid segmentide vahel ümber jaotada, võttes arvesse q-faktori suurenemist, mida kasutatakse jagamise taseme määratlemiseks;
- ken alamsüsteem automaatseks taustal indekseerimiseks ja sekundaarsete indeksite (JavaScript, Mango, täisteksti otsingueelne indeks) ajakohasena hoidmiseks ilma nende loomise toimingute käsitsi käivitamiseta;
- Smoosh protsess on täielikult ümber kirjutatud, mida kasutatakse andmebaasi automaatseks pakendamiseks;
- Uus alamsüsteem on ette pandud , mida kasutatakse sisesisendi/keskkonna prioriseerimise muutmiseks teatud toimingute jaoks;
- Rakendatud regressiivse testimise süsteem;
- Lisatud ametlik tugi arm64v8 (aarch64) ja ppc64le (ppc64el) platvormidele;
- Lisatud tugi JavaScripti mootoriga SpiderMonkey 1.8.5 (Firefox 60 ESR haru) koos parendatud ES5, ES6 ja ES2016+ toega;
- Sisaldab otsingumootorit Lucene alusel, mis lihtsustab oluliselt otsinguandmebaasi tõstatamist CouchDB põhjal;
- Lisatud logide pidamise backend systemd-journald abil;
- Lisatud seade «[couchdb] single_node», mille korral loodi CouchDB-s automaatselt süsteemi andmebaasid, kui need puuduvad;
- Optimeeritud couch_server protsessi jõudlust;
- Installija Windowsi platvormile on märkimisväärselt parandatud;
- Vaadete suurus on piiratud 2^28 (268435456) tulemusega. Seda limiiti saab eraldi seadistada tavaliste ja segmenteeritud vaadete jaoks, kasutades valikuid query_limit ja partition_query_limit sektsiooni «[query_server_config]»;
- Eemaldatud eraldi HTTP-liides kohaliku sõlme haldamiseks, mis töötas võrguporti 5986, mille funktsionaalsus on nüüd saadaval läbi klastrihalduse ühise liidese;
- Dokumendi maksimaalne suurus on vähendatud 8 MB-ni, mis võib pärast üleminekut CouchDB 3.0-le põhjustada andmete replikatsiooni probleeme vanematelt serveritelt. Limite suurendamiseks võib kasutada seadet «[couchdb] max_document_size»;
- Tehtud ulatuslik puhastus aegunud funktsioonidest, nagu _replicator ja _external kutsed, disk_size ja data_size väljad, valik delayed_commits;
- CouchDB tööks 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 haru, kuid see on katsetatud.
Tuletame meelde, et CouchDB salvestab andmeid järjestatud loendi vormingus ning võimaldab teostada andmete osalist replikatsiooni mitme andmebaasi vahel "master-master" režiimis koos samaaegse konfliktide avastamise ja lahendamisega. Iga server salvestab oma kohaliku andmekogumi, mis on sünkroonitud teiste serveritega, mis võivad minna offline-režiimi ja perioodiliselt replitseerida muudatusi. Eriti muudab see võimalus CouchDB atraktiivseks lahenduseks erinevate arvutite vahel programmide seadete sünkroniseerimise korraldamiseks. CouchDB-l põhinevaid lahendusi on rakendatud sellistes ettevõtetes nagu BBC, Apple ja CERN.
Päringud CouchDB-le ja andmete indekseerimine võivad toimuda vastavalt paradigmale , kasutades andmevaliku loogika vormimiseks JavaScripti keelt. Süsteemi tuum on kirjutatud Erlangi keeles, mis on optimeeritud mitme paralleelse päringu teenindamiseks hajutatud süsteemides. View-server on kirjutatud C-keeles ja põhineb Mozilla projekti JavaScripti mootori peal. Andmebaasi juurde pääseb HTTP protokolli abil, kasutades RESTful JSON API-d, mis võimaldab andmetele ligi pääseda ka brauseris töötavatest veebi rakendustest.
Andmete salvestamise üksus on dokument, millel on ainulaadne tuvastaja, versioon ja mis sisaldab meelevaldset arvu nimelisi välju võtme/väärtuse formaadis. Juhuslike dokumentide (agregatsiooni ja valikute loomine) pseudo-struktureeritud andmekogumi korraldamiseks kasutatakse vaatevormide loomise kontseptsiooni (view), mille määratlemiseks kasutatakse JavaScripti keelt. JavaScriptis saab samuti määrata funktsioone, et kontrollida andmete õigsust uute dokumentide lisamisel teatud vaate raames.
Allikas: opennet.ru
