Apache Cassandra 4.0 DBMS saatavilla

Apache Software Foundation esitteli hajautetun DBMS:n Apache Cassandra 4.0:n julkaisun, joka kuuluu noSQL-järjestelmien luokkaan ja on suunniteltu luomaan erittäin skaalautuvaa ja luotettavaa tallennustilaa valtaville tietomäärille, jotka on tallennettu assosiatiivisen taulukon (hash) muodossa. Cassandra 4.0 -julkaisua pidetään valmiina tuotantokäyttöön, ja sitä on jo testattu Amazonin, Applen, DataStaxin, Instaclustrin, Ilandin ja Netflixin infrastruktuureissa yli 1000 solmun klustereilla. Projektikoodi on kirjoitettu Java-kielellä ja sitä jaetaan Apache 2.0 -lisenssillä.

Cassandra DBMS on alunperin Facebookin kehittämä ja vuonna 2009 se siirrettiin Apache Foundationin suojelukseen. Cassandraan perustuvia teollisia ratkaisuja on otettu käyttöön tehopalveluihin sellaisilta yrityksiltä kuin Apple, Adobe, CERN, Cisco, IBM, HP, Comcast, Disney, eBay, Huawei, Netflix, Sony, Rackspace, Reddit ja Twitter. Esimerkiksi Applen käyttämässä Apache Cassandra -pohjaisessa tallennusinfrastruktuurissa on yli tuhat klusteria, mukaan lukien 160 tuhatta solmua ja yli 100 petabyyttiä dataa. Huawei käyttää yli 300 Apache Cassandra -klusteria, joissa on 30 tuhatta solmua, ja Netflix käyttää yli 100 klusteria, jotka kattavat 10 tuhatta solmua ja käsittelevät yli biljoonaa pyyntöä päivässä.

Cassandra DBMS yhdistää täysin hajautetun Dynamo-hajautusjärjestelmän, joka tarjoaa lähes lineaarisen skaalautuvuuden datamäärän kasvaessa. Cassandra käyttää sarakeperheeseen (ColumnFamily) perustuvaa tiedontallennusmallia, joka eroaa memcachedb:n kaltaisista järjestelmistä, jotka tallentavat tietoja vain avain-/arvoketjuun, sillä se pystyy järjestämään hajautusten varastoinnin useilla sisäkkäisillä tasoilla. Tietokannan kanssa vuorovaikutuksen yksinkertaistamiseksi tuetaan strukturoitua kyselykieltä CQL (Cassandra Query Language), joka muistuttaa SQL:ää, mutta toiminnallisuudeltaan rajoitettua. Ominaisuuksiin kuuluu nimiavaruuksien ja sarakeperheiden tuki sekä indeksien luominen "CREATE INDEX" -lausekkeella.

DBMS:n avulla voit luoda vikasietoisen tallennustilan: tietokantaan sijoitetut tiedot replikoidaan automaattisesti useisiin hajautetun verkon solmuihin, jotka voivat kattaa eri tietokeskuksia. Kun solmu epäonnistuu, muut solmut poimivat sen toiminnot lennossa. Uusien solmujen lisääminen klusteriin ja Cassandra-version päivittäminen tapahtuu lennossa ilman ylimääräisiä manuaalisia toimenpiteitä tai muiden solmujen uudelleenkonfigurointia. CQL-tuella varustetut ajurit on valmistettu Pythonille, Javalle (JDBC/DBAPI2), Rubylle, PHP:lle, C++:lle ja JavaScriptille (Node.js).

Tärkeimmät innovaatiot:

  • Parempi suorituskyky ja skaalautuvuus. Solmujen välisen tiedonvaihdon tehokkuutta SSTable (Sorted Strings Table) -muodossa on parannettu. Solmujen välinen viestintäprotokolla on optimoitu. Tietovirtojen siirron nopeus solmujen välillä on noussut jopa 5-kertaiseksi (lähinnä Zero Copy -tekniikan käytön ja kokonaisten SST-taulukoiden siirron ansiosta), ja luku- ja kirjoitustoimintojen läpijuoksu on noussut 25 prosenttiin. Inkrementaalinen palautusprosessi on optimoitu. Jätteenkeräyksen keskeytyksestä johtuvat viiveet pienenevät muutamaan millisekuntiin.
  • Lisätty tuki tarkastuslokille, jonka avulla voit seurata käyttäjän todennustoimintoja ja kaikkia suoritettuja CQL-kyselyjä.
  • Lisätty mahdollisuus ylläpitää täyttä binaarista pyyntölokia, jonka avulla voit tallentaa kaiken pyyntö- ja vastausliikenteen. Hallintaa varten ehdotetaan komentoja "nodetool enablefullquerylog|disablefullquerylog|resetfullquerylog", ja fqltool-apuohjelma toimitetaan lokianalyysiin. Käytettävissä on komennot lokin muuntamiseksi luettavaan muotoon (Dump), aktiviteettiosien vertailuun (Compare) ja uudelleen suorittamiseen (Replay) analyysiä varten, joka toistaa todellisen kuorman olosuhteet.
  • Lisätty tuki virtuaalisille taulukoille, jotka eivät heijasta SSTablesiin tallennettuja tietoja, vaan API:n kautta tuotettua tietoa (suorituskykymittarit, asetustiedot, välimuistin sisältö, tiedot yhdistetyistä asiakkaista jne.).
  • Pakatun tiedon tallennuksen tehokkuutta on parannettu, mikä vähentää levytilan kulutusta ja parantaa lukusuorituskykyä.
  • Järjestelmän avainavaruuteen (system.*) liittyvät tiedot sijoitetaan nyt oletusarvoisesti ensimmäiseen hakemistoon sen sijaan, että ne olisi jaettu kaikille tietohakemistoille, jolloin solmu voi pysyä toiminnassa, jos jokin lisälevyistä epäonnistuu.
  • Lisätty kokeellinen tuki ohimenevälle replikaatiolle ja halvoille koorumille. Väliaikaiset replikat eivät tallenna kaikkea dataa ja käyttävät asteittaista palautusta ollakseen yhdenmukaisia ​​täydellisten replikoiden kanssa. Kevyet koorumit toteuttavat kirjoitusoptimoinnin, jossa tilapäisiin replikoihin ei kirjoiteta, ennen kuin riittävä määrä täydellisiä replikoita on saatavilla.
  • Lisätty kokeellinen tuki Java 11:lle.
  • Lisätty kokeellinen vaihtoehto kaikkien Merkle-puiden vertailuun. Esimerkiksi vaihtoehdon käyttöönotto 3-solmun klusterissa, jossa kaksi kopiota on identtinen ja yksi vanhentunut, johtaa vanhentuneen replikan päivitykseen käyttämällä vain yhtä nykyisen replikan kopiointitoimintoa.
  • Lisätty uusia toimintoja currentTimestamp, currentDate, currentTime ja currentTimeUUID.
  • Lisätty tuki aritmeettisille operaatioille CQL-kyselyissä.
  • Mahdollisuus suorittaa aritmeettisia operaatioita tietojen välillä, joiden tyypit ovat "timestamp"/"date" ja "duration".
  • Lisätty tila palautumiseen vaadittavien tietovirtojen esikatseluun (nodetool-korjaus — esikatselu) ja mahdollisuus tarkistaa palautettavien tietojen eheys (nodetool-korjaus —validate).
  • SELECT-kyselyillä on nyt mahdollisuus käsitellä Map- ja Set-elementtejä.
  • Lisätty tuki materialisoituneiden näkymien rakennusvaiheen rinnakkaisuudelle (cassandra.yaml:concurrent_materialized_view_builders).
  • "Nodetool cfstats" -komento on lisännyt tuen lajittelulle tiettyjen mittareiden mukaan ja näytettävien rivien määrän rajoittamiseen.
  • Asetuksilla rajoitetaan käyttäjän yhteys vain tiettyihin tietokeskuksiin.
  • Lisätty mahdollisuus rajoittaa tilannekuvan luonti- ja tyhjennystoimintojen intensiteettiä (nopeusrajoitusta).
  • cqlsh ja cqlshlib tukevat nyt Python 3:a (Python 2.7 on edelleen tuettu).
  • Windows-alustan tuki on lopetettu. Cassandran käyttämiseen Windowsissa on suositeltavaa käyttää WSL2-alijärjestelmän (Windows Subsystem for Linux 2) pohjalta luotuja Linux-ympäristöjä tai virtualisointijärjestelmiä.



Lähde: opennet.ru

Lisää kommentti