lëshimi i një baze të dhënash dokumentesh të shpërndara , që i përket klasës së sistemeve NoSQL. Kodet burimore të projektit nën licencën Apache 2.0.
, të zbatuara në Apache CouchDB 3.0:
- Forcimi i mbrojtjes në konfigurimin e parazgjedhur është përforcuar.
Tani, kur ndizni serverin, duhet të përcaktohet përdoruesi admin, pa të cilin serveri do të dalë me një gabim (kjo zgjidh problemet e nisjes së serverëve, duke lënë aksese pa autentifikim nga moskujdesi). Tani kërkohet që të keni të drejta administratori për të bërë thirrje në " /_all_dbs", dhe të gjitha bazat e të dhënave krijohen të aksesueshme vetëm për përdoruesin admin (parametrat e aksesit mund të ndryshohen përmes objektit "_security"). Redaktimi i objekteve në bazën e të dhënave _users është i ndaluar nga parazgjedhja; - mundësia e krijimit të bazave të dhënash të segmentuara nga përdoruesi, që lejon përcaktimin e rregullave të veta për shpërndarjen e dokumenteve sipas segmenteve (shard range). Optimizime të veçanta janë shtuar në pamjet dhe indekset Mango për bazat e dhënash të segmentuara;
- rezhimi automatik i ndarjes gjatë segmentimit. Tani në bazën e dhënash është e mundur rishpërndarja e të dhënave sipas segmenteve duke marrë parasysh rritjen e faktorëve q, të aplikuar për të përcaktuar nivelin e ndarjes;
- nsubsystemi ken për indeksimin automatik në sfond dhe për të mbajtur në përditësim indekset sekondare (JavaScript, Mango, indekset për kërkimin e tekstit) pa e nxjerrë shprehimisht në veprim operacionet e ndërtimit të tyre;
- Procesi i smoosh është shkruar plotësisht nga fillimi, i përdorur për paketimin automatik të bazës së dhënash;
- Një nën sistem i ri është propozuar , i aplikuar për të ndryshuar prioritetin e hyrjes/daljes për disa operacione;
- Një sistem testimi regresiv është zbatuar;
- Shtohet mbështetje zyrtare për platformat arm64v8 (aarch64) dhe ppc64le (ppc64el);
- Shtohet mbështetje për lidhjen me motorin JavaScript SpiderMonkey 1.8.5 (dega ESR e Firefox 60) me mbështetje të përmirësuar për ES5, ES6 dhe ES2016+;
- Në përbërje është përfshirë motori i kërkimit bazuar në Lucene, që thjeshton ndjeshëm implementimin e sistemit të kërkimit të bazuar në CouchDB;
- Shtohet një backend për mbajtjen e logeve duke përdorur systemd-journald;
- Shtohet konfigurimi "[couchdb] single_node" kur instalohet, duke krijuar automatikisht bazat e dhënash të sistemit të nevojshme, nëse ato mungojnë;
- Optimizimi i performancës së procesit couch_server është kryer;
- Instaluesi për platformën Windows është përmirësuar ndjeshëm;
- Madhësia e paraqitjeve është e kufizuar në 2^28 (268435456) rezultate. Ky kufizim mund të konfigurohet ndaras për paraqitjet e zakonshme dhe të segmentuara me opsionet query_limit dhe partition_query_limit në seksionin «[query_server_config]»;
- Interfaci i veçantë HTTP për menaxhimin e nyjës lokale, i nisur në portin rrjetor 5986, është hequr, ndërsa funksionaliteti i tij tani është i disponueshëm përmes ndërfaqes së përbashkët të menaxhimit të klastereve;
- Maksimumi i madhësisë së dokumentit është reduktuar në 8 MB, që mund të sjellë probleme me replikimin e të dhënave nga serverë të vjetër pas përditësimit në CouchDB 3.0. Për të rritur këtë kufizim mund të përdoret cilësimi «[couchdb] max_document_size»;
- ĂshtĂ« bĂ«rĂ« njĂ« pastrim i madh i mundĂ«sive tĂ« vjetra, si thirrjet _replicator dhe _external, fushat disk_size dhe data_size, si dhe opsioni delayed_commits;
- Për të ekzekutuar CouchDB tani kërkohet Erlang/OTP 20.3.8.11+, 21.2.3+ ose 22.0.5. Teorikisht është ruajtur funksionaliteti me degën Erlang/OTP 19, por kjo është testuar.
KujtojmĂ« se CouchDB ruan tĂ« dhĂ«nat nĂ« njĂ« format tĂ« renditur dhe lejon replikimin e pjesshĂ«m tĂ« tĂ« dhĂ«nave midis disa DB-ve nĂ« modin «master-master» me zbulimin dhe zgjidhjen e situatave konfliktuale. Ădo server ruan grupin e vet lokal tĂ« tĂ« dhĂ«nave, i sinkronizuar me serverĂ« tĂ« tjerĂ«, tĂ« cilĂ«t mund tĂ« kalojnĂ« nĂ« modin offline dhe periodikisht tĂ« replikojnĂ« ndryshimet. Kjo mundĂ«si e bĂ«n CouchDB njĂ« zgjidhje tĂ«rheqĂ«se pĂ«r organizimin e sinkronizimit tĂ« cilĂ«simeve tĂ« programeve midis kompjuterĂ«ve tĂ« ndryshĂ«m. Zgjidhjet e bazuara nĂ« CouchDB janĂ« implementuar nĂ« kompani si BBC, Apple dhe CERN.
Kërkesat ndaj CouchDB dhe indeksimi i të dhënave mund të realizohen sipas paradigmës , duke përdorur gjuhën JavaScript për të formuar logjikën e selektimit të të dhënave. Niveli i sistemit është shkruar në gjuhën Erlang, e optimizuar për krijimin e shërbimeve që trajtojnë shumë kërkesa paralele në sisteme të shpërndara. Serveri i Pamjeve është shkruar në gjuhën C dhe bazohet në motorin JavaScript nga projekti Mozilla. Qasja në DB bëhet përmes protokollit HTTP duke përdorur RESTful JSON API, që lejon aksesin në të dhëna edhe nga aplikacione të ekzekutuara në shfletues.
Si një njësi ruajtjeje, shërben një dokument që ka një identifikues unik, version dhe përmban një grup të rastësishëm fushash të emëruara në formatin çelës/vlerë. Për të organizuar një grup të dhënash pseudo-strukturuar nga dokumente të rastësishme (mbledhjeje dhe formimin e mostrave) aplikohet koncepti i formimit të pamjeve (view), për përcaktimin e të cilave përdoret gjuha JavaScript. Në JavaScript gjithashtu mund të përcaktohen funksione për të verifikuar saktësinë e të dhënave kur shtohen dokumente të reja brenda një pamjeje të caktuar.
Burimi: opennet.ru
