Dokumentuetara zuzendutako Apache CouchDB 3.0 DBMSaren kaleratzea

ospatu Dokumentuetara bideratutako datu-base banatu baten kaleratzea Apache CouchDB 3.0, NoSQL sistemen klasekoa. Proiektuaren iturriak barreiatu Apache 2.0 lizentziapean.

HobekuntzakApache CouchDB 3.0-n inplementatua:

  • Lehenetsitako konfigurazioa hobetu da.
    Abiaraztean, administratzailearen erabiltzailea definitu behar da orain, eta hori gabe zerbitzaria akats batekin amaituko da (nahi gabe sarbidea autentifikaziorik gabe uzten duten zerbitzariak abiarazteko arazoak konpontzeko aukera ematen du). "/_all_dbs"-rako deiak orain administrazio-eskubideak behar ditu, eta datu-base guztiak lehenespenez sortzen dira administratzaileak soilik eskura ditzake (sarbide-parametroak "_security" objektuaren bidez alda daitezke). Lehenespenez, debekatuta dago _users datu-baseko objektuak editatzea;

  • Gehituta erabiltzaileak definitutako datu-base segmentatuak (partikatutakoak) sortzeko gaitasuna, dokumentuak segmentuetan banatzeko zure arauak definitzeko aukera emanez (shard-barrutia). Sharded datu-baseetarako optimizazio bereziak gehitu dira Mango ikuspegi eta indizeetan;
  • Inplementatua zatiketa automatikoko modua segmentazioan (sharding). Datu-basean, orain posible da datuak segmentuen artean birbanatzea, matxura-maila zehazteko erabiltzen den q-faktorearen balioaren igoera kontuan hartuta;
  • Gehituta ken azpisistema automatikoki atzeko planoan indexatzeko eta bigarren mailako indizeak (JavaScript, Mango, testu bilaketa-indizeak) eguneratuta mantentzeko, beren eraikuntza-eragiketak esplizituki abiarazi gabe;
  • Datu-base automatikoen ontziratzeko erabiltzen den prozesua guztiz berridatzi da;
  • Azpisistema berria proposatu IO Ilara, eragiketa jakin batzuen I/O lehentasuna aldatzeko erabiltzen da;
  • Erregresio-proba sistema bat ezarri du;
  • Arm64v8 (aarch64) eta ppc64le (ppc64el) plataformetarako euskarri ofiziala gehitu da;
  • JavaScript motorra SpiderMonkey 1.8.5 (Firefox 60-ren ESR adarra) lotzeko laguntza gehitu da ES5, ES6 eta ES2016+erako laguntza hobetuarekin;
  • Bilatzailea barne Dreyfus Lucene-n oinarrituta, CouchDBn oinarritutako bilatzaile baten hedapena asko errazten duena;
  • Systemd-journald erabiliz erregistratzeko backend-a gehitu da;
  • "[couchdb] single_node" ezarpena gehituta, ezarrita dagoenean, CouchDB-k automatikoki sortuko ditu sistemaren datu-baseak falta badira;
  • Couch_server prozesuaren errendimendua optimizatu da;
  • Windows plataformarako instalatzailea nabarmen hobetu da;
  • Ikustaldiak 2^28 (268435456) emaitzatara mugatuta daude. Muga hau bereizita konfigura daiteke ikuspegi arruntetarako eta segmentatuetarako, "[query_server_config]" ataleko query_limit eta partition_query_limit aukerak erabiliz;
  • 5986 sareko atakan abiarazitako HTTP nodo lokalen kudeaketa interfaze bereizi bat kendu da, zeinaren funtzionaltasuna orain eskuragarri dago kluster kudeatzeko interfaze arruntaren bidez;
  • Dokumentuaren gehienezko tamaina 8 MB-ra murriztu da, eta horrek arazoak sor ditzake CouchDB 3.0-ra eguneratu ondoren zerbitzari zaharretako datuak erreplikatzeko. Muga handitzeko, "[couchdb] max_document_size" ezarpena erabil dezakezu;
  • Ezaugarri zaharkituen garbiketa handia egin da, hala nola _replicator eta _external deiak, disk_size eta data_size eremuak eta delayed_commits aukera;
  • CouchDB exekutatzeak Erlang/OTP 20.3.8.11+, 21.2.3+ edo 22.0.5 behar du. Teorian, Erlang/OTP 19 adarraren funtzionaltasuna mantentzen da, baina probek estaltzen dute.

Gogora dezagun CouchDB-k datuak zerrenda-formatu ordenatuan gordetzen dituela eta hainbat datu-baseren artean datuen erreplika partziala ahalbidetzen duela maisu-master moduan, gatazka-egoerak aldi berean detektatu eta ebatziz. Zerbitzari bakoitzak bere tokiko datu-multzoa gordetzen du, beste zerbitzariekin sinkronizatuta, lineaz kanpo hartu eta aldaketak aldian-aldian errepika daitezke. Bereziki, ezaugarri honek CouchDB irtenbide erakargarria bihurtzen du ordenagailu ezberdinen artean programaren ezarpenak sinkronizatzeko. CouchDBn oinarritutako soluzioak BBC, Apple eta CERN bezalako enpresetan ezarri dira.

CouchDB kontsultak eta datuen indexazioa paradigmaren arabera egin daitezke MapReduce, JavaScript erabiliz datuak lagintzeko logika sortzeko. Sistemaren nukleoa Erlang-en idatzita dago, eskaera paralelo anitzak betetzen dituzten sistema banatuak sortzeko optimizatuta dago. Ikuspegi zerbitzaria C-n idatzita dago eta Mozilla proiektuko JavaScript motorean oinarritzen da. Datu-baserako sarbidea HTTP protokoloa erabiliz egiten da RESTful JSON API bat erabiliz, eta horrek datuak atzitzeko aukera ematen du, arakatzailean exekutatzen diren web aplikazioetatik barne.

Datuak biltegiratzeko unitatea identifikatzaile eta bertsio esklusibo bat duen dokumentua da eta gako/balio formatuan izendun eremuen multzo arbitrario bat dauka. Dokumentu arbitrarioetako datu-multzo sasi-egituratua antolatzeko (agregazioa eta hautaketa), ikuspegiak (ikuspegiak) osatzeko kontzeptua erabiltzen da, JavaScript hizkuntza zein erabiltzen den definitzeko. JavaScript-ek datuak balioztatzeko funtzioak ere defini ditzake ikuspegi jakin batean dokumentu berriak gehitzean.

Iturria: opennet.ru

Gehitu iruzkin berria