Paglabas ng DBMS Apache CouchDB 3.0 na nakatuon sa dokumento

naganap paglabas ng isang distributed document-oriented database Apache CouchDB 3.0, na kabilang sa klase ng mga sistema ng NoSQL. Mga mapagkukunan ng proyekto kumalat lisensyado sa ilalim ng Apache 2.0.

Mga pagpapabutiipinatupad sa Apache CouchDB 3.0:

  • Ang default na configuration ay pinahusay.
    Kapag nagsimula, ang admin na gumagamit ay dapat na ngayong tukuyin, kung wala ang server ay magwawakas nang may error (nagbibigay-daan sa iyong lutasin ang mga problema sa paglulunsad ng mga server na hindi sinasadyang nag-iiwan ng access nang walang pagpapatunay). Ang mga tawag sa "/_all_dbs" ay nangangailangan na ngayon ng mga karapatan ng administrator, at lahat ng database ay nilikha bilang default na maa-access lamang ng admin user (maaaring baguhin ang mga parameter ng access sa pamamagitan ng object na "_security"). Bilang default, ipinagbabawal ang pag-edit ng mga bagay sa database ng _users;

  • Idinagdag ang kakayahang lumikha ng mga database na naka-segment (na-partition) na tinukoy ng gumagamit, na ginagawang posible na tukuyin ang iyong sariling mga panuntunan para sa pamamahagi ng mga dokumento sa mga segment (shard range). Nagdagdag ng mga espesyal na pag-optimize para sa mga sharded database sa mga view at index ng Mango;
  • Ipinatupad awtomatikong division mode sa panahon ng segmentation (sharding). Sa database, posible na ngayong muling ipamahagi ang data sa mga segment, na isinasaalang-alang ang pagtaas sa halaga ng q-factor na ginamit upang matukoy ang antas ng pagkasira;
  • Idinagdag ken subsystem para sa awtomatikong pag-index sa background at pagpapanatiling napapanahon ang mga pangalawang index (JavaScript, Mango, text search index) nang hindi tahasang inilulunsad ang kanilang mga operasyon sa pagtatayo;
  • Ang smoosh na proseso na ginamit para sa awtomatikong database packaging ay ganap na muling naisulat;
  • Iminungkahi ang bagong subsystem IO Queue, ginamit upang baguhin ang priyoridad ng I/O para sa ilang partikular na operasyon;
  • Nagpatupad ng isang regression testing system;
  • Nagdagdag ng opisyal na suporta para sa arm64v8 (aarch64) at ppc64le (ppc64el) na mga platform;
  • Nagdagdag ng suporta para sa pag-link sa JavaScript engine na SpiderMonkey 1.8.5 (ESR branch ng Firefox 60) na may pinahusay na suporta para sa ES5, ES6 at ES2016+;
  • Kasama ang search engine Dreyfus batay sa Lucene, na lubos na nagpapadali sa pag-deploy ng isang search engine batay sa CouchDB;
  • Nagdagdag ng backend para sa pag-log gamit ang systemd-journald;
  • Idinagdag ang setting na "[couchdb] single_node", kapag nakatakda, awtomatikong gagawa ang CouchDB ng mga database ng system kung nawawala ang mga ito;
  • Ang pagganap ng proseso ng couch_server ay na-optimize;
  • Ang installer para sa Windows platform ay makabuluhang napabuti;
  • Limitado ang mga view sa 2^28 (268435456) na resulta. Maaaring hiwalay na i-configure ang limitasyong ito para sa mga regular at naka-segment na view gamit ang query_limit at partition_query_limit na mga opsyon sa seksyong β€œ[query_server_config]”;
  • Ang isang hiwalay na interface ng pamamahala ng lokal na node ng HTTP, na inilunsad sa port ng network 5986, ay tinanggal, na magagamit na ngayon sa pamamagitan ng karaniwang interface ng pamamahala ng kumpol;
  • Ang maximum na laki ng dokumento ay nabawasan sa 8 MB, na maaaring magdulot ng mga problema sa pagkopya ng data mula sa mas lumang mga server pagkatapos mag-upgrade sa CouchDB 3.0. Upang taasan ang limitasyon, maaari mong gamitin ang setting na "[couchdb] max_document_size";
  • Ang isang pangunahing paglilinis ng mga hindi na ginagamit na tampok ay isinagawa, tulad ng _replicator at _external na mga tawag, ang disk_size at data_size na mga field, at ang delayed_commits na opsyon;
  • Ang pagpapatakbo ng CouchDB ay nangangailangan na ngayon ng Erlang/OTP 20.3.8.11+, 21.2.3+ o 22.0.5. Theoretically, ang functionality sa Erlang/OTP 19 branch ay pinapanatili, ngunit ito ay sakop ng mga pagsubok.

Alalahanin natin na ang CouchDB ay nag-iimbak ng data sa isang nakaayos na format ng listahan at nagbibigay-daan sa bahagyang pagtitiklop ng data sa pagitan ng ilang mga database sa master-master mode na may sabay-sabay na pagtuklas at paglutas ng mga sitwasyon ng salungatan. Ang bawat server ay nag-iimbak ng sarili nitong lokal na hanay ng data, na naka-synchronize sa iba pang mga server, na maaaring gawin offline at pana-panahong ginagaya ang mga pagbabago. Sa partikular, ginagawa ng feature na ito ang CouchDB na isang kaakit-akit na solusyon para sa pag-synchronize ng mga setting ng program sa pagitan ng iba't ibang computer. Ang mga solusyon na nakabatay sa CouchDB ay ipinatupad sa mga kumpanya tulad ng BBC, Apple at CERN.

Maaaring isagawa ang mga query sa CouchDB at pag-index ng data ayon sa paradigm MapReduce, gamit ang JavaScript upang makabuo ng lohika ng sampling ng data. Ang core ng system ay nakasulat sa Erlang, na na-optimize para sa paglikha ng mga distributed system na nagsisilbi ng maraming parallel na kahilingan. Ang view server ay nakasulat sa C at nakabatay sa JavaScript engine mula sa proyekto ng Mozilla. Ang pag-access sa database ay isinasagawa gamit ang HTTP protocol gamit ang isang RESTful JSON API, na nagbibigay-daan sa iyong mag-access ng data, kabilang ang mula sa mga web application na tumatakbo sa browser.

Ang data storage unit ay isang dokumento na may natatanging identifier, bersyon at naglalaman ng arbitrary na hanay ng mga pinangalanang field sa key/value format. Upang ayusin ang isang pseudo-structured na set ng data mula sa mga arbitrary na dokumento (pagsasama-sama at pagpili), ang konsepto ng pagbuo ng mga view (view) ay ginagamit, upang tukuyin kung aling wika ng JavaScript ang ginagamit. Maaari ding tukuyin ng JavaScript ang mga function upang patunayan ang data kapag nagdaragdag ng mga bagong dokumento sa loob ng isang partikular na view.

Pinagmulan: opennet.ru

Magdagdag ng komento