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 uppstart måste administratörsanvändaren nu definieras, utan vilken servern kommer att avsluta sitt arbete med ett felmeddelande (gör det möjligt att lösa problem med att starta servrar som, på grund av oaktsamhet, lämnar åtkomst utan autentisering). Administratörsrättigheter krävs nu för att komma åt "/_all_dbs"-anrop, och alla databaser skapas som standard som endast åtkomliga för administratörsanvändaren (åtkomstparametrar kan ändras via objektet "_security"). Det är som standard förbjudet att redigera objekt i databasen _users.
  • Lagt till möjligheten att skapa användardefinierade partitionerade databaser, vilket gör att du kan definiera dina egna regler för att distribuera dokument över segment (shard-intervall). Speciella optimeringar för partitionerade databaser har lagts till i 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;
  • Lade till stöd för paketering med JavaScript-motorn SpiderMonkey 1.8.5 (Firefox 60 ESR-gren) 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;
  • Значительно улучшен установщик для платформы Windows;
  • 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;
  • CouchDB kräver nu Erlang/OTP 20.3.8.11+, 21.2.3+ eller 22.0.5 för att köras. Erlang/OTP 19 stöds fortfarande teoretiskt, men 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

Köp pålitlig hosting för webbplatser med DDoS-skydd, VPS VDS-servrar 🔥 Köp pålitlig webbhotell med DDoS-skydd, VPS VDS-servrar | ProHoster