Vydání dokumentově orientovaného DBMS Apache CouchDB 3.0

odehrál se vydání distribuované databáze orientované na dokumenty Apache CouchDB 3.0, patřící do třídy NoSQL systémů. Zdroje projektu šíření licencováno pod Apache 2.0.

Vylepšeníimplementováno v Apache CouchDB 3.0:

  • Výchozí konfigurace byla vylepšena.
    Při spouštění je nyní nutné definovat uživatele admin, bez kterého se server ukončí s chybou (umožňuje vyřešit problémy se spouštěním serverů, které nechtěně opustí přístup bez autentizace). Volání "/_all_dbs" nyní vyžadují administrátorská práva a všechny databáze jsou standardně vytvářeny přístupné pouze administrátorovi (přístupové parametry lze měnit prostřednictvím objektu "_security"). Ve výchozím nastavení je úprava objektů v databázi _users zakázána;

  • Přidal možnost vytvářet uživatelsky definované segmentované (rozdělené) databáze, což umožňuje definovat vlastní pravidla pro distribuci dokumentů napříč segmenty (rozsah střepů). Do pohledů a indexů Mango přidány speciální optimalizace pro sdílené databáze;
  • Realizováno režim automatického dělení při segmentaci (sharding). V databázi je nyní možné redistribuovat data mezi segmenty s přihlédnutím ke zvýšení hodnoty q-faktoru používaného k určení úrovně členění;
  • Přidal ken subsystém pro automatickou indexaci na pozadí a udržování sekundárních indexů (JavaScript, Mango, indexy textového vyhledávání) v aktuálním stavu bez explicitního spouštění jejich konstrukčních operací;
  • Smoosh proces používaný pro automatické balení databází byl zcela přepsán;
  • Navrhován nový subsystém IO fronta, používá se ke změně I/O priority pro určité operace;
  • Implementován systém regresního testování;
  • Přidána oficiální podpora pro platformy arm64v8 (aarch64) a ppc64le (ppc64el);
  • Přidána podpora pro propojení s JavaScriptovým enginem SpiderMonkey 1.8.5 (ESR větev Firefoxu 60) s vylepšenou podporou pro ES5, ES6 a ES2016+;
  • Součástí je vyhledávač Dreyfus založené na Lucene, což výrazně zjednodušuje nasazení vyhledávače založeného na CouchDB;
  • Přidán backend pro protokolování pomocí systemd-journald;
  • Přidáno nastavení „[couchdb] single_node“, když je nastaveno, CouchDB automaticky vytvoří systémové databáze, pokud chybí;
  • Výkon procesu couch_server byl optimalizován;
  • Instalační program pro platformu Windows byl výrazně vylepšen;
  • Počet zobrazení je omezen na 2^28 (268435456) výsledků. Tento limit lze samostatně nakonfigurovat pro běžné a segmentované pohledy pomocí možností query_limit a partition_query_limit v sekci “[query_server_config]”;
  • Bylo odstraněno samostatné rozhraní pro správu lokálního uzlu HTTP, spuštěné na síťovém portu 5986, jehož funkčnost je nyní dostupná prostřednictvím společného rozhraní pro správu clusteru;
  • Maximální velikost dokumentu byla snížena na 8 MB, což může způsobit problémy s replikací dat ze starších serverů po upgradu na CouchDB 3.0. Pro zvýšení limitu můžete použít nastavení „[couchdb] max_document_size“;
  • Bylo provedeno velké vyčištění zastaralých funkcí, jako jsou volání _replicator a _external, pole disk_size a data_size a volba delayed_commits;
  • Spuštění CouchDB nyní vyžaduje Erlang/OTP 20.3.8.11+, 21.2.3+ nebo 22.0.5. Funkčnost s větví Erlang/OTP 19 je teoreticky zachována, ale je pokryta testy.

Připomeňme, že CouchDB ukládá data ve formátu uspořádaného seznamu a umožňuje částečnou replikaci dat mezi několika databázemi v režimu master-master se současnou detekcí a řešením konfliktních situací. Každý server ukládá svou vlastní místní sadu dat synchronizovaných s jinými servery, která lze přepnout do režimu offline a pravidelně replikovat změny. Zejména tato funkce dělá z CouchDB atraktivní řešení pro synchronizaci nastavení programu mezi různými počítači. Řešení založená na CouchDB byla implementována ve společnostech jako BBC, Apple a CERN.

CouchDB dotazy a indexování dat lze provádět podle paradigmatu MapReducepomocí JavaScriptu ke generování logiky vzorkování dat. Jádro systému je napsáno v jazyce Erlang, který je optimalizován pro vytváření distribuovaných systémů, které obsluhují více paralelních požadavků. View server je napsán v C a je založen na JavaScriptovém enginu z projektu Mozilla. Přístup k databázi se provádí pomocí protokolu HTTP pomocí RESTful JSON API, které umožňuje přístup k datům, a to i z webových aplikací spuštěných v prohlížeči.

Úložiště dat je dokument, který má jedinečný identifikátor, verzi a obsahuje libovolnou sadu pojmenovaných polí ve formátu klíč/hodnota. Pro uspořádání pseudostrukturovaného souboru dat z libovolných dokumentů (agregace a výběr) se používá koncept formování pohledů (pohledů), k definování toho, který jazyk JavaScript se použije. JavaScript může také definovat funkce pro ověření dat při přidávání nových dokumentů do určitého pohledu.

Zdroj: opennet.ru

Přidat komentář