Rhyddhau DBMS Apache CouchDB 3.0 sy'n canolbwyntio ar ddogfennau

cymryd lle rhyddhau cronfa ddata ddosbarthedig sy'n canolbwyntio ar ddogfennau Apache CouchDB 3.0, sy'n perthyn i'r dosbarth o systemau NoSQL. Ffynonellau prosiect lledaenu trwyddedig o dan Apache 2.0.

Gwelliannaugweithredu yn Apache CouchDB 3.0:

  • Mae'r cyfluniad rhagosodedig wedi'i wella.
    Wrth ddechrau, rhaid diffinio'r defnyddiwr gweinyddol nawr, a heb hynny bydd y gweinydd yn terfynu gyda gwall (yn caniatáu ichi ddatrys problemau gyda lansio gweinyddwyr sy'n gadael mynediad heb ddilysu yn anfwriadol). Mae galwadau i "/_all_dbs" bellach angen hawliau gweinyddol, ac mae'r holl gronfeydd data yn cael eu creu yn ddiofyn yn hygyrch i'r defnyddiwr gweinyddol yn unig (gellir newid paramedrau mynediad trwy'r gwrthrych "_security"). Yn ddiofyn, gwaherddir golygu gwrthrychau yn y gronfa ddata _users;

  • Wedi adio y gallu i greu cronfeydd data segmentiedig (rhanedig) wedi'u diffinio gan ddefnyddwyr, gan ei gwneud hi'n bosibl diffinio eich rheolau eich hun ar gyfer dosbarthu dogfennau ar draws segmentau (ystod shard). Ychwanegwyd optimeiddiadau arbennig ar gyfer cronfeydd data wedi'u rhannu at olygfeydd a mynegeion Mango;
  • Gweithredwyd modd rhannu awtomatig yn ystod segmentu (rhannu). Yn y gronfa ddata, mae bellach yn bosibl ailddosbarthu data ymhlith segmentau, gan ystyried cynnydd yng ngwerth y ffactor q a ddefnyddir i bennu lefel y dadansoddiad;
  • Wedi adio ken is-system ar gyfer mynegeio cefndir awtomatig a chadw mynegeion eilaidd (JavaScript, Mango, mynegeion chwilio testun) yn gyfredol heb lansio eu gweithrediadau adeiladu yn benodol;
  • Mae'r broses llyfn a ddefnyddir ar gyfer pecynnu cronfa ddata awtomatig wedi'i hailysgrifennu'n llwyr;
  • Cynigir is-system newydd Ciw IO, a ddefnyddir i newid y flaenoriaeth I/O ar gyfer rhai gweithrediadau;
  • Rhoi system profi atchweliad ar waith;
  • Ychwanegwyd cefnogaeth swyddogol ar gyfer llwyfannau arm64v8 (aarch64) a ppc64le (ppc64el);
  • Cefnogaeth ychwanegol ar gyfer cysylltu â'r injan JavaScript SpiderMonkey 1.8.5 (cangen ESR o Firefox 60) gyda chefnogaeth well ar gyfer ES5, ES6 ac ES2016+;
  • Peiriant chwilio wedi'i gynnwys Dreyfus yn seiliedig ar Lucene, sy'n symleiddio'n fawr y defnydd o beiriant chwilio yn seiliedig ar CouchDB;
  • Ychwanegwyd ôl-ôl ar gyfer logio gan ddefnyddio systemd-journald;
  • Wedi ychwanegu'r gosodiad “[couchdb] single_node”, pan fydd wedi'i osod, bydd CouchDB yn creu cronfeydd data system yn awtomatig os ydynt ar goll;
  • Mae perfformiad y broses couch_server wedi'i optimeiddio;
  • Mae'r gosodwr ar gyfer platfform Windows wedi'i wella'n sylweddol;
  • Mae'r golygfeydd wedi'u cyfyngu i 2^28 (268435456) o ganlyniadau. Gellir ffurfweddu'r terfyn hwn ar wahân ar gyfer golygfeydd rheolaidd a segmentedig gan ddefnyddio'r opsiynau query_limit a partition_query_limit yn yr adran “[query_server_config]”;
  • Mae rhyngwyneb rheoli nodau lleol HTTP ar wahân, a lansiwyd ar borthladd rhwydwaith 5986, wedi'i ddileu, ac mae ei ymarferoldeb bellach ar gael trwy'r rhyngwyneb rheoli clwstwr cyffredin;
  • Mae uchafswm maint y ddogfen wedi'i leihau i 8 MB, a allai achosi problemau gyda dyblygu data o weinyddion hŷn ar ôl uwchraddio i CouchDB 3.0. I gynyddu'r terfyn, gallwch ddefnyddio'r gosodiad “[couchdb] max_document_size”;
  • Mae llawer o nodweddion darfodedig wedi'u glanhau, megis y galwadau _replicator a _external, y meysydd disk_size a data_size, a'r opsiwn delayed_commit;
  • Mae rhedeg CouchDB nawr angen Erlang/OTP 20.3.8.11+, 21.2.3+ neu 22.0.5. Yn ddamcaniaethol, cedwir y swyddogaeth gyda changen Erlang/OTP 19, ond mae profion yn ymdrin â hi.

Gadewch inni gofio bod CouchDB yn storio data mewn fformat rhestr drefnus ac yn caniatáu ailadrodd rhannol o ddata rhwng sawl cronfa ddata mewn modd meistr-feistr gyda chanfod a datrys sefyllfaoedd gwrthdaro ar yr un pryd. Mae pob gweinydd yn storio ei set ddata leol ei hun, wedi'i chydamseru â gweinyddwyr eraill, y gellir eu cymryd all-lein ac ailadrodd newidiadau o bryd i'w gilydd. Yn benodol, mae'r nodwedd hon yn gwneud CouchDB yn ateb deniadol ar gyfer cydamseru gosodiadau rhaglen rhwng gwahanol gyfrifiaduron. Mae datrysiadau seiliedig ar CouchDB wedi cael eu rhoi ar waith mewn cwmnïau fel y BBC, Apple a CERN.

Gellir perfformio ymholiadau CouchDB a mynegeio data yn unol â'r patrwm MapLleihau, gan ddefnyddio JavaScript i gynhyrchu rhesymeg samplu data. Mae craidd y system wedi'i ysgrifennu yn Erlang, sydd wedi'i optimeiddio ar gyfer creu systemau gwasgaredig sy'n gwasanaethu sawl cais cyfochrog. Mae'r gweinydd gweld wedi'i ysgrifennu yn C ac mae'n seiliedig ar yr injan JavaScript o brosiect Mozilla. Mae mynediad i'r gronfa ddata yn cael ei wneud gan ddefnyddio'r protocol HTTP gan ddefnyddio API RESTful JSON, sy'n eich galluogi i gael mynediad at ddata, gan gynnwys o gymwysiadau gwe sy'n rhedeg yn y porwr.

Mae'r uned storio data yn ddogfen sydd â dynodwr, fersiwn unigryw ac yn cynnwys set fympwyol o feysydd a enwir yn y fformat allwedd/gwerth. I drefnu set ffug-strwythuredig o ddata o ddogfennau mympwyol (cyfuno a dethol), defnyddir y cysyniad o ffurfio barn (golygfeydd), i ddiffinio pa iaith JavaScript a ddefnyddir. Gall JavaScript hefyd ddiffinio swyddogaethau i ddilysu data wrth ychwanegu dogfennau newydd o fewn golwg benodol.

Ffynhonnell: opennet.ru

Ychwanegu sylw