Ukukhishwa kwe-DBMS Apache CouchDB 3.0 egxile kumadokhumenti

kwenzeka ukukhishwa kwesizindalwazi esisabalalisiwe esigxile kumadokhumenti I-Apache CouchDB 3.0, okuyingxenye yezinhlelo ze-NoSQL. Imithombo yephrojekthi ukubhebhetheka ilayisensi ngaphansi kwe-Apache 2.0.

Ukuthuthukaisetshenziswe ku-Apache CouchDB 3.0:

  • Ukucushwa okuzenzakalelayo kuthuthukisiwe.
    Lapho uqala, umsebenzisi womlawuli kufanele manje achazwe, ngaphandle kwalokho iseva izovala ngephutha (ikuvumela ukuthi uxazulule izinkinga ngokuvula amaseva ashiya ukufinyelela ngaphandle kokuqinisekisa). Izingcingo eziya ku-"/_all_dbs" manje zidinga amalungelo okuphatha, futhi yonke imininingwane egciniwe idalwe ngokuzenzakalelayo ifinyeleleka kuphela kumsebenzisi ophethe (amapharamitha okufinyelela angashintshwa ngento ethi "_security"). Ngokuzenzakalelayo, ukuhlela izinto kusizindalwazi se-_users akuvunyelwe;

  • Kwengeziwe ikhono lokudala imininingo egciniwe echazwe umsebenzisi ehlukene (ehlukaniswe), okwenza kube nokwenzeka ukuchaza imithetho yakho yokusabalalisa amadokhumenti kuwo wonke amasegimenti (ububanzi be-shard). Kwengezwe ukulungiselelwa okukhethekile kolwazi olushadiwe ekubukweni kweMango nezinkomba;
  • Kwenziwa imodi yokuhlukanisa okuzenzakalelayo ngesikhathi sokuhlukaniswa (sharding). Kusizindalwazi, manje sekungenzeka ukusabalalisa kabusha idatha phakathi kwamasegimenti, kucatshangelwa ukwanda kwenani le-q-factor esetshenziselwa ukunquma izinga lokuhlukaniswa;
  • Kwengeziwe i-ken subsystem yokukhombisa ingemuva elizenzakalelayo nokugcina izinkomba zesibili (i-JavaScript, iMango, izinkomba zosesho lombhalo) zisesikhathini samanje ngaphandle kokwethula ngokusobala imisebenzi yazo yokwakha;
  • Inqubo ebushelelezi esetshenziselwa ukupakishwa kwesizindalwazi okuzenzakalelayo isibhalwe kabusha ngokuphelele;
  • Kuphakanyiswe isistimu engaphansi entsha Umugqa we-IO, esetshenziselwa ukushintsha okubalulekile kwe-I/O kwemisebenzi ethile;
  • Usebenzise uhlelo lokuhlola ukuhlehla;
  • Kwengezwe ukusekelwa okusemthethweni kwezinkundla ze-arm64v8 (aarch64) kanye ne-ppc64le (ppc64el);
  • Ukwesekwa okwengeziwe kokuxhumanisa nenjini ye-JavaScript SpiderMonkey 1.8.5 (ESR igatsha le-Firefox 60) ngokusekelwa okuthuthukisiwe kwe-ES5, ES6 kanye ne-ES2016+;
  • Injini yokusesha ifakiwe Dreyfus kusekelwe ku-Lucene, eyenza kube lula kakhulu ukuthunyelwa kwenjini yokusesha ngokusekelwe ku-CouchDB;
  • I-backend eyengeziwe yokungena usebenzisa i-systemd-journald;
  • Kwengezwe ukulungiselelwa kwe-[couchdb] single_node, uma kusethiwe, i-CouchDB izodala ngokuzenzakalelayo imininingwane yolwazi yesistimu uma ingekho;
  • Ukusebenza kwenqubo ye-couch_server kuthuthukisiwe;
  • Isifaki seplathifomu yeWindows sithuthukiswe kakhulu;
  • Ukubuka kukhawulelwe emiphumeleni engu-2^28 (268435456). Lo mkhawulo ungalungiselelwa ngokuhlukene ukuze ubukeke ovamile futhi ohlukaniswe izingxenye kusetshenziswa izinketho ze-query_limit kanye ne-partition_query_limit esigabeni esithi β€œ[query_server_config]”;
  • I-interface ehlukile ye-HTTP yokuphathwa kwe-node yendawo, eyethulwe ku-network port 5986, isusiwe, ukusebenza kwayo manje sekutholakala ngokusebenzisa isikhombimsebenzisi sokuphatha iqoqo elivamile;
  • Umkhawulo kasayizi wedokhumenti wehliselwe ku-8 MB, okungase kubangele izinkinga ngokuphindaphinda idatha kusuka kumaseva amadala ngemva kokuthuthukela ku-CouchDB 3.0. Ukuze ukhuphule umkhawulo, ungasebenzisa isilungiselelo esithi "[couchdb] max_document_size";
  • Ukuhlanzwa okukhulu kwezici eziphelelwe yisikhathi kuye kwenziwa, njenge-_replicator kanye nezingcingo _zangaphandle, izinkambu ze-disk_size kanye ne-data_size, kanye nenketho yokubambezeleka_kokwenza;
  • Ukusebenzisa i-CouchDB manje kudinga i-Erlang/OTP 20.3.8.11+, 21.2.3+ noma 22.0.5. Ngokwetiyori, ukusebenza ngegatsha le-Erlang/OTP 19 kuyagcinwa, kodwa kuhlanganiswe izivivinyo.

Masikhumbule ukuthi i-CouchDB igcina idatha ngefomethi yohlu olu-odwe futhi ivumela ukuphindaphindwa kwengxenye kwedatha phakathi kolwazi oluningiliziwe kumodi eyinhloko ngokutholwa kanye nokuxazululwa kwezimo zokungqubuzana. Iseva ngayinye igcina isethi yayo yendawo yedatha, evunyelaniswe namanye amaseva, engakhishwa ingaxhunyiwe ku-inthanethi futhi ngezikhathi ezithile iphindaphinde izinguquko. Ikakhulukazi, lesi sici senza i-CouchDB ibe yisixazululo esikhangayo sokuvumelanisa izilungiselelo zohlelo phakathi kwamakhompyutha ahlukene. Izixazululo ezisekelwe ku-CouchDB zenziwe ezinkampanini ezifana ne-BBC, i-Apple ne-CERN.

Imibuzo ye-CouchDB nokukhonjwa kwedatha kungenziwa ngokuya ngepharadigm ImephuNciphisa, kusetshenziswa i-JavaScript ukuze kukhiqizwe isampula yedatha enengqondo. Umongo wesistimu ubhalwe nge-Erlang, elungiselelwe ukudala amasistimu asabalalisiwe anikezela ngezicelo eziningi ezifanayo. Iseva yokubuka ibhalwe ngo-C futhi isekelwe enjinini ye-JavaScript evela kuphrojekthi ye-Mozilla. Ukufinyelela kusizindalwazi kwenziwa kusetshenziswa iphrothokholi ye-HTTP kusetshenziswa i-RESTful JSON API, ekuvumela ukuthi ufinyelele idatha, okuhlanganisa nezinhlelo zokusebenza zewebhu ezisebenza esipheqululini.

Iyunithi yokulondoloza idatha idokhumenti enesihlonzi esiyingqayizivele, inguqulo futhi equkethe isethi engafanele yezinkambu eziqanjwe igama kufomethi yokhiye/inani. Ukuze uhlele isethi yedatha eyakhiwe mbumbulu evela kumadokhumenti angenangqondo (ukuhlanganiswa nokukhethwa), umqondo wokwenza ukubukwa (ukubukwa) usetshenziswa, ukuchaza ukuthi yiluphi ulimi lwe-JavaScript olusetshenziswayo. I-JavaScript ingaphinda ichaze imisebenzi yokuqinisekisa idatha lapho wengeza amadokhumenti amasha ngaphakathi kokubuka okuthile.

Source: opennet.ru

Engeza amazwana