Release fan it dokumint-rjochte DBMS Apache CouchDB 3.0

barde frijlitting fan in ferspraat dokumint-rjochte databank Apache CouchDB 3.0, dy't ta de klasse fan NoSQL-systemen hearre. Projekt boarnen fersprieding lisinsje ûnder Apache 2.0.

Ferbetteringsymplementearre yn Apache CouchDB 3.0:

  • De standertkonfiguraasje is ferbettere.
    By it starten moat de admin-brûker no definieare wurde, sûnder dat de tsjinner sil beëinigje mei in flater (kin jo problemen oplosse mei it lansearjen fan servers dy't per ongelok tagong ferlitte sûnder autentikaasje). Oproppen nei "/_all_dbs" fereaskje no administratorrjochten, en alle databases wurde standert makke allinnich tagonklik foar de admin-brûker (tagongsparameters kinne wizige wurde fia it objekt "_security"). Standert is it bewurkjen fan objekten yn 'e _users databank ferbean;

  • Added de mooglikheid om te meitsjen brûker-definiearre segmented (partitioned) databases, wêrtroch't it mooglik om te bepalen jo eigen regels foar it fersprieden fan dokuminten oer segminten (shard berik). Spesjale optimisaasjes tafoege foar ferdielde databases oan Mango-werjeften en yndeksen;
  • Implementearre automatyske divyzjemodus by segmentaasje (sharding). Yn 'e databank is it no mooglik om gegevens ûnder segminten te fersprieden, mei rekkening mei in ferheging fan' e wearde fan 'e q-faktor dy't brûkt wurdt om it nivo fan ôfbraak te bepalen;
  • Added ken-subsysteem foar automatyske eftergrûnyndeksearring en it hâlden fan sekundêre yndeksen (JavaScript, Mango, tekstsykyndeksen) bywurke sûnder eksplisyt har konstruksje operaasjes te starten;
  • It smoosh-proses dat brûkt wurdt foar automatyske databankferpakking is folslein opnij skreaun;
  • Nij subsysteem foarsteld IO wachtrige, brûkt om de I/O-prioriteit te feroarjen foar bepaalde operaasjes;
  • Implementearre in regression test systeem;
  • Offisjele stipe tafoege foar platfoarms arm64v8 (aarch64) en ppc64le (ppc64el);
  • Stipe tafoege foar keppeljen mei de JavaScript-motor SpiderMonkey 1.8.5 (ESR-tûke fan Firefox 60) mei ferbettere stipe foar ES5, ES6 en ES2016+;
  • Sykmasine ynbegrepen Dreyfus basearre op Lucene, dy't gâns simplifies de ynset fan in sykmasine basearre op CouchDB;
  • Backend tafoege foar logging mei systemd-journald;
  • De ynstelling "[couchdb] single_node" tafoege, as ynsteld, sil CouchDB automatysk systeemdatabases oanmeitsje as se ûntbrekke;
  • De prestaasjes fan it couch_server-proses is optimalisearre;
  • It ynstallearder foar it Windows-platfoarm is signifikant ferbettere;
  • Views binne beheind ta 2^28 (268435456) resultaten. Dizze limyt kin apart konfigurearre wurde foar reguliere en segmentearre werjeften mei de opsjes query_limit en partition_query_limit yn 'e seksje "[query_server_config]";
  • In aparte HTTP-lokale knooppuntbehear-ynterface, lansearre op netwurkpoarte 5986, is fuorthelle, de funksjonaliteit wêrfan no beskikber is fia de mienskiplike klusterbehearynterface;
  • De maksimale dokumintgrutte is fermindere nei 8 MB, wat problemen kin feroarsaakje mei gegevensreplikaasje fan âldere servers nei it opwurdearjen nei CouchDB 3.0. Om de limyt te fergrutsjen, kinne jo de ynstelling "[couchdb] max_document_size" brûke;
  • In grutte skjinmeitsjen fan ferâldere funksjes is útfierd, lykas de _replicator en _external calls, de disk_size en data_size fjilden, en de delayed_commits opsje;
  • It útfieren fan CouchDB fereasket no Erlang/OTP 20.3.8.11+, 21.2.3+ of 22.0.5. Teoretysk wurdt de funksjonaliteit mei de Erlang / OTP 19-tûke bewarre bleaun, mar it wurdt dekt troch tests.

Lit ús ûnthâlde dat CouchDB gegevens bewarret yn in bestelde listformaat en lit in part replikaasje fan gegevens tusken ferskate databases yn in master-master-modus mei simultane deteksje en oplossing fan konfliktsituaasjes. Elke server bewarret syn eigen lokale set gegevens, syngronisearre mei oare servers, dy't offline kinne wurde nommen en periodyk wizigingen replikearje. Benammen dizze funksje makket CouchDB in oantreklike oplossing foar syngronisaasje fan programma-ynstellingen tusken ferskate kompjûters. CouchDB-basearre oplossingen binne ymplementearre yn bedriuwen lykas de BBC, Apple en CERN.

CouchDB-fragen en gegevensyndeksearring kinne wurde útfierd neffens it paradigma MapReduce, JavaScript brûke om logika foar sampling fan gegevens te generearjen. De systeemkearn is skreaun yn Erlang, dat is optimalisearre foar it meitsjen fan ferdielde systemen dy't meardere parallelle oanfragen tsjinje. De werjefteserver is skreaun yn C en is basearre op de JavaScript-motor fan it Mozilla-projekt. Tagong ta de databank wurdt útfierd mei it HTTP-protokol mei in RESTful JSON API, wêrmei jo tagong krije ta gegevens, ynklusyf fan webapplikaasjes dy't yn 'e browser rinne.

De gegevens opslach ienheid is in dokumint dat hat in unike identifier, ferzje en befettet in willekeurige set fan neamde fjilden yn de kaai / wearde opmaak. Om in pseudo-strukturearre set fan gegevens te organisearjen út willekeurige dokuminten (aggregaasje en seleksje), wurdt it konsept fan it foarmjen fan views (views) brûkt, om te definiearjen hokker de JavaScript-taal brûkt wurdt. JavaScript kin ek funksjes definiearje om gegevens te falidearjen by it tafoegjen fan nije dokuminten binnen in bepaalde werjefte.

Boarne: opennet.ru

Add a comment