utgÄvan av en distribuerad dokumentorienterad databas , som tillhör klassen NoSQL-system. KÀllkoden för projektet Àr licensierad under Apache 2.0.
, genomförd i Apache CouchDB 3.0:
- SÀkerheten har förstÀrkts i standardkonfigurationen.
Vid start mÄste nu anvÀndaren admin definieras, annars avslutas servern med ett fel (detta löser problem med start av servrar som av misstag lÀmnar Ätkomst utan autentisering). För att göra anrop till " /_all_dbs " krÀvs nu administratörsrÀttigheter, och alla databaser skapas som standard tillgÀngliga endast för anvÀndaren admin (Ätkomstparametrar kan Àndras via objektet " _security "). Redigering av objekt i databasen _users Àr förbjuden som standard; - möjlighet att skapa anvÀndardefinierade segmenterade databaser (partitionerade), som ger möjlighet att definiera egna regler för fördelning av dokument över segment (shard range). Speciella optimeringar har lagts till i vyer och Mango-index för segmenterade databaser;
- automatiskt uppdelningslÀge vid segmentering (sharding). Det Àr nu möjligt att omfördela data över segment med beaktande av det ökande q-faktorn, som anvÀnds för att bestÀmma uppdelningsnivÄn;
- ken-subsystemet för automatisk bakgrundsindexering och för att hÄlla sekundÀra index (JavaScript, Mango, text-sökningsindex) aktuella utan att explicit starta byggoperationer;
- Processen för smoosh, som anvÀnds för automatisk paketering av databaser, har helt omarbetats;
- Ett nytt subsystem , som anvÀnds för att Àndra in- och utdata-prioritet för vissa operationer;
- Systemet för regressiv testning har implementerats;
- Officiellt stöd har lagts till för plattformar arm64v8 (aarch64) och ppc64le (ppc64el);
- Stöd har lagts till för bindning till JavaScript-motorn SpiderMonkey 1.8.5 (ESR-grenen av Firefox 60) med förbÀttrat stöd för ES5, ES6 och ES2016+;
- Sökmotorn baserad pÄ Lucene, vilket gör det betydligt enklare att implementera ett söksystem baserat pÄ CouchDB;
- En backend för loggning med systemd-journald har lagts till;
- InstÀllningen "[couchdb] single_node" har lagts till, dÀr mindre systemdatabaser automatiskt skapas av CouchDB om de saknas;
- Prestanda för couch_server-processen har optimerats;
- Installationsprogrammet för Windows-plattformen har betydligt förbÀttrats;
- Visningsstorleken Àr begrÀnsad till 2^28 (268435456) resultat. Denna grÀns kan konfigureras separat för vanliga och segmenterade visningar med hjÀlp av alternativen query_limit och partition_query_limit i avsnittet «[query_server_config]»;
- Den separata HTTP-grÀnssnittet för att hantera den lokala noden, som körs pÄ port 5986, har tagits bort; funktionaliteten Àr nu tillgÀnglig via det gemensamma grÀnssnittet för klusterhantering;
- Maximal dokumentstorlek har reducerats till 8 MB, vilket kan orsaka problem med datareplication frÄn Àldre servrar efter uppgradering till CouchDB 3.0. För att öka grÀnsen kan instÀllningen «[couchdb] max_document_size» anvÀndas;
- En omfattande rensning av förÄldrade funktioner har genomförts, sÄsom anrop av _replicator och _external, fÀlten disk_size och data_size, alternativet delayed_commits;
- För att köra CouchDB krÀvs nu Erlang/OTP 20.3.8.11+, 21.2.3+ eller 22.0.5. Funktionalitet med Erlang/OTP 19 har teoretiskt bevarats, men den Àr tÀckt av tester.
CouchDB lagrar data i ett ordnat lista-format och möjliggör partiell datareplication mellan flera databaser i ett «master-master»-lÀge, med samtidig upptÀckte och lösningar av konfliktsituationer. Varje server lagrar sin lokala uppsÀttning data, som synkroniseras med andra servrar som kan sÀttas i offline-lÀge och periodiskt replikera Àndringar. Denna funktion gör sÀrskilt CouchDB till en attraktiv lösning för att organisera synkronisering av programinstÀllningar mellan olika datorer. Lösningar baserade pÄ CouchDB har implementerats av företag sÄsom BBC, Apple och CERN.
FrÄgor till CouchDB och datainindexering kan utföras enligt paradigmet , med anvÀndning av JavaScript för att formulera logiken för dataval. SystemkÀrnan Àr skriven i Erlang, som Àr optimerad för att hantera mÄnga parallella begÀrningar i distribuerade system. View-servern Àr skriven i C och baseras pÄ JavaScript-motorn frÄn Mozilla-projektet. à tkomst till databasen sker via HTTP-protokollet med hjÀlp av RESTful JSON API, vilket möjliggör Ätkomst till data Àven frÄn webbaserade applikationer som körs i webblÀsaren.
En enhet för datalagring Àr ett dokument som har ett unikt identifierare, en version och innehÄller en godtycklig uppsÀttning namngivna fÀlt i formatet nyckel/vÀrde. För att organisera en pseudo-strukturerad uppsÀttning data frÄn godtyckliga dokument (aggregering och skapande av urval) anvÀnds konceptet att skapa vyer (view), vilket definieras med hjÀlp av JavaScript. Med JavaScript kan man ocksÄ definiera funktioner för att validera data nÀr nya dokument lÀggs till i en viss vy.
KĂ€lla: opennet.ru
