Izdaja dokumentno usmerjenega DBMS Apache CouchDB 3.0

potekala izdaja distribuirane baze podatkov, usmerjene v dokumente Apache CouchDB 3.0ki spada v razred sistemov NoSQL. Izvorna koda projekta širjenje licenciran pod Apache 2.0.

Izboljšaveimplementirano v Apache CouchDB 3.0:

  • Okrepljena varnost v privzeti konfiguraciji.
    Ob zagonu mora biti zdaj definiran uporabnik admin, brez katerega bo strežnik dokončal svoje delo z napako (omogoča reševanje težav z zagonom strežnikov, ki nenamerno pustijo dostop brez avtentikacije). Klicanje "/_all_dbs" zdaj zahteva skrbniške pravice in vse baze podatkov so privzeto ustvarjene in dostopne samo uporabniku skrbniku (parametre dostopa je mogoče spremeniti prek predmeta "_security"). Privzeto je urejanje objektov v bazi podatkov _users prepovedano;

  • Dodano zmožnost ustvarjanja uporabniško definiranih segmentiranih (particioniranih) baz podatkov, ki omogočajo določanje lastnih pravil za razdeljevanje dokumentov v segmente (shard range). Pogledom in indeksom Mango so bile dodane posebne optimizacije za razdeljene baze podatkov;
  • Izvedeno samodejni način delitve pri segmentiranju (sharding). V podatkovni bazi je zdaj mogoče prerazporediti podatke po segmentih, pri čemer se upošteva povečanje vrednosti q-faktorja, ki se uporablja za določitev stopnje razčlenitve;
  • Dodano podsistem ken za samodejno indeksiranje v ozadju in vzdrževanje posodobljenih sekundarnih indeksov (JavaScript, Mango, indeksi za iskanje po besedilu) brez izrecnega zagona njihovih konstrukcijskih operacij;
  • Postopek smoosh, ki se uporablja za samodejno pakiranje baze podatkov, je bil popolnoma prepisan;
  • Predlagan nov podsistem Čakalna vrsta IOuporablja se za spreminjanje V/I prioritete za določene operacije;
  • Implementiran sistem regresijskega testiranja;
  • Dodana uradna podpora za platformi arm64v8 (aarch64) in ppc64le (ppc64el);
  • Dodana podpora za povezovanje z motorjem JavaScript SpiderMonkey 1.8.5 (veja ESR Firefoxa 60) z izboljšano podporo za ES5, ES6 in ES2016+;
  • Vključen iskalnik Dreyfus temelji na Lucene, kar močno poenostavi uvedbo iskalnika, ki temelji na CouchDB;
  • Dodano zaledje za beleženje z uporabo systemd-journald;
  • Dodana nastavitev "[couchdb] single_node", ko je nastavljena, bo CouchDB samodejno ustvaril sistemske baze podatkov, če manjkajo;
  • Optimizirano delovanje procesa couch_server;
  • Bistveno izboljšan namestitveni program za platformo Windows;
  • Ogledi so omejeni na 2^28 (268435456) rezultatov. To omejitev je mogoče ločeno konfigurirati za običajne in segmentirane poglede z uporabo možnosti query_limit in partition_query_limit v razdelku "[query_server_config]";
  • Odstranjen ločen vmesnik za upravljanje lokalnega vozlišča HTTP, ki deluje na omrežnih vratih 5986, katerega funkcionalnost je zdaj na voljo prek skupnega vmesnika za upravljanje gruče;
  • Največja velikost dokumenta je bila zmanjšana na 8 MB, kar lahko povzroči težave s podvajanjem podatkov s starejših strežnikov po nadgradnji na CouchDB 3.0. Za povečanje omejitve lahko uporabite nastavitev "[couchdb] max_document_size";
  • Očiščenih je bilo veliko zastarelih funkcij, kot so _replicator in _external klici, polja disk_size in data_size, možnost delayed_commits;
  • CouchDB zdaj za delovanje potrebuje Erlang/OTP 20.3.8.11+, 21.2.3+ ali 22.0.5. Teoretično je delo z vejo Erlang/OTP 19 ohranjeno, vendar je pokrito s testi.

Spomnimo, CouchDB shranjuje podatke v obliki urejenega seznama in omogoča delno replikacijo podatkov med več zbirkami podatkov v načinu »master-master« s hkratnim zaznavanjem in reševanjem konfliktnih situacij. Vsak strežnik hrani svoj lokalni nabor podatkov, sinhroniziran z drugimi strežniki, ki jih je mogoče preklopiti brez povezave in občasno ponoviti spremembe. Zlasti zaradi te funkcije je CouchDB privlačna rešitev za sinhronizacijo programskih nastavitev med različnimi računalniki. Rešitve, ki temeljijo na CouchDB, so uvedla podjetja, kot so BBC, Apple in CERN.

Poizvedbe CouchDB in indeksiranje podatkov je mogoče izvesti v skladu s paradigmo MapReduce, z uporabo jezika JavaScript za oblikovanje logike vzorčenja podatkov. Jedro sistema je napisano v jeziku Erlang, ki je optimiziran za ustvarjanje porazdeljenih sistemov, ki služijo številnim vzporednim zahtevam. Pogledni strežnik je napisan v jeziku C in temelji na motorju JavaScript iz projekta Mozilla. Dostop do podatkovne baze poteka po protokolu HTTP z uporabo RESTful JSON API, ki omogoča dostop do podatkov tudi iz spletnih aplikacij, ki se izvajajo v brskalniku.

Enota za shranjevanje podatkov je dokument, ki ima edinstven identifikator, različico in vsebuje poljuben nabor poimenovanih polj v obliki ključ/vrednost. Za organizacijo psevdostrukturiranega niza podatkov iz poljubnih dokumentov (združevanje in vzorčenje) se uporablja koncept oblikovanja pogledov (view), za definicijo katerega je uporabljen jezik JavaScript. JavaScript lahko definira tudi funkcije za preverjanje podatkov, ko so v določenem pogledu dodani novi dokumenti.

Vir: opennet.ru

Dodaj komentar