Database management systemet Apache Cassandra 4.0 er tilgængeligt

Apache Software Foundation har præsenteret udgivelsen af den distribuerede DBMS Apache Cassandra 4.0, som tilhører klassen af noSQL-systemer og er designet til at skabe højt skalerbare og pålidelige lagre af enorme datamængder, der opbevares i form af associative arrays (hashes). Udgivelsen af Cassandra 4.0 er blevet anerkendt som klar til produktionsimplementering og er allerede blevet testet i infrastrukturerne hos virksomheder som Amazon, Apple, DataStax, Instaclustr, iland og Netflix med klynger, der omfatter over 1000 noder. Projektkoden er skrevet i Java og distribueres under Apache 2.0-licensen.

Oprindeligt blev Cassandra DBMS udviklet af Facebook og i 2009 overdraget til Apache-fondens tilsyn. Industrielle løsninger baseret på Cassandra er implementeret for at understøtte tjenester hos virksomheder som Apple, Adobe, CERN, Cisco, IBM, HP, Comcast, Disney, eBay, Huawei, Netflix, Sony, Rackspace, Reddit og Twitter. For eksempel har den infrastruktur, som Apple har implementeret baseret på Apache Cassandra, over tusind klynger, der inkluderer 160.000 noder og opbevarer mere end 100 petabyte data. Huawei bruger over 300 klynger af Apache Cassandra, der inkluderer 30.000 noder, mens Netflix har mere end 100 klynger, der dækker 10.000 noder og håndterer mere end en billion forespørgsler om dagen.

Cassandra DBMS kombinerer et fuldstændigt distribueret hash-system, Dynamo, som sikrer næsten lineær skalerbarhed, når datamængden vokser. Cassandra bruger en datalagringsmodel baseret på kolonnefamilier (ColumnFamily), der adskiller sig fra systemer som memcachedb, der kun gemmer data i en nøgle/værdi-bindning, med muligheden for at organisere lagring af hashes med flere niveauer af indlejring. For at forenkle interaktionen med databasen understøttes et struktureret forespørgselssprog, CQL (Cassandra Query Language), som ligner SQL, men er reduceret i funktionalitet. Blandt funktionerne kan nævnes understøttelse af navnerum og kolonnefamilier, oprettelse af indekser via udtrykket 'CREATE INDEX'.

DBMS'en gør det muligt at oprette fejlsikre lagersystemer: data, der placeres i databasen, bliver automatisk replikeret på flere noder i det distribuerede netværk, som kan strække sig over forskellige data centres. Ved nedbrud af en node overtages dens funktioner hurtigt af andre noder. Tilføjelse af nye noder til klyngen og opdatering af Cassandra-versionen sker automatisk, uden ekstra manuel indgriben og omkonfiguration af andre noder. Drivere med CQL-understøttelse er tilgængelige for sprog som Python, Java (JDBC/DBAPI2), Ruby, PHP, C++ og JavaScript (Node.js).

Hovednyhederne:

  • Ydeevne og skalerbarhed er forbedret. Effektiviteten af dataudveksling i SSTable-format (Sorted Strings Table) mellem noderne er øget. Protokollen for intern nudemessaging (Internode Messaging Protocol) er optimeret. Dataoverførsels hastigheden mellem noder er steget med op til 5 gange (primært takket være brugen af Zero Copy teknik og overførsel af SSTables i sin helhed), mens båndbredden ved læse- og skriveoperationer er forbedret med op til 25%. Processen for inkrementel gendannelse er optimeret. Forsinkelser på grund af pause i affaldsindsamleren er reduceret til et par millisekunder.
  • Understøttelse af revisionslog er tilføjet, så det er muligt at overvåge brugerautentifikationsoperationer og alle CQL-forespørgsler.
  • Mulighed for at føre en komplet binær log over forespørgsler er tilføjet, så hele forespørgsels- og svaret trafik kan gemmes. Til styring er der foreslået kommandoerne «nodetool enablefullquerylog|disablefullquerylog|resetfullquerylog», og til analyse leveres værktøjet fqltool. Kommandoer til at konvertere loggen til et læsbart format (Dump), sammenligne aktivitetsudsnit (Compare) og gentage (Replay) til analyse under reproduktion af forhold, der er karakteristiske for den rigtige belastning, er også tilgængelige.
  • Understøttelse af virtuelle tabeller, der ikke afspejler data gemt i SSTables, men giver information via API (ydelsesmetrikker, konfigurationsoplysninger, cacheindhold, oplysninger om tilsluttede klienter osv.), er tilføjet.
  • Effektiviteten af datalagring i komprimeret form er forbedret, hvilket reducerer diskpladsforbruget og øger læseoperationernes ydeevne.
  • Data relateret til systemnøgleområdet (system.*) placeres nu som standard i den første mappe, i stedet for at blive fordelt over alle datamapper, hvilket sikrer, at noden forbliver operational, selv hvis en af de ekstra diske fejler.
  • Eksperimentel støtte til midlertidig replikation (Transient Replication) og lette quorum (Cheap Quorums) er blevet tilføjet. Midlertidige replikater gemmer ikke alle data og bruger inkrementel genopretning for at synkronisere med fulde replikater. Lettere quorum implementerer optimering af skriveoperationer, hvor der ikke skrives til midlertidige replikater, før et tilstrækkeligt antal fulde replikater er tilgængelige.
  • Eksperimentel støtte til Java 11 er blevet tilføjet.
  • Ekstra funktion til sammenligning af alle Merkle-træer (Merkle Tree) er blevet tilføjet. For eksempel vil aktivering af funktionen på et cluster med 3 noder, hvor to replikater er ens, og en er forældet, føre til, at den forældede replika opdateres ved kun at bruge én kopioperation af den aktuelle replika.
  • Nye funktioner currentTimestamp, currentDate, currentTime og currentTimeUUID er blevet tilføjet.
  • Støtte til aritmetiske operationer i CQL-forespørgsler er blevet tilføjet.
  • Det er nu muligt at udføre aritmetiske operationer mellem data af typerne 'timestamp'/'date' og 'duration'.
  • Der er tilføjet en tilstand til at forhåndsvise de datastreams, der er nødvendige for genopretning (nodetool repair —preview) samt muligheden for at kontrollere integriteten af de genoprettede data (nodetool repair —validate).
  • I SELECT-forespørgsler er det nu muligt at behandle elementer i Map og Set.
  • Støtte til parallelisering af den indledende byggefase af materialiserede visninger (cassandra.yaml:concurrent_materialized_view_builders) er blevet tilføjet.
  • Support for sortering efter bestemte metrikker og begrænsning af antallet af returnerede rækker er blevet tilføjet til 'nodetool cfstats' kommandoen.
  • Der er blevet givet indstillinger for at begrænse brugerens forbindelse kun til bestemte datacentre.
  • Mulighed for at begrænse intensiteten (rate limit) af oprettelses- og rydningsoperationer på snapshots er blevet tilføjet.
  • I cqlsh og cqlshlib er støtte til Python 3 blevet implementeret (støtte til Python 2.7 er stadig bevaret).
  • Støtte til Windows-platformen er blevet ophævet. For at køre Cassandra på Windows anbefales det at bruge Linux-miljøer baseret på WSL2 (Windows Subsystem for Linux 2) eller virtualiseringssystemer.

Afspil video


Kilde: opennet.ru
Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere 🔥 Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere | ProHoster