Utgivningen av dokumentorienterad databas Apache CouchDB 3.0

HÀndelse genomförd utgÄvan av en distribuerad dokumentorienterad databas Apache CouchDB 3.0, som tillhör klassen NoSQL-system. KÀllkoden för projektet sprids Àr licensierad under Apache 2.0.

FörbÀttringar, 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;
  • Tillagd 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;
  • Implementerad 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;
  • Tillagd 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 IO Queue, 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 Dreyfus 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 MapReduce, 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

Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar đŸ”„ Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar | ProHoster