Itusilẹ ti DBMS Apache CouchDB 3.0

waye itusilẹ ti ibi ipamọ data ti o da lori iwe-ipin Apache CouchDB 3.0, je ti si awọn kilasi ti NoSQL awọn ọna šiše. Awọn orisun ise agbese tànkálẹ iwe-aṣẹ labẹ Apache 2.0.

Awọn ilọsiwajuti a ṣe ni Apache CouchDB 3.0:

  • Iṣeto aifọwọyi ti ni ilọsiwaju.
    Nigbati o ba bẹrẹ, olumulo abojuto gbọdọ wa ni asọye ni bayi, laisi eyiti olupin naa yoo fopin si pẹlu aṣiṣe kan (o gba ọ laaye lati yanju awọn iṣoro pẹlu ifilọlẹ awọn olupin ti o lọ kuro ni iwọle laisi airotẹlẹ). Awọn ipe si "/ _all_dbs" ni bayi nilo awọn ẹtọ alakoso, ati pe gbogbo awọn apoti isura infomesonu ti ṣẹda nipasẹ aiyipada nikan ni iraye si olumulo abojuto (awọn aye wiwọle le yipada nipasẹ ohun "_security"). Nipa aiyipada, awọn nkan ṣiṣatunṣe ninu aaye data _users jẹ eewọ;

  • Fi kun agbara lati ṣẹda awọn apoti isura infomesonu ti a pin si olumulo, ti o jẹ ki o ṣee ṣe lati ṣalaye awọn ofin tirẹ fun pinpin awọn iwe aṣẹ kọja awọn apakan (ibiti shard). Awọn iṣapeye pataki ti a ṣafikun fun awọn apoti isura infomesonu ti o pin si awọn iwo Mango ati awọn atọka;
  • Ti ṣe imuse ipo pipin aifọwọyi lakoko ipin (sharding). Ninu ibi ipamọ data, o ṣee ṣe lati tun pinpin data laarin awọn apakan, ni akiyesi ilosoke ninu iye ti q-ifosiwewe ti a lo lati pinnu ipele ti didenukole;
  • Fi kun ken subsystem fun titọka isale aifọwọyi ati titọju awọn atọka Atẹle (JavaScript, Mango, awọn atọka wiwa ọrọ) titi di oni laisi ifilọlẹ awọn iṣẹ ikole wọn ni gbangba;
  • Ilana smoosh ti a lo fun iṣakojọpọ data aifọwọyi ti jẹ atunko patapata;
  • Titun subsystem dabaa IO isinyi, ti a lo lati yi ayo I / O pada fun awọn iṣẹ kan;
  • Ti ṣe eto idanwo ifaseyin;
  • Ṣe afikun atilẹyin osise fun arm64v8 (aarch64) ati awọn iru ẹrọ ppc64le (ppc64el);
  • Atilẹyin ti a ṣafikun fun sisopọ pẹlu ẹrọ JavaScript SpiderMonkey 1.8.5 (Ẹka ESR ti Firefox 60) pẹlu atilẹyin ilọsiwaju fun ES5, ES6 ati ES2016+;
  • Ẹrọ wiwa pẹlu Dreyfus ti o da lori Lucene, eyiti o rọrun pupọ imuṣiṣẹ ti ẹrọ wiwa ti o da lori CouchDB;
  • Fi kun backend fun gedu lilo systemd-journald;
  • Ṣe afikun eto “[couchdb] single_node”, nigbati o ba ṣeto, CouchDB yoo ṣẹda awọn apoti isura infomesonu eto laifọwọyi ti wọn ba nsọnu;
  • Iṣiṣẹ ti ilana couch_server ti jẹ iṣapeye;
  • Awọn insitola fun awọn Windows Syeed ti a ti significantly dara si;
  • Awọn iwo ni opin si awọn abajade 2^28 (268435456). Opin yii le jẹ tunto lọtọ fun deede ati awọn iwo apakan ni lilo awọn aṣayan query_limit ati partition_query_limit ni apakan “[query_server_config]”;
  • Ni wiwo iṣakoso oju ipade HTTP lọtọ, ti a ṣe ifilọlẹ lori ibudo nẹtiwọki 5986, ti yọkuro, iṣẹ ṣiṣe eyiti o wa ni bayi nipasẹ wiwo iṣakoso iṣupọ ti o wọpọ;
  • Iwọn iwe ti o pọju ti dinku si 8 MB, eyiti o le fa awọn iṣoro pẹlu ẹda data lati ọdọ awọn olupin agbalagba lẹhin igbegasoke si CouchDB 3.0. Lati mu opin naa pọ si, o le lo eto “[couchdb] max_document_size”;
  • A ti ṣe afọmọ pataki ti awọn ẹya atijo, gẹgẹbi awọn ipe _replicator ati _external, disk_size ati awọn aaye data_size, ati aṣayan idaduro_commits;
  • Ṣiṣe CouchDB bayi nilo Erlang/OTP 20.3.8.11+, 21.2.3+ tabi 22.0.5. Ni imọ-jinlẹ, iṣẹ ṣiṣe pẹlu ẹka Erlang/OTP 19 ti wa ni ipamọ, ṣugbọn o jẹ aabo nipasẹ awọn idanwo.

Jẹ ki a ranti pe CouchDB tọju data ni ọna kika atokọ ti o paṣẹ ati gba laaye ẹda data laarin awọn apoti isura data pupọ ni ipo titunto si-ọga pẹlu wiwa igbakanna ati ipinnu awọn ipo rogbodiyan. Olupin kọọkan tọju eto data agbegbe tirẹ, muṣiṣẹpọ pẹlu awọn olupin miiran, eyiti o le mu ni aisinipo ati ṣe awọn ayipada lorekore. Ni pataki, ẹya yii jẹ ki CouchDB jẹ ojutu ti o wuyi fun mimuuṣiṣẹpọ awọn eto eto laarin awọn kọnputa oriṣiriṣi. Awọn solusan orisun-CouchDB ti ni imuse ni awọn ile-iṣẹ bii BBC, Apple ati CERN.

Awọn ibeere CouchDB ati titọka data le ṣee ṣe ni ibamu si apẹrẹ MapDinku, lilo JavaScript lati se ina data iṣapẹẹrẹ kannaa. A kọ ipilẹ eto ni Erlang, eyiti o jẹ iṣapeye fun ṣiṣẹda awọn ọna ṣiṣe pinpin ti o ṣe iranṣẹ awọn ibeere afiwera pupọ. Olupin wiwo ti kọ sinu C ati pe o da lori ẹrọ JavaScript lati iṣẹ akanṣe Mozilla. Wiwọle si ibi ipamọ data ni a ṣe ni lilo ilana HTTP ni lilo RESTful JSON API, eyiti o fun ọ laaye lati wọle si data, pẹlu awọn ohun elo wẹẹbu ti n ṣiṣẹ ni ẹrọ aṣawakiri.

Ẹka ibi ipamọ data jẹ iwe-ipamọ ti o ni idamo alailẹgbẹ, ẹya ati pe o ni eto lainidii ti awọn aaye ti a darukọ ni ọna kika bọtini/iye. Lati ṣeto data ti a ti ṣoki atansọ lati awọn iwe aṣẹ lainidii (akopọ ati yiyan), imọran ti ṣiṣẹda awọn iwo (awọn iwo) ni a lo, lati ṣalaye iru ede JavaScript ti lo. JavaScript tun le setumo awọn iṣẹ lati fọwọsi data nigba fifi awọn iwe aṣẹ titun kun laarin wiwo kan pato.

orisun: opennet.ru

Fi ọrọìwòye kun