Ohjelmointi

Sytytä tuli Cassandran alle Apache Ignite -laitteella

Nikita Ivanov on GridGain Systemsin perustaja ja CTO.

Apache Cassandra on suosittu tietokanta useista syistä. Avoimen lähdekoodin hajautetulla NoSQL-tietokannalla ei ole yhtä vikaantumispistettä, joten se sopii hyvin korkean käytettävyyden sovelluksiin. Se tukee monitietokeskusten replikointia, jolloin organisaatiot voivat saavuttaa paremman joustavuuden esimerkiksi tallentamalla tietoja useille Amazon Web Services -käyttöalueille. Se tarjoaa myös massiivisen ja lineaarisen skaalautuvuuden, joten mikä tahansa määrä solmuja voidaan helposti lisätä mihin tahansa datakeskuksen mihin tahansa Cassandra-klusteriin. Näistä syistä yritykset, kuten Netflix, eBay, Expedia ja monet muut, ovat käyttäneet Cassandraa liiketoimintansa keskeisiin osiin jo vuosien ajan.

Ajan myötä liiketoimintavaatimusten kehittyessä ja Cassandran käyttöönoton laajentuessa monet organisaatiot joutuvat kuitenkin rajoittamaan joitain Cassandran rajoituksia, jotka puolestaan ​​rajoittavat sitä, mitä ne voivat tehdä tiedoillaan. Apache Ignite, muistin sisäinen tietojenkäsittelyalusta, tarjoaa näille organisaatioille uuden tavan käyttää ja hallita Cassandra-infrastruktuuriaan, mikä antaa niille mahdollisuuden tarjota Cassandra-tiedot uusien OLTP- ja OLAP-käyttötapausten saataville samalla kun saavutetaan erittäin korkea suorituskyky.

Cassandran rajoitukset

Perusrajoitus Cassandralle on, että se on levypohjainen, ei muistin sisäinen tietokanta. Tämä tarkoittaa, että I / O-määritykset rajoittavat aina lukutehoa, mikä lopulta rajoittaa sovelluksen suorituskykyä ja rajoittaa kykyä saavuttaa hyväksyttävä käyttökokemus. Harkitse tätä vertailua: Se, mitä voidaan käsitellä muistissa olevassa järjestelmässä yhden minuutin kuluessa, vie vuosikymmeniä levypohjaisessa järjestelmässä. Jopa flash-asemien käyttäminen vie silti kuukausia.

Vaikka Cassandra tarjoaa erittäin nopean tiedon kirjoittamisen suorituskyvyn, optimaalisen lukutehon saavuttaminen edellyttää, että Cassandra-tiedot kirjoitetaan levylle peräkkäin, jotta lukemalla levypää voi skannata niin kauan kuin mahdollista ilman, että pään viive hyppää paikasta toiseen . Tämän saavuttamiseksi kyselyjen on oltava yksinkertaisia, ilman mitään LIITTYÄ SEURAANs, RYHMÄtai aggregaatio, ja tiedot on mallinnettava kyseisille kyselyille. Siksi Cassandra ei tarjoa tapauskohtaisesti tai SQL-kyselyominaisuus ollenkaan.

DataStax, yritys, joka kehittää ja tukee Apache Cassandran kaupallista versiota, lisäsi mahdollisuuden yhdistää Cassandra Apache Sparkiin ja Apache Solriin analytiikan tukemiseksi. Tästä strategiasta on kuitenkin rajallinen hyöty, koska liittimien käyttö on erittäin kallista tapaa päästä osaan tietoa. Tiedot on vielä määritettävä peräkkäin tai suorituskyky on heikko, koska Cassandran olisi suoritettava täydellinen taulukon skannaus, joka on hajonta / kerää-lähestymistapa, johon liittyy paljon levyn viiveitä.

Toinen potentiaalisesti tärkeä Cassandran rajoitus on, että se tukee vain lopullista johdonmukaisuutta. Sen puute täysin ACID-yhteensopivuudesta tarkoittaa, että sitä ei voida käyttää sovelluksiin, jotka liikkuvat rahaa tai tarvitsevat reaaliaikaisia ​​inventaariotietoja.

Näiden rajoitusten seurauksena organisaatiot, jotka haluavat käyttää Cassandraan tallentamiaan tietoja uusiin yritysaloitteisiin, kamppailevat usein sen kanssa.

Kirjoita Apache Ignite

Apache Ignite on muistin sisällä oleva tietojenkäsittelyalusta, joka voi auttaa poistamaan nämä rajoitukset Cassandrassa välttäen kuitenkin liittimen lähestymistavan yleiskustannuksia. Apache Ignite voidaan lisätä Apache Cassandran ja olemassa olevan sovelluskerroksen väliin ilman muutoksia Cassandra-tietoihin ja vain vähän muutoksia sovellukseen. Cassandra-tiedot ladataan Ignite in-memory -ryhmään, ja sovellus käyttää tietoja avoimesti RAM-muistista levyn sijaan, mikä nopeuttaa suorituskykyä vähintään 1000x. Sovelluksen kirjoittamat tiedot kirjoitetaan ensin Ignite-klusteriin välittömään, jatkuvaan kulutukseen. Sen jälkeen se kirjoitetaan Cassandran levylle pysyvää tallennusta varten joko synkronisilla tai asynkronisilla kirjoituksilla.

Apache Ignitella on myös sama kirjoitusstrategia kuin Apache Cassandralla, joten se tuntuu tutulta Cassandran käyttäjille. Kuten Cassandra, Ignite on avoimen lähdekoodin käyttäjä, jonka käyttäjät hyötyvät suuresta ja aktiivisesta yhteisöstä, ja tukea on saatavana useiden yhteisön verkkosivustojen kautta. Apache Ignite mahdollistaa muistin sisäisen tietojenkäsittelyalustana organisaatioiden tehdä paljon enemmän Cassandra-tiedoillaan - ja tehdä sen nopeammin. Näin.

  • Lisää datavaihtoehtoja - ANSI SQL-99 ja ACID-tapahtumatakuut

    ANSI SQL-99 -yhteensopivan moottorin avulla Apache Ignite tarjoaa ACID-tapahtumatakuut hajautetuille tapahtumille. Sen In-Memory SQL Grid tarjoaa muistin sisäiset tietokantatoiminnot, ja ODBC- ja JDBC-sovellusliittymät ovat mukana. Yhdistämällä Ignite Apache Cassandraan voidaan kirjoittaa minkä tahansa tyyppinen OLAP tai monimutkainen SQL-kysely Ignite-sovellukseen ladattuja Cassandra-tietoja vastaan. Igniteä voidaan käyttää myös useissa tiloissa mahdollisesta yhdenmukaisuudesta reaaliaikaiseen, täyteen ACID-vaatimustenmukaisuuteen, jolloin organisaatiot voivat käyttää Cassandraan tallennettuja tietoja (mutta lukea Igniteen) moniin uusiin sovelluksiin ja aloitteisiin.
  • Ei Cassandra-tietojen uudistamista

    Apache Ignite lukee Apache Cassandrasta ja muista NoSQL-tietokannoista, joten Cassandra-tietojen siirtäminen Igniteen ei vaadi tietojen muokkaamista. Tietomalli voidaan myös siirtää suoraan Ignite-tiedostoon sellaisenaan.
  • Suurempi nopeus dataa vaativille sovelluksille

    Kaikkien Apache Cassandra -tietojen siirtäminen RAM-muistiin tarjoaa nopeimman mahdollisen suorituskyvyn ja parantaa kyselyn nopeutta, koska tietoja ei lueta ja kirjoiteta jatkuvasti levylle. On myös mahdollista käyttää Apache Ignitea välimuistiin vain aktiivisen osan Cassandra-tiedoista merkittävän nopeuden lisäämiseksi. Ignite-hakemistot ovat myös muistissa, mikä mahdollistaa ultranopeat SQL-kyselyt Ignite-sovellukseen siirretyille Cassandra-tiedoille.
  • Yksinkertainen vaaka- ja pystysuuntainen skaalaus

    Apache Cassandran tavoin Apache Ignite skaalaa helposti vaakasuunnassa lisäämällä solmut Ignite-klusteriin. Uudet solmut tarjoavat välittömästi lisämuistia Cassandra-tietojen välimuistiin tallentamista varten. Ignite skaalaa kuitenkin helposti myös pystysuunnassa. Ignite voi hyödyntää solmun koko muistia, paitsi JVM-muistia, ja objektit voidaan määrittää elämään kasan päällä tai pois ja käyttämään koneiden koko muistia. Tällä tavoin yksinkertaisesti lisäämällä muistia kussakin solmussa skaalataan Ignite-klusteri automaattisesti pystysuoraan.
  • Lisääntynyt saatavuus

    Apache Cassandran tavoin peer-to-peer Apache Ignite -tietokonealusta on aina käytettävissä. Solmun epäonnistuminen ei estä sovelluksia kirjoittamasta ja lukemasta määritetyistä varmuuskopiosolmuista. Tietojen uudelleenjako on myös automaattista, kun Ignite-klusteri kasvaa. Koska Ignite tarjoaa hienostuneen klustereiden tuen, kuten aivojen halkeamien havaitsemisen ja korjaamisen, yhdistetty Cassandra / Ignite-järjestelmä on enemmän käytettävissä kuin erillinen Cassandra-järjestelmä.
  • Yksinkertaisempi ja nopeampi kuin Hadoop

    Monet organisaatiot, jotka haluavat tehdä SQL-kyselyjä Apache Cassandra -tietoihinsa, harkitsevat tietojen lataamista Hadoopiin. Tämän lähestymistavan haittapuoli on, että ratkaistuttujen ETL- ja tietojen synkronointihaasteiden jälkeen kyselyt Hadoopiin olisivat silti suhteellisen hyvin hitaita. Vaikka Cassandran ja Igniten yhdistäminen johtaa myös pieneen suorituskykyyn lisäjärjestelmän ja välimuistin takia, kyselyt toteutetaan silti räjähtävällä nopeudella, mikä tekee ratkaisusta täydellisen reaaliaikaiseen analyysiin. Ja Ignite- ja Cassandra-tietojen välisen suhteen hallinta on paljon yksinkertaisempaa.

Haasteet Cassandran ja Igniten käyttöönotossa

Kuten edellä todettiin, Apache Cassandran ja Apache Igniten yhdistäminen aiheuttaa kustannuksia. Luonnollisesti saavutat osuman kahden verkon suorituskyvyssä - sekä kustannuksissa että ylläpidossa - (kuten tekisit minkä tahansa muun ratkaisun kanssa). Uusille hyödykepalvelimille ja riittävälle RAM-muistille maksetaan laitteistokustannuksia ja kenties liittymäkustannuksia yritysluokan ja tuetulle Apache Igniten versiolle. Lisäksi Ignite-ohjelmiston käyttöönotto ja ylläpito saattaa vaatia joitain organisaatioita palkkaamaan lisäosaamista. Tuloksena on kustannus- ja hyötyanalyysi, jolla varmistetaan, että uuden käyttötapauksen strategiset edut ja suorituskyvyn voitot ylittävät kustannukset.

Seuraavat seikat ovat tärkeitä tehdessäsi tämän päätöksen. Ensinnäkin, toisin kuin edellisen sukupolven muistin sisäiset tietojenkäsittelyratkaisut, jotka vaativat useiden tuotteiden mukauttamista yhteen, Apache Ignite on täysin integroitu, helppo ottaa käyttöön. Igniten integrointi Apache Cassandraan on tyypillisesti hyvin yksinkertainen prosessi. Sytytä diat Cassandran ja sovelluksen, kuten Apache Kafkan tai muun asiakkaan, välillä, joka käyttää tietoja. Ignite sisältää valmiiksi asennetun Cassandra-liittimen, joka yksinkertaistaa prosessia. Sitten sovellus lukee ja kirjoittaa Ignitesta Cassandran sijaan, joten se käyttää aina tietoja muistista levyltä. Ignite käsittelee automaattisesti lukutiedot ja kirjoitukset Cassandrasta ja sisään.

Toiseksi, vaikka monet ajattelevatkin muistin sisäisen laskennan olevan liian kallista, RAM-muistin kustannukset ovat laskeneet noin 30 prosenttia vuodessa 1960-luvulta lähtien. Vaikka RAM on edelleen puntaa painavammalta kuin SSD-asemat, suorituskyvyn hyöty, kun teratavua RAM-muistia käytetään muistin laskentaryhmässä, erityisesti suurissa, tehtäväkriittisissä sovelluksissa, voi tehdä muistin sisäisestä laskemisesta kustannustehokkaimman lähestyä.

Lopuksi Apache Ignite on turvallinen veto, jossa on kypsä koodipohja. Se syntyi yksityisenä projektina vuonna 2007, lahjoitettiin Apache Software Foundationille vuonna 2014 ja valmistui noin vuotta myöhemmin korkean tason projektille - toiseksi nopein Apache-projekti, joka valmistui Apache Sparkin jälkeen.

Apache Cassandra on vankka, todistettu ratkaisu, joka voi olla tärkeä osa monia tietostrategioita. Apache Ignite -sovelluksen avulla Cassandra-tiedoista voidaan tehdä hyödyllisempiä. Apache Ignite -muistilaskenta-alusta on edullinen ja tehokas ratkaisu Cassandra-datan saataville uusille OLTP- ja OLAP-käyttötapauksille ja täyttää nykypäivän verkkosovellusten äärimmäiset suorituskykyvaatimukset. . Yhdistetty ratkaisu ylläpitää Cassandran korkeaa saatavuutta ja horisontaalista skaalautuvuutta lisäämällä samalla ANSI SQL-99 -yhteensopivia kyselyominaisuuksia, vertikaalisen skaalautuvuuden, vankemman johdonmukaisuuden ACID-transaktiotakuiden kanssa ja muuta - kaikki samalla, kun suorituskyky on 1000x nopeampi kuin levypohjainen lähestymistapoja.

New Tech Forum tarjoaa mahdollisuuden tutkia ja keskustella kehittyvistä yritysteknologioista ennennäkemättömällä syvyydellä ja laajuudella. Valinta on subjektiivinen, perustuu valitsemiemme tekniikoihin, joiden uskomme olevan tärkeitä ja kiinnostavia lukijoille. ei hyväksy markkinointivakuuksia julkaisua varten ja pidättää oikeuden muokata kaikkea lähetettyä sisältöä. Lähetä kaikki tiedustelut osoitteeseen [email protected].

$config[zx-auto] not found$config[zx-overlay] not found