Vrystelling van dokument-georiënteerde DBMS Apache CouchDB 3.0

plaasgevind vrystelling van 'n verspreide dokument-georiënteerde databasis Apache CouchDB 3.0, wat aan die klas van NoSQL-stelsels behoort. Projek bronne versprei gelisensieer onder Apache 2.0.

Verbeteringsgeïmplementeer in Apache CouchDB 3.0:

  • Die verstekkonfigurasie is verbeter.
    Wanneer jy begin, moet die admin-gebruiker nou gedefinieer word, waarsonder die bediener met 'n fout sal eindig (laat jou toe om probleme op te los met die bekendstelling van bedieners wat per ongeluk toegang sonder verifikasie verlaat). Oproepe na "/_all_dbs" vereis nou administrateur regte, en alle databasisse word by verstek geskep slegs toeganklik vir die admin gebruiker (toegang parameters kan verander word deur die "_security" objek). By verstek is die redigering van voorwerpe in die _users-databasis verbied;

  • Bygevoeg die vermoë om gebruikergedefinieerde gesegmenteerde (gepartisioneerde) databasisse te skep, wat dit moontlik maak om jou eie reëls te definieer vir die verspreiding van dokumente oor segmente (skerfreeks). Spesiale optimaliserings vir versnipperde databasisse by Mango-aansigte en indekse bygevoeg;
  • Geïmplementeer outomatiese verdelingsmodus tydens segmentering (versplintering). In die databasis is dit nou moontlik om data tussen segmente te herverdeel, met inagneming van 'n toename in die waarde van die q-faktor wat gebruik word om die vlak van uiteensetting te bepaal;
  • Bygevoeg ken-substelsel vir outomatiese agtergrondindeksering en om sekondêre indekse (JavaScript, Mango, tekssoekindekse) op datum te hou sonder om hul konstruksiebedrywighede uitdruklik te begin;
  • Die smoosh-proses wat vir outomatiese databasisverpakking gebruik word, is heeltemal herskryf;
  • Nuwe substelsel voorgestel IO tou, gebruik om die I/O-prioriteit vir sekere bewerkings te verander;
  • 'n regressietoetsstelsel geïmplementeer;
  • Bygevoeg amptelike ondersteuning vir arm64v8 (aarch64) en ppc64le (ppc64el) platforms;
  • Bygevoeg ondersteuning vir koppeling met die JavaScript-enjin SpiderMonkey 1.8.5 (ESR-tak van Firefox 60) met verbeterde ondersteuning vir ES5, ES6 en ES2016+;
  • Soekenjin ingesluit Dreyfus gebaseer op Lucene, wat die ontplooiing van 'n soekenjin gebaseer op CouchDB aansienlik vergemaklik;
  • Bygevoeg backend vir aanteken met behulp van systemd-journald;
  • Bygevoeg die "[couchdb] single_node" instelling, wanneer dit gestel is, sal CouchDB outomaties stelsel databasisse skep as hulle ontbreek;
  • Die werkverrigting van die couch_server-proses is geoptimaliseer;
  • Die installeerder vir die Windows-platform is aansienlik verbeter;
  • Kyke is beperk tot 2^28 (268435456) resultate. Hierdie limiet kan afsonderlik gekonfigureer word vir gereelde en gesegmenteerde aansigte deur gebruik te maak van die query_limit en partition_query_limit opsies in die "[query_server_config]" afdeling;
  • 'n Aparte HTTP-plaaslike nodusbestuurkoppelvlak, wat op netwerkpoort 5986 geloods is, is verwyder, waarvan die funksionaliteit nou beskikbaar is deur die gemeenskaplike groepbestuurskoppelvlak;
  • Die maksimum dokumentgrootte is verminder tot 8 MB, wat probleme met datareplikasie vanaf ouer bedieners kan veroorsaak nadat dit na CouchDB 3.0 opgegradeer is. Om die limiet te verhoog, kan jy die "[couchdb] max_document_size" instelling gebruik;
  • 'n Groot opruiming van uitgediende kenmerke is uitgevoer, soos die _replicator en _eksterne oproepe, die skyfgrootte en data_size velde, en die delayed_commits opsie;
  • Om CouchDB nou te laat loop, vereis Erlang/OTP 20.3.8.11+, 21.2.3+ of 22.0.5. Teoreties bly die funksionaliteit met die Erlang/OTP 19-tak behoue, maar dit word deur toetse gedek.

Laat ons onthou dat CouchDB data in 'n geordende lysformaat stoor en gedeeltelike replisering van data tussen verskeie databasisse in 'n meester-meester-modus moontlik maak met gelyktydige opsporing en oplossing van konfliksituasies. Elke bediener stoor sy eie plaaslike stel data, gesinchroniseer met ander bedieners, wat vanlyn geneem kan word en veranderinge periodiek herhaal. Hierdie kenmerk maak veral CouchDB 'n aantreklike oplossing vir die sinchronisering van programinstellings tussen verskillende rekenaars. CouchDB-gebaseerde oplossings is geïmplementeer in maatskappye soos die BBC, Apple en CERN.

CouchDB-navrae en data-indeksering kan volgens die paradigma uitgevoer word KaartVerminder, met behulp van JavaScript om datasteekproeflogika te genereer. Die stelselkern is geskryf in Erlang, wat geoptimaliseer is vir die skep van verspreide stelsels wat verskeie parallelle versoeke bedien. Die aansigbediener is in C geskryf en is gebaseer op die JavaScript-enjin van die Mozilla-projek. Toegang tot die databasis word uitgevoer met behulp van die HTTP-protokol met behulp van 'n RESTful JSON API, wat jou toelaat om toegang tot data te verkry, insluitend van webtoepassings wat in die blaaier loop.

Die databergingseenheid is 'n dokument wat 'n unieke identifiseerder, weergawe het en 'n arbitrêre stel benoemde velde in die sleutel/waarde-formaat bevat. Om 'n pseudo-gestruktureerde stel data uit arbitrêre dokumente (aggregasie en seleksie) te organiseer, word die konsep van die vorming van aansigte (aansigte) gebruik, om te definieer watter die JavaScript-taal gebruik word. JavaScript kan ook funksies definieer om data te valideer wanneer nuwe dokumente binne 'n spesifieke aansig bygevoeg word.

Bron: opennet.ru

Voeg 'n opmerking