Vydanie dokumentovo orientovaného DBMS Apache CouchDB 3.0

uskutočnilo sa uvoľnenie distribuovanej databázy orientovanej na dokumenty Apache CouchDB 3.0, patriace do triedy NoSQL systémov. Zdroje projektu šírenie licencovaný pod Apache 2.0.

Vylepšeniaimplementované v Apache CouchDB 3.0:

  • Predvolená konfigurácia bola vylepšená.
    Pri spúšťaní je teraz potrebné definovať administrátora, bez ktorého sa server ukončí s chybou (umožňuje vyriešiť problémy so spúšťaním serverov, ktoré nechtiac nechajú prístup bez overenia). Volania "/_all_dbs" teraz vyžadujú administrátorské práva a všetky databázy sú štandardne vytvorené a sú prístupné iba pre administrátora (parametre prístupu je možné zmeniť cez objekt "_security"). V predvolenom nastavení je úprava objektov v databáze _users zakázaná;

  • Pridané možnosť vytvárať užívateľom definované segmentované (delené) databázy, čo umožňuje definovať vlastné pravidlá pre distribúciu dokumentov naprieč segmentmi (rozsah fragmentov). Do pohľadov a indexov Mango boli pridané špeciálne optimalizácie pre rozdelené databázy;
  • Implementovaná režim automatického delenia pri segmentácii (sharding). V databáze je teraz možné prerozdeľovať údaje medzi segmenty, berúc do úvahy zvýšenie hodnoty q-faktora používaného na určenie úrovne členenia;
  • Pridané ken subsystém pre automatické indexovanie na pozadí a udržiavanie sekundárnych indexov (JavaScript, Mango, indexy textového vyhľadávania) v aktuálnom stave bez explicitného spúšťania ich konštrukčných operácií;
  • Smoosh proces používaný pre automatické balenie databáz bol úplne prepísaný;
  • Navrhnutý nový subsystém IO fronta, ktorý sa používa na zmenu I/O priority pre určité operácie;
  • Implementovaný systém regresného testovania;
  • Pridaná oficiálna podpora pre platformy arm64v8 (aarch64) a ppc64le (ppc64el);
  • Pridaná podpora prepojenia s JavaScriptovým motorom SpiderMonkey 1.8.5 (ESR vetva Firefoxu 60) s vylepšenou podporou pre ES5, ES6 a ES2016+;
  • Vrátane vyhľadávača Dreyfus založené na Lucene, čo výrazne zjednodušuje nasadenie vyhľadávača založeného na CouchDB;
  • Pridaný backend pre protokolovanie pomocou systemd-journald;
  • Pridané nastavenie „[couchdb] single_node“, keď je nastavené, CouchDB automaticky vytvorí systémové databázy, ak chýbajú;
  • Výkon procesu couch_server bol optimalizovaný;
  • Inštalačný program pre platformu Windows bol výrazne vylepšený;
  • Počet zobrazení je obmedzený na 2^28 (268435456) výsledkov. Tento limit je možné samostatne nakonfigurovať pre bežné a segmentované zobrazenia pomocou volieb query_limit a partition_query_limit v sekcii “[query_server_config]”;
  • Samostatné rozhranie správy lokálneho uzla HTTP, spustené na sieťovom porte 5986, bolo odstránené, ktorého funkčnosť je teraz dostupná prostredníctvom spoločného rozhrania správy klastra;
  • Maximálna veľkosť dokumentu bola znížená na 8 MB, čo môže spôsobiť problémy s replikáciou údajov zo starších serverov po inovácii na CouchDB 3.0. Na zvýšenie limitu môžete použiť nastavenie „[couchdb] max_document_size“;
  • Vykonalo sa veľké vyčistenie zastaraných funkcií, ako sú volania _replicator a _external, polia disk_size a data_size a možnosť delayed_commits;
  • Spustenie CouchDB teraz vyžaduje Erlang/OTP 20.3.8.11+, 21.2.3+ alebo 22.0.5. Funkčnosť s vetvou Erlang/OTP 19 je teoreticky zachovaná, no je pokrytá testami.

Pripomeňme, že CouchDB ukladá dáta vo formáte usporiadaného zoznamu a umožňuje čiastočnú replikáciu dát medzi viacerými databázami v režime master-master so súčasnou detekciou a riešením konfliktných situácií. Každý server ukladá svoj vlastný lokálny súbor údajov synchronizovaných s inými servermi, ktoré možno prepnúť do režimu offline a pravidelne opakovať zmeny. Najmä táto funkcia robí z CouchDB atraktívne riešenie na synchronizáciu nastavení programu medzi rôznymi počítačmi. Riešenia založené na CouchDB boli implementované v spoločnostiach ako BBC, Apple a CERN.

Dotazy CouchDB a indexovanie údajov možno vykonávať podľa paradigmy MapReducepomocou JavaScriptu na generovanie logiky vzorkovania údajov. Jadro systému je napísané v jazyku Erlang, ktorý je optimalizovaný na vytváranie distribuovaných systémov, ktoré obsluhujú viacero paralelných požiadaviek. View server je napísaný v C a je založený na JavaScript engine z projektu Mozilla. Prístup k databáze sa vykonáva pomocou protokolu HTTP pomocou RESTful JSON API, ktoré vám umožňuje pristupovať k údajom, a to aj z webových aplikácií spustených v prehliadači.

Úložná jednotka údajov je dokument, ktorý má jedinečný identifikátor, verziu a obsahuje ľubovoľnú množinu pomenovaných polí vo formáte kľúč/hodnota. Na usporiadanie pseudoštruktúrovaného súboru údajov z ľubovoľných dokumentov (agregácia a výber) sa používa koncept formovania pohľadov (pohľadov), na definovanie toho, ktorý jazyk JavaScript sa používa. JavaScript môže tiež definovať funkcie na overenie údajov pri pridávaní nových dokumentov v rámci konkrétneho zobrazenia.

Zdroj: opennet.ru

Pridať komentár