Release av det dokumentorienterade DBMS Apache CouchDB 3.0

tog plats släppa en distribuerad dokumentorienterad databas Apache CouchDB 3.0, som tillhör klassen av NoSQL-system. Projektkällor sprida licensierad under Apache 2.0.

Förbättringarimplementerad i Apache CouchDB 3.0:

  • Standardkonfigurationen har förbättrats.
    Vid start måste administratörsanvändaren nu definieras, utan vilken servern kommer att avslutas med ett fel (låter dig lösa problem med att starta servrar som oavsiktligt lämnar åtkomst utan autentisering). Anrop till "/_all_dbs" kräver nu administratörsrättigheter, och alla databaser skapas som standard endast tillgängliga för administratörsanvändaren (åtkomstparametrar kan ändras via "_security"-objektet). Som standard är det förbjudet att redigera objekt i databasen _users;

  • Lagt till möjligheten att skapa användardefinierade segmenterade (partitionerade) databaser, vilket gör det möjligt att definiera egna regler för distribution av dokument över segment (shard range). Lade till speciella optimeringar för delade databaser till Mango-vyer och index;
  • Genomfört automatiskt delningsläge under segmentering (skärning). I databasen är det nu möjligt att omfördela data mellan segment, med hänsyn tagen till en ökning av värdet på q-faktorn som används för att bestämma nivån på nedbrytningen;
  • Lagt till ken undersystem för automatisk bakgrundsindexering och hålla sekundära index (JavaScript, Mango, textsökningsindex) uppdaterade utan att explicit starta deras konstruktionsoperationer;
  • Smoosh-processen som används för automatisk databaspaketering har skrivits om helt;
  • Nytt delsystem föreslås IO-kö, används för att ändra I/O-prioriteten för vissa operationer;
  • Implementerat ett regressionstestsystem;
  • Lade till officiellt stöd för arm64v8 (aarch64) och ppc64le (ppc64el) plattformar;
  • Tillagt stöd för länkning med JavaScript-motorn SpiderMonkey 1.8.5 (ESR-gren av Firefox 60) med förbättrat stöd för ES5, ES6 och ES2016+;
  • Sökmotor ingår Dreyfus baserat på Lucene, vilket avsevärt förenklar driftsättningen av en sökmotor baserad på CouchDB;
  • Lade till backend för loggning med systemd-journald;
  • Lade till inställningen "[couchdb] single_node", när den är inställd kommer CouchDB automatiskt att skapa systemdatabaser om de saknas;
  • Prestanda för couch_server-processen har optimerats;
  • Installationsprogrammet för Windows-plattformen har förbättrats avsevärt;
  • Visningar är begränsade till 2^28 (268435456) resultat. Denna gräns kan konfigureras separat för vanliga och segmenterade vyer med alternativen query_limit och partition_query_limit i avsnittet "[query_server_config]";
  • Ett separat HTTP-gränssnitt för lokal nodhantering, lanserat på nätverksport 5986, har tagits bort, vars funktionalitet nu är tillgänglig via det gemensamma klusterhanteringsgränssnittet;
  • Den maximala dokumentstorleken har reducerats till 8 MB, vilket kan orsaka problem med datareplikering från äldre servrar efter uppgradering till CouchDB 3.0. För att öka gränsen kan du använda inställningen "[couchdb] max_document_size";
  • En stor sanering av föråldrade funktioner har utförts, såsom _replikatorn och _externa anrop, fälten disk_size och data_size och alternativet delayed_commits;
  • Att köra CouchDB kräver nu Erlang/OTP 20.3.8.11+, 21.2.3+ eller 22.0.5. Teoretiskt sett är funktionaliteten med Erlang/OTP 19-grenen bevarad, men den täcks av tester.

Låt oss komma ihåg att CouchDB lagrar data i ett ordnat listformat och tillåter partiell replikering av data mellan flera databaser i ett master-master-läge med samtidig upptäckt och lösning av konfliktsituationer. Varje server lagrar sin egen lokala uppsättning data, synkroniserad med andra servrar, som kan tas offline och periodiskt replikera ändringar. I synnerhet gör denna funktion CouchDB till en attraktiv lösning för att synkronisera programinställningar mellan olika datorer. CouchDB-baserade lösningar har implementerats i företag som BBC, Apple och CERN.

CouchDB-frågor och dataindexering kan utföras enligt paradigmet MapReduce, använder JavaScript för att generera datasamplingslogik. Systemkärnan är skriven i Erlang, som är optimerad för att skapa distribuerade system som betjänar flera parallella förfrågningar. Visningsservern är skriven i C och är baserad på JavaScript-motorn från Mozilla-projektet. Åtkomst till databasen utförs med hjälp av HTTP-protokollet med hjälp av ett RESTful JSON API, som låter dig komma åt data, inklusive från webbapplikationer som körs i webbläsaren.

Datalagringsenheten är ett dokument som har en unik identifierare, version och innehåller en godtycklig uppsättning namngivna fält i nyckel-/värdeformatet. För att organisera en pseudostrukturerad uppsättning data från godtyckliga dokument (aggregering och urval) används konceptet att bilda vyer (vyer), för att definiera vilket JavaScript-språk som används. JavaScript kan också definiera funktioner för att validera data när nya dokument läggs till i en viss vy.

Källa: opennet.ru

Lägg en kommentar