Kutolewa kwa DBMS Apache CouchDB 3.0 yenye mwelekeo wa hati

ilifanyika kutolewa kwa hifadhidata iliyosambazwa yenye mwelekeo wa hati Apache CouchDB 3.0, mali ya darasa la mifumo ya NoSQL. Vyanzo vya mradi kuenea leseni chini ya Apache 2.0.

Maboreshokutekelezwa katika Apache CouchDB 3.0:

  • Usanidi chaguo-msingi umeimarishwa.
    Wakati wa kuanza, mtumiaji wa msimamizi lazima sasa afafanuliwe, bila ambayo seva itasitisha na hitilafu (inakuwezesha kutatua matatizo na seva za uzinduzi ambazo zinaacha ufikiaji bila uthibitishaji). Simu kwa "/_all_dbs" sasa zinahitaji haki za usimamizi, na hifadhidata zote zimeundwa kwa chaguo-msingi zinazoweza kufikiwa na mtumiaji wa msimamizi pekee (vigezo vya ufikiaji vinaweza kubadilishwa kupitia kitu cha "_security"). Kwa chaguo-msingi, kuhariri vitu katika hifadhidata ya _users ni marufuku;

  • Imeongezwa uwezo wa kuunda hifadhidata zilizogawanywa (zilizogawanywa) zilizofafanuliwa na mtumiaji, ikifanya iwezekane kufafanua sheria zako za kusambaza hati kwenye sehemu (safu ya shard). Imeongeza uboreshaji maalum wa hifadhidata zilizogawanywa kwa maoni na faharasa za Mango;
  • Imetekelezwa hali ya mgawanyiko wa moja kwa moja wakati wa kugawanyika (sharding). Katika hifadhidata, sasa inawezekana kusambaza tena data kati ya sehemu, kwa kuzingatia ongezeko la thamani ya q-factor inayotumiwa kuamua kiwango cha kuvunjika;
  • Imeongezwa mfumo mdogo wa ken wa kuorodhesha usuli otomatiki na kuweka faharasa za upili (JavaScript, Mango, faharasa za utafutaji wa maandishi) kusasishwa bila kuzindua shughuli zao za ujenzi;
  • Mchakato laini unaotumika kwa ufungaji wa hifadhidata otomatiki umeandikwa upya kabisa;
  • Mfumo mdogo mpya umependekezwa Foleni ya IO, inayotumika kubadilisha kipaumbele cha I/O kwa shughuli fulani;
  • Imetekelezwa mfumo wa upimaji wa urejeleaji;
  • Imeongeza usaidizi rasmi kwa majukwaa ya arm64v8 (aarch64) na ppc64le (ppc64el);
  • Usaidizi ulioongezwa wa kuunganisha na injini ya JavaScript SpiderMonkey 1.8.5 (tawi la ESR la Firefox 60) na usaidizi ulioboreshwa wa ES5, ES6 na ES2016+;
  • Injini ya utafutaji imejumuishwa Dreyfus kulingana na Lucene, ambayo hurahisisha sana uwekaji wa injini ya utaftaji kulingana na CouchDB;
  • Aliongeza backend kwa ukataji miti kwa kutumia systemd-journald;
  • Imeongeza mpangilio wa β€œ[couchdb] single_node”, ikiwekwa, CouchDB itaunda hifadhidata za mfumo kiotomatiki ikiwa hazipo;
  • Utendaji wa mchakato wa couch_server umeboreshwa;
  • Kisakinishi cha jukwaa la Windows kimeboreshwa kwa kiasi kikubwa;
  • Maoni yamepunguzwa kwa matokeo 2^28 (268435456). Kikomo hiki kinaweza kusanidiwa kivyake kwa mionekano ya kawaida na iliyogawanywa kwa kutumia query_limit na partition_query_limit chaguo katika sehemu ya "[query_server_config]";
  • Kiolesura tofauti cha usimamizi wa nodi za mitaa za HTTP, iliyozinduliwa kwenye bandari ya mtandao 5986, imeondolewa, utendakazi ambao sasa unapatikana kupitia kiolesura cha kawaida cha usimamizi wa nguzo;
  • Saizi ya juu zaidi ya hati imepunguzwa hadi MB 8, ambayo inaweza kusababisha matatizo na urudufishaji wa data kutoka kwa seva za zamani baada ya kupata toleo jipya la CouchDB 3.0. Ili kuongeza kikomo, unaweza kutumia mpangilio wa "[couchdb] max_document_size";
  • Usafishaji mkubwa wa vipengele vilivyopitwa na wakati umefanywa, kama vile _replicator na _external calls, the disk_size na data_size fields, na delayed_commits chaguo;
  • Kuendesha CouchDB sasa kunahitaji Erlang/OTP 20.3.8.11+, 21.2.3+ au 22.0.5. Kinadharia, utendakazi na tawi la Erlang/OTP 19 huhifadhiwa, lakini hufunikwa na majaribio.

Tukumbuke kwamba CouchDB huhifadhi data katika umbizo la orodha iliyoagizwa na inaruhusu kunakiliwa kwa sehemu ya data kati ya hifadhidata kadhaa katika hali kuu na ugunduzi na utatuzi wa hali za migogoro kwa wakati mmoja. Kila seva huhifadhi seti yake ya ndani ya data, iliyosawazishwa na seva zingine, ambayo inaweza kuchukuliwa nje ya mtandao na kurudia mabadiliko mara kwa mara. Hasa, kipengele hiki hufanya CouchDB kuwa suluhisho la kuvutia la kusawazisha mipangilio ya programu kati ya kompyuta tofauti. Suluhu zenye msingi wa CouchDB zimetekelezwa katika makampuni kama vile BBC, Apple na CERN.

Hoja za CouchDB na kuorodhesha data kunaweza kufanywa kulingana na dhana RamaniKupunguza, kwa kutumia JavaScript kutoa mantiki ya sampuli za data. Msingi wa mfumo umeandikwa kwa Erlang, ambayo imeboreshwa kwa ajili ya kuunda mifumo iliyosambazwa inayohudumia maombi mengi sambamba. Seva ya kutazama imeandikwa kwa C na inategemea injini ya JavaScript kutoka kwa mradi wa Mozilla. Ufikiaji wa hifadhidata unafanywa kwa kutumia itifaki ya HTTP kwa kutumia RESTful JSON API, ambayo hukuruhusu kufikia data, ikijumuisha kutoka kwa programu za wavuti zinazoendeshwa kwenye kivinjari.

Kitengo cha kuhifadhi data ni hati ambayo ina kitambulisho cha kipekee, toleo na ina seti ya kiholela ya sehemu zilizotajwa katika umbizo la ufunguo/thamani. Ili kuandaa seti ya data ya muundo wa pseudo kutoka kwa nyaraka za kiholela (mkusanyiko na uteuzi), dhana ya kuunda maoni (maoni) hutumiwa, kufafanua ambayo lugha ya JavaScript inatumiwa. JavaScript pia inaweza kufafanua chaguo za kukokotoa ili kuthibitisha data wakati wa kuongeza hati mpya ndani ya mwonekano fulani.

Chanzo: opennet.ru

Kuongeza maoni