Liberasyon DBMS Apache CouchDB 3.0 ki oryante sou dokiman an

pran plas lage yon baz done distribye ki oryante sou dokiman Apache CouchDB 3.0, ki fè pati klas sistèm NoSQL yo. Sous pwojè yo gaye ki gen lisans anba Apache 2.0.

Amelyorasyonaplike nan Apache CouchDB 3.0:

  • Konfigirasyon default la te amelyore.
    Lè w kòmanse, yo dwe defini itilizatè admin kounye a, san yo pa ki sèvè a pral fini ak yon erè (pèmèt ou rezoud pwoblèm ak lanse sèvè ki inadvèrtans kite aksè san otantifikasyon). Apèl nan "/_all_dbs" kounye a mande pou dwa administratif, ak tout baz done yo kreye pa default sèlman aksesib a itilizatè a admin (paramèt aksè yo ka chanje atravè objè "_security"). Pa default, modifye objè nan baz done _users la entèdi;

  • Te ajoute kapasite nan kreye itilizatè-defini segman (patisyon) baz done, ki fè li posib yo defini pwòp règ ou pou distribye dokiman atravè segman (ranje shard). Te ajoute optimize espesyal pou baz done sharded nan opinyon ak endèks Mango;
  • Aplike mòd divizyon otomatik pandan segmentasyon (sharding). Nan baz done a, li se kounye a posib yo redistribiye done nan mitan segman, pran an kont yon ogmantasyon nan valè a nan q-faktè a itilize detèmine nivo nan pann;
  • Te ajoute ken subsystem pou otomatik background indexing epi kenbe endèks segondè (JavaScript, Mango, endis rechèch tèks) ajou san yo pa eksplisit lanse operasyon konstriksyon yo;
  • Pwosesis smoosh yo itilize pou anbalaj baz done otomatik yo te konplètman reekri;
  • Nouvo subsistèm pwopoze IO keu, yo itilize pou chanje priyorite I/O pou sèten operasyon;
  • Aplike yon sistèm tès regresyon;
  • Te ajoute sipò ofisyèl pou arm64v8 (aarch64) ak ppc64le (ppc64el) platfòm;
  • Te ajoute sipò pou lyen ak motè JavaScript SpiderMonkey 1.8.5 (ESR branch Firefox 60) ak sipò amelyore pou ES5, ES6 ak ES2016+;
  • Motè rechèch enkli Dreyfus baze sou Lucene, ki senplifye anpil deplwaman yon motè rechèch ki baze sou CouchDB;
  • Te ajoute backend pou antre lè l sèvi avèk systemd-journald;
  • Te ajoute "[couchdb] single_node" anviwònman an, lè yo mete, CouchDB pral otomatikman kreye baz done sistèm si yo manke;
  • Pèfòmans pwosesis couch_server la te optimize;
  • Enstalatè a pou platfòm Windows la te amelyore anpil;
  • Pwen de vi yo limite a 2^28 (268435456) rezilta. Limit sa a ka konfigirasyon separeman pou opinyon regilye ak segmenté lè l sèvi avèk opsyon query_limit ak partition_query_limit nan seksyon "[query_server_config]";
  • Yo retire yon koòdone jesyon nœud lokal HTTP separe, ki te lanse sou pò rezo 5986, ak fonksyonalite ki disponib kounye a atravè koòdone jesyon gwoup komen;
  • Gwosè maksimòm dokiman an te redwi a 8 MB, sa ki ka lakòz pwoblèm ak replikasyon done ki soti nan ansyen sèvè apre ajou nan CouchDB 3.0. Pou ogmante limit la, ou ka itilize paramèt "[couchdb] max_document_size";
  • Yo te fè yon gwo netwayaj nan karakteristik demode yo, tankou _replicator ak _external apèl, disk_size ak data_size jaden, ak opsyon delayed_commits;
  • Kouri CouchDB kounye a mande pou Erlang/OTP 20.3.8.11+, 21.2.3+ oswa 22.0.5. Teyorikman, fonksyonalite ak branch Erlang/OTP 19 la konsève, men li kouvri pa tès yo.

Se pou nou sonje ke CouchDB estoke done nan yon fòma lis òdone epi li pèmèt replikasyon pasyèl nan done ant plizyè baz done nan yon mòd mèt-mèt ak deteksyon similtane ak rezolisyon nan sitiyasyon konfli. Chak sèvè estoke pwòp seri done lokal li yo, senkronize ak lòt sèvè, ki ka pran offline epi replike chanjman detanzantan. An patikilye, karakteristik sa a fè CouchDB yon solisyon atire pou senkronize anviwònman pwogram ant diferan òdinatè. Solisyon ki baze sou CouchDB yo te aplike nan konpayi tankou BBC, Apple ak CERN.

Rekèt CouchDB ak endèks done yo ka fèt dapre paradigm la MapReduce, lè l sèvi avèk JavaScript pou jenere lojik echantiyon done. Nwayo sistèm nan ekri nan Erlang, ki optimize pou kreye sistèm distribiye ki sèvi plizyè demann paralèl. Sèvè a gade ekri an C epi li baze sou motè JavaScript ki soti nan pwojè Mozilla la. Aksè nan baz done a fèt lè l sèvi avèk pwotokòl HTTP lè l sèvi avèk yon API JSON RESTful, ki pèmèt ou jwenn aksè nan done, ki gen ladan nan aplikasyon entènèt ki kouri nan navigatè a.

Inite depo done a se yon dokiman ki gen yon idantifyan inik, vèsyon epi ki gen yon seri abitrè nan jaden yo nonmen nan fòma kle/valè. Pou òganize yon seri done pseudo-estriktire ki soti nan dokiman abitrè (agregasyon ak seleksyon), yo itilize konsèp pou fòme opinyon (view), pou defini ki lang JavaScript yo itilize. JavaScript kapab tou defini fonksyon pou valide done lè w ajoute nouvo dokiman nan yon vi an patikilye.

Sous: opennet.ru

Add nouvo kòmantè