Rakirina DBMS-apache CouchDB 3.0-ya belge-oriented

pêk hat serbestberdana databasek belge-oriented belavkirî Apache CouchDB 3.0, ji çîna pergalên NoSQL ve girêdayî ye. Çavkaniyên projeyê belavbûn lîsansa di bin Apache 2.0.

Pêşkeftinêndi Apache CouchDB 3.0 de bicîh kirin:

  • Veavakirina xwerû hatiye zêdekirin.
    Dema ku dest pê dike, pêdivî ye ku bikarhênerê rêvebir naha were destnîşan kirin, bêyî ku server dê bi xeletiyek biqede (dihêle hûn bi destpêkirina serverên ku bi bêhemdî destwerdanê bêyî pejirandinê hiştin çareser bikin). Bangên ji "/_all_dbs" re naha mafên îdarî hewce dikin, û hemî databas ji hêla xwerû ve tenê ji bikarhênerê admin re têne çêkirin têne afirandin (Parametreyên gihîştinê dikarin bi riya objeya "_security" werin guhertin). Bi xwerû, guherandina tiştên di databasa _users de qedexe ye;

  • Zêde kirin şiyana afirandina databasên dabeşkirî (dabeşkirî) yên ji hêla bikarhêner ve hatî destnîşan kirin, dihêle hûn qaîdeyên xwe yên ji bo belavkirina belgeyan li ser beşan diyar bikin (rangeza şikestî). Optimîzasyonên taybetî yên ji bo databasên şikestî li dîtin û navnîşên Mango zêde kirin;
  • Pêk anîn moda dabeşkirina otomatîkî di dema dabeşkirinê de (parvekirin). Di databasê de, naha mimkun e ku meriv daneyan di nav beşan de ji nû ve belav bike, li gorî zêdebûna nirxa q-faktora ku ji bo destnîşankirina asta hilweşandinê tê bikar anîn;
  • Zêde kirin binpergala ken ji bo îndekskirina paşnavê ya otomatîkî û nûvekirina îndeksên duyemîn (JavaScript, Mango, navnîşên lêgerîna nivîsê) bêyî ku bi eşkere dest bi operasyonên avakirina wan bike;
  • Pêvajoya smoosh ku ji bo pakkirina databasa otomatîkî tê bikar anîn bi tevahî ji nû ve hatî nivîsandin;
  • Subsystemek nû tê pêşniyar kirin IO Queue, ji bo guhertina pêşanî I/O ji bo hin operasyonan tê bikar anîn;
  • Pergala ceribandina regresyonê pêk anî;
  • Piştgiriya fermî ji bo platformên arm64v8 (aarch64) û ppc64le (ppc64el) zêde kir;
  • Piştgiriyek ji bo girêdana bi motora JavaScript-ê SpiderMonkey 1.8.5 (şaxa ESR ya Firefox 60) bi piştgirîya çêtir ji bo ES5, ES6 û ES2016+ zêde kir;
  • Motora lêgerînê tê de ye Dreyfus li ser bingeha Lucene, ku bi cîhkirina motorek lêgerînê ya li ser bingeha CouchDB-ê pir hêsan dike;
  • Ji bo têketinê bi karanîna systemd-journald-ê paşnav lê zêde kirin;
  • Mîhenga "[couchdb] single_node" lê zêde kir, dema ku were danîn, CouchDB dê bixweber databasên pergalê biafirîne heke ew winda nebin;
  • Performansa pêvajoya couch_server hate xweşbîn kirin;
  • Sazker ji bo platforma Windows-ê bi girîngî çêtir bûye;
  • Dîtin bi 2^28 (268435456) encaman têne sînorkirin. Ev sînor dikare ji bo dîtinên birêkûpêk û perçekirî bi karanîna vebijarkên query_limit û partition_query_limit di beşa "[query_server_config]" de cuda were mîheng kirin;
  • Têkiliyek rêveberiya girêka herêmî ya HTTP-ê ya cihê, ku li porta torê 5986 hatî destpêkirin, hate rakirin, fonksiyona ku naha bi navgîniya rêveberiya komê ya hevpar peyda dibe;
  • Mezinahiya belgeyê ya herî zêde bi 8 MB kêm bûye, ku piştî nûvekirina ji bo CouchDB 3.0 dibe ku bibe sedema pirsgirêkan bi dubarekirina daneyan ji serverên kevn. Ji bo zêdekirina sînor, hûn dikarin mîhenga "[couchdb] max_document_size" bikar bînin;
  • Paqijkirinek mezin ji taybetmendiyên kevin hatine kirin, wek _replicator û bangên _derveyî, qadên mezinahiya dîskê û mezinahiya_danûstendinê, û vebijarka dereng_commits;
  • Ji bo xebitandina CouchDB naha Erlang/OTP 20.3.8.11+, 21.2.3+ an 22.0.5 hewce dike. Ji hêla teorîkî ve, fonksiyona bi şaxa Erlang / OTP 19 ve tê parastin, lê ew ji hêla ceribandinan ve tê vegirtin.

Werin em bînin bîra xwe ku CouchDB daneyan di forma navnîşek rêzkirî de hilîne û rê dide dubarekirina qismî ya daneyan di navbera çend databasan de di moda master-master de bi tespîtkirin û çareserkirina hevdemî ya rewşên pevçûnê. Her server komek daneya xweya herêmî hildide, ku bi serverên din re hevdengkirî ye, ku dikare offline were girtin û bi domdarî guhertinan dubare bike. Bi taybetî, ev taybetmendî CouchDB ji bo hevdengkirina mîhengên bernameyê di navbera komputerên cihêreng de çareseriyek balkêş dike. Çareseriyên li ser bingeha CouchDB di pargîdaniyên wekî BBC, Apple û CERN de hatine bicîh kirin.

Pirsên CouchDB û nîşankirina daneyan li gorî paradîgmayê têne kirin MapReduce, JavaScriptê bikar tîne da ku mantiqa nimûneya daneyê çêbike. Bingeha pergalê bi Erlang ve hatî nivîsandin, ku ji bo afirandina pergalên belavkirî yên ku gelek daxwazên paralel re xizmet dikin, xweşbînkirî ye. Pêşkêşkara dîtinê bi C-yê hatî nivîsandin û li ser motora JavaScript-ê ya ji projeya Mozilla-yê ye. Gihîştina databasê bi karanîna protokola HTTP-ê bi karanîna RESTful JSON API-ya ku dihêle hûn bigihîjin daneyan, tevî serîlêdanên webê yên ku di gerokê de têne xebitandin, tête kirin.

Yekîneya hilanîna daneyan belgeyek e ku xwediyê nasnameyek, guhertoyek yekta ye û di forma key/nirx de komek qadên binavkirî yên keyfî vedihewîne. Ji bo organîzekirina komek daneya pseudo-sazkirî ya ji belgeyên keyfî (kombûn û hilbijartî), têgeha avakirina dîtinan (nêrîn) tê bikar anîn, da ku diyar bike ka kîjan zimanê JavaScript tê bikar anîn. JavaScript di heman demê de dema ku belgeyên nû di nav dîmenek taybetî de zêde dike fonksiyonan destnîşan dike ku daneyan rast bike.

Source: opennet.ru

Add a comment