Apache Cassandra 4.0 DBMS tillgängligt

Apache Software Foundation presenterade lanseringen av det distribuerade DBMS Apache Cassandra 4.0, som tillhör klassen av noSQL-system och är designat för att skapa mycket skalbar och pålitlig lagring av enorma mängder data lagrade i form av en associativ array (hash). Cassandra 4.0-utgåvan anses vara redo för produktionsimplementering och har redan testats i infrastrukturerna för Amazon, Apple, DataStax, Instaclustr, iland och Netflix med kluster på mer än 1000 noder. Projektkoden är skriven i Java och distribueras under Apache 2.0-licensen.

Cassandra DBMS utvecklades ursprungligen av Facebook och överfördes 2009 under Apache Foundations överinseende. Industriella lösningar baserade på Cassandra har distribuerats för att driva tjänster från företag som Apple, Adobe, CERN, Cisco, IBM, HP, Comcast, Disney, eBay, Huawei, Netflix, Sony, Rackspace, Reddit och Twitter. Till exempel har den Apache Cassandra-baserade lagringsinfrastrukturen som används av Apple mer än tusen kluster, inklusive 160 tusen noder och lagrar mer än 100 petabyte data. Huawei använder mer än 300 Apache Cassandra-kluster, omfattande 30 tusen noder, och Netflix använder mer än 100 kluster, som täcker 10 tusen noder och behandlar mer än en biljon förfrågningar per dag.

Cassandra DBMS kombinerar ett fullt distribuerat Dynamo-hashsystem, som ger nästan linjär skalbarhet när datavolymen ökar. Cassandra använder en datalagringsmodell baserad på en kolumnfamilj (ColumnFamily), som skiljer sig från system som memcachedb, som endast lagrar data i en nyckel/värdekedja, genom möjligheten att organisera lagring av hash med flera nivåer av kapsling. För att förenkla interaktion med databasen stöds det strukturerade frågespråket CQL (Cassandra Query Language), som påminner om SQL, men har reducerad funktionalitet. Funktioner inkluderar stöd för namnutrymmen och kolumnfamiljer, och skapandet av index med hjälp av uttrycket "CREATE INDEX".

DBMS låter dig skapa felbeständig lagring: data som placeras i databasen replikeras automatiskt till flera noder i ett distribuerat nätverk, som kan sträcka sig över olika datacenter. När en nod misslyckas, plockas dess funktioner upp i farten av andra noder. Att lägga till nya noder till klustret och uppdatera Cassandra-versionen görs i farten, utan ytterligare manuella ingrepp eller omkonfigurering av andra noder. Drivrutiner med CQL-stöd är förberedda för Python, Java (JDBC/DBAPI2), Ruby, PHP, C++ och JavaScript (Node.js).

Huvudsakliga innovationer:

  • Förbättrad prestanda och skalbarhet. Effektiviteten för datautbyte i SSTable-format (Sorted Strings Table) mellan noder har förbättrats. Internode Messaging Protocol har optimerats. Hastigheten för att överföra dataströmmar mellan noder har ökat upp till 5 gånger (främst på grund av användningen av Zero Copy-tekniken och överföringen av hela SSTables), och genomströmningen för läs- och skrivoperationer har ökat till 25%. Den inkrementella återställningsprocessen har optimerats. Latenser på grund av att sophämtning pausas reduceras till några millisekunder.
  • Lade till stöd för en granskningslogg som låter dig spåra användarautentiseringsoperationer och alla utförda CQL-frågor.
  • Lade till möjligheten att upprätthålla en fullständig binär förfrågningslogg, så att du kan spara all förfrågnings- och svarstrafik. För hantering föreslås kommandona "nodetool enablefullquerylog|disablefullquerylog|resetfullquerylog", och verktyget fqltool tillhandahålls för logganalys. Kommandon tillhandahålls för att konvertera loggen till en läsbar form (dump), jämföra aktivitetsskivor (jämför) och återexekvering (Replay) för analys som återger villkoren i den verkliga belastningen.
  • Lade till stöd för virtuella tabeller som inte återspeglar data lagrade i SSTables, utan informationsutmatning via API:t (prestandamått, inställningsinformation, cache-innehåll, information om anslutna klienter, etc.).
  • Effektiviteten för lagring av komprimerad data har förbättrats, vilket minskar diskutrymmesförbrukningen och förbättrar läsprestanda.
  • Data relaterade till systemets nyckelutrymme (system.*) placeras nu i den första katalogen som standard istället för att distribueras över alla datakataloger, vilket gör att noden kan fortsätta att fungera om en av de extra diskarna misslyckas.
  • Lade till experimentellt stöd för transient replikering och billiga kvorum. Tillfälliga repliker lagrar inte all data och använder inkrementell återställning för att överensstämma med fullständiga repliker. Lätta kvorum implementerar skrivoptimering där inga skrivningar görs till tillfälliga repliker förrän en tillräcklig uppsättning fullständiga repliker är tillgängliga.
  • Lade till experimentellt stöd för Java 11.
  • Lade till experimentellt alternativ för att jämföra alla Merkle-träd. Om du till exempel aktiverar alternativet på ett kluster med tre noder där två repliker är identiska och en är inaktuell kommer det att resultera i en uppdatering av den inaktuella repliken med endast en kopieringsoperation av den aktuella repliken.
  • Lade till nya funktioner currentTimestamp, currentDate, currentTime och currentTimeUUID.
  • Lade till stöd för aritmetiska operationer i CQL-frågor.
  • Möjligheten att utföra aritmetiska operationer mellan data med typerna "tidsstämpel"/"datum" och "varaktighet" tillhandahålls.
  • Lade till ett läge för förhandsgranskning av dataströmmar som krävs för återställning (nodetool repair —preview) och möjligheten att kontrollera integriteten hos data som återställs (nodetool repair —validate).
  • SELECT-frågor har nu möjlighet att bearbeta Map- och Set-element.
  • Lade till stöd för att parallellisera det inledande konstruktionsstadiet av materialiserade vyer (cassandra.yaml:concurrent_materialized_view_builders).
  • Kommandot "nodetool cfstats" har lagt till stöd för sortering efter vissa mätvärden och begränsning av antalet rader som visas.
  • Inställningar tillhandahålls endast för att begränsa användarens anslutning till vissa datacenter.
  • Lade till möjligheten att begränsa intensiteten (hastighetsgränsen) för att skapa och rensa ögonblicksbilder.
  • cqlsh och cqlshlib stöder nu Python 3 (Python 2.7 stöds fortfarande).
  • Support för Windows-plattformen har upphört. För att köra Cassandra på Windows rekommenderas det att använda Linux-miljöer skapade på basis av WSL2-undersystemet (Windows Subsystem for Linux 2) eller virtualiseringssystem.



Källa: opennet.ru

Lägg en kommentar