lëshimi i një baze të dhënash dokumentore të shpërndarë , që i përket klasit të sistemeve NoSQL. Kodet burimore të projektit nën licencën Apache 2.0.
, të realizuara në Apache CouchDB 3.0:
- Siguria e konfigurimit të parazgjedhur është forcuar.
Kur nisni tani, duhet të jetë gjithmonë i përcaktuar përdoruesi admin, pa të cilin serveri do të mbyllet me një gabim (kjo zgjidh problemet e nisjes së serverëve që lënë aksesi pa autentifikim). Për kërkesat për "/_all_dbs" tani kërkohen të drejtat e administratorit, ndërsa të gjithë DB-të, me parazgjedhje, krijohen të disponueshme vetëm për përdoruesin admin (parametrat e aksesit mund të ndryshohen përmes objektit "_security"). Redaktimi i objekteve në DB _users është i ndaluar me parazgjedhje; - mundësia për të krijuar DB të segmentuara (particionuara) sipas dëshirs së përdoruesit, duke lejuar përcaktimin e rregullave për shpërndarjen e dokumenteve sipas segmenteve (shard range). Në pamjet dhe indekset Mango janë shtuar optimizime speciale për DB të segmentuara;
- modaliteti i ndarjes automatike gjatë segmentimit (sharding). Në DB tani është e mundur të riparashtroni të dhënat sipas segmenteve duke marrë parasysh rritjen e faktorëve q që përdoren për të përcaktuar nivelin e ndarjes;
- sistemi ken për indeksimin automatik në sfond dhe për të mbajtur indekset dytësore (JavaScript, Mango, indekset për kërkimin e teksteve) të përditësuara pa nisur eksplicitisht operacionet e ndërtimit të tyre;
- Procesi smoosh është rishkruar plotësisht, i aplikuar për paketa automatike të DB;
- Një nën-sistem i ri , i aplikuar për të ndryshuar prioritetin e hyrjes/ftyres për operacione të caktuara;
- Sistemi i testimit regresiv është realizuar;
- Shtuar mbështetje zyrtare për platformat arm64v8 (aarch64) dhe ppc64le (ppc64el);
- Shtuar mbështetje për lidhjen me motorin JavaScript SpiderMonkey 1.8.5 (në degën ESR të Firefox 60) me mbështetje të përmirësuar për ES5, ES6 dhe ES2016+;
- Në përbërje është përfshirë motorin e kërkimit në bazë të Lucene, që lejon të thjeshtoni ndjeshëm implementimin e sistemit të kërkimit mbi bazën CouchDB;
- Shtuar një backend për mbajtjen e logjeve duke përdorur systemd-journald;
- Shtuar konfigurimin "[couchdb] single_node" që, kur instalohet, CouchDB do të krijojë automatikisht DB-të sistemore nëse ato nuk ekzistojnë;
- Optimizim i performancës së procesit couch_server;
- Instaluesi për platformën Windows është përmirësuar ndjeshëm;
- Madhësia e pamjeve është e kufizuar në 2^28 (268435456) rezultate. Ky kufi mund të rregullohet veçmas për pamjet normale dhe të segmentuara përmes opsioneve query_limit dhe partition_query_limit në seksionin "[query_server_config]";
- Ndërfaqja e veçantë HTTP për menaxhimin e nodit lokal, e cila përmbyllej në portin 5986, funksionaliteti i së cilës tani është i disponueshëm përmes ndërfaqes së përbashkët të menaxhimit të klasterit;
- Madhësia maksimale e dokumentit është zvogëluar në 8 MB, gjë që mund të shkaktojë probleme me replikimin e të dhënave nga serverët e vjetër pas përditësimit në CouchDB 3.0. Për të rritur kufirin mund të përdorni konfigurimin "[couchdb] max_document_size";
- Pastrim i madh i mundësive të vjetra, si thirrjet _replicator dhe _external, fushat disk_size dhe data_size, opsioni delayed_commits;
- Për të nisur CouchDB tani kërkohet Erlang/OTP 20.3.8.11+, 21.2.3+ ose 22.0.5. Teorikisht, mbetet funksionale me degën Erlang/OTP 19, por ajo është e mbuluar me teste.
TĂ« kujtojmĂ« se CouchDB ruan tĂ« dhĂ«nat nĂ« formatin e njĂ« liste tĂ« renditur dhe lejon replikimin e pjesshĂ«m tĂ« tĂ« dhĂ«nave midis disa DB nĂ« modalitetin "master-master" me zbulimin dhe zgjidhjen e situatave konfliktuale nĂ« tĂ« njĂ«jtĂ«n kohĂ«. Ădo server ruhen setin e tij lokal tĂ« tĂ« dhĂ«nave, tĂ« sinkronizuara me serverat e tjerĂ«, tĂ« cilĂ«t mund tĂ« kalojnĂ« nĂ« modalitet offline dhe tĂ« replikojnĂ« periodikisht ndryshimet. NĂ« veçanti, kjo aftĂ«si e bĂ«n CouchDB njĂ« zgjidhje tĂ«rheqĂ«se pĂ«r organizimin e sinkronizimit tĂ« konfigurimeve tĂ« programeve ndĂ«rmjet kompjuterĂ«ve tĂ« ndryshĂ«m. Zgjidhjet e bazuara nĂ« CouchDB janĂ« zbatuar nĂ« kompani si BBC, Apple dhe CERN.
Kërkesat për CouchDB dhe indeksimi i të dhënave mund të kryhen në përputhje me paralelet , duke përdorur gjuhën JavaScript për të formuar logjikën e selektimit të të dhënave. Thelbi i sistemit është shkruar në gjuhën Erlang, e optimizuar për krijimin e shërbimeve që shërbejnë shumë kërkesa paralele të sistemeve të shpërndara. Serveri i pamjeve është shkruar në gjuhën C dhe bazohet në motorin JavaScript nga projekti Mozilla. Qasja në DB realizohet përmes protokollit HTTP duke përdorur RESTful JSON API, duke lejuar qasjen në të dhënat gjithashtu nga aplikacionet web që ekzekutohen në shfletues.
Si njësi e ruajtjes së të dhënave, shërben një dokument me një identifikues unik, version dhe që përmban një grup të çfarëdo emrash fushash në formatin çelës/vlerë. Për organizimin e një grupi të dhënash pseudo-strukturuar nga dokumente të ndryshme (agregimin dhe formimin e mostrave), përdoret koncepti i formimit të paraqitjeve (view), për definimin 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 gjatë shtimit të dokumenteve të reja në kuadër të një paraqitjeje të caktuar.
Burimi: opennet.ru
