Programavimas

Uždekite ugnį po Kasandra su „Apache Ignite“

Nikita Ivanovas yra vienas iš „GridGain Systems“ įkūrėjų ir CTO.

„Apache Cassandra“ yra populiari duomenų bazė dėl kelių priežasčių. Atvirojo kodo, paskirstytoje „NoSQL“ duomenų bazėje nėra vieno gedimo taško, todėl ji puikiai tinka didelio prieinamumo programoms. Jis palaiko kelių duomenų centrų replikaciją, leidžiančią organizacijoms pasiekti didesnį atsparumą, pavyzdžiui, saugant duomenis keliose „Amazon Web Services“ prieinamumo zonose. Ji taip pat siūlo didžiulį ir linijinį mastelį, todėl bet kurį mazgų skaičių galima lengvai pridėti prie bet kurio „Cassandra“ sankaupos bet kuriame duomenų centre. Dėl šių priežasčių tokios kompanijos kaip „Netflix“, „eBay“, „Expedia“ ir dar kelios kitos įmonės „Cassandra“ daugelį metų naudoja pagrindinėms savo verslo dalims.

Tačiau laikui bėgant, vystantis verslo reikalavimams ir plečiantis „Cassandra“ diegimui, daugelį organizacijų riboja kai kurie „Cassandra“ apribojimai, kurie savo ruožtu riboja tai, ką jie gali padaryti su savo duomenimis. Kompiuterinė atminties platforma „Apache Ignite“ suteikia šioms organizacijoms naują būdą pasiekti ir valdyti savo „Cassandra“ infrastruktūrą, leidžiant „Cassandra“ duomenis padaryti prieinamus naujiems OLTP ir OLAP naudojimo atvejams, tuo pačiu užtikrinant ypač aukštą našumą.

Kasandros apribojimai

Esminis „Cassandra“ apribojimas yra tai, kad jis yra pagrįstas disku, o ne atmintyje esančia duomenų baze. Tai reiškia, kad skaitymo našumas visada ribojamas įvesties / išvesties specifikacijomis, galiausiai ribojant programos našumą ir ribojant galimybes pasiekti priimtiną vartotojo patirtį. Apsvarstykite šį palyginimą: tai, ką atminties sistemoje galima apdoroti per vieną minutę, diske pagrįstoje sistemoje užtruks dešimtmečius. Net naudojant „flash“ diskus, tai vis tiek užtruktų mėnesius.

Nors „Cassandra“ siūlo labai greitą duomenų rašymo našumą, norint pasiekti optimalų skaitymo našumą, „Cassandra“ duomenys turi būti nuosekliai įrašomi į diską, kad skaitant, disko galvutė galėtų nuskaityti kuo ilgiau be galvos vėlavimo iš vietos į vietą . Norėdami tai pasiekti, užklausos turi būti paprastos, be jokių PRISIJUNGTIs, GRUPUOTI PAGALarba apibendrinimas, o duomenys turi būti modeliuojami pagal šias užklausas. Vadinasi, „Cassandra“ siūlo Nr ad hoc arba SQL užklausos galimybė.

„DataStax“, įmonė, kurianti ir palaikanti komercinį „Apache Cassandra“ leidimą, pridėjo galimybę prijungti „Cassandra“ prie „Apache Spark“ ir „Apache Solr“, kad palaikytų analizę. Tačiau ši strategija teikia ribotą naudą, nes jungčių naudojimas yra labai brangus būdas pasiekti duomenų pogrupį. Duomenys vis tiek turi būti išdėstyti nuosekliai, arba jų veikimas bus prastas, nes „Cassandra“ reikės atlikti pilną stalo nuskaitymą, o tai yra išsklaidymo / kaupimo metodas, apimantis daug disko delsos.

Kitas potencialiai svarbus „Cassandra“ apribojimas yra tas, kad jis palaiko tik galimą nuoseklumą. Tai, kad nėra visiškai laikomasi ACID, reiškia, kad jis negali būti naudojamas programoms, kurios perkelia pinigus ar reikalauja informacijos apie inventorių realiuoju laiku.

Dėl šių apribojimų organizacijos, norinčios naudoti Kasandroje saugomus duomenis naujoms verslo iniciatyvoms, dažnai kovoja, kaip tai padaryti.

Įveskite „Apache Ignite“

„Apache Ignite“ yra atmintyje esanti skaičiavimo platforma, kuri gali padėti įveikti šiuos „Cassandra“ apribojimus, išvengiant pridėtinės prieigos išlaidų. „Apache Ignite“ galima įterpti tarp „Apache Cassandra“ ir esamo programos sluoksnio be jokių „Cassandra“ duomenų pakeitimų ir tik minimalių programos pakeitimų. „Cassandra“ duomenys įkeliami į atminties grupę „Ignite“, o programa skaidriai prieina duomenis iš RAM, o ne iš disko, pagreitindama našumą bent 1 000 kartų. Programos parašyti duomenys pirmiausia įrašomi į Ignite grupę, kad būtų galima nedelsiant ir nuolat suvartoti. Tada jis įrašomas į diską „Cassandra“, kad būtų galima nuolat saugoti sinchroninius arba asinchroninius įrašus.

„Apache Ignite“ taip pat turi tą pačią rašymo strategiją, kaip ir „Apache Cassandra“, todėl „Cassandra“ vartotojams tai atrodys pažįstama. Kaip ir „Cassandra“, „Ignite“ yra atviro kodo programa, o jos vartotojams naudinga didelė ir aktyvi bendruomenė, kurią galima palaikyti per daugybę bendruomenės svetainių. Tačiau kaip „atminties“ skaičiavimo platforma „Apache Ignite“ leidžia organizacijoms padaryti daug daugiau su „Cassandra“ duomenimis - ir tai padaryti greičiau. Štai kaip.

  • Daugiau duomenų parinkčių - ANSI SQL-99 ir ACID operacijų garantijos

    Su „ANSI SQL-99“ suderinamu varikliu veikianti „Apache Ignite“ siūlo ACID operacijų garantijas paskirstytoms operacijoms. „In-Memory SQL Grid“ suteikia atminties duomenų bazės galimybes, o įtraukiamos ODBC ir JDBC API. Derinant „Ignite“ su „Apache Cassandra“, bet kokio tipo OLAP arba sudėtinga SQL užklausa gali būti parašyta prieš „Cassandra“ duomenis, kurie buvo įkelti į „Ignite“. „Ignite“ taip pat galima valdyti keliais režimais nuo galimo nuoseklumo iki visiško ACID laikymosi realiuoju laiku, leidžiant organizacijoms naudoti „Cassandra“ saugomus duomenis (bet skaitytus į „Ignite“) daugybei naujų programų ir iniciatyvų.
  • Jokių „Cassandra“ duomenų pertvarkymo

    „Apache Ignite“ skaito iš „Apache Cassandra“ ir kitų „NoSQL“ duomenų bazių, todėl perkeliant „Cassandra“ duomenis į „Ignite“ nereikia keisti duomenų. Duomenų schemą taip pat galima perkelti tiesiai į „Ignite“ tokią, kokia yra.
  • Didesnis duomenų srauto programų greitis

    Visų „Apache Cassandra“ duomenų perkėlimas į RAM suteikia kuo greitesnį našumą ir labai pagerina užklausos greitį, nes duomenys nėra nuolat skaitomi ir rašomi į diską. Taip pat galima naudoti „Apache Ignite“, kad talpykloje būtų išsaugota tik aktyvioji „Cassandra“ duomenų dalis, kad būtų pasiektas reikšmingas greičio padidėjimas. „Ignite“ indeksai taip pat yra atmintyje, todėl galima atlikti itin greitas SQL užklausas apie „Cassandra“ duomenis, kurie buvo perkelti į „Ignite“.
  • Paprastas horizontalus ir vertikalus mastelio keitimas

    Kaip ir „Apache Cassandra“, „Apache Ignite“ lengvai keičia horizontaliai mastelį, pridedant mazgų prie „Ignite“ grupės. Naujieji mazgai iškart suteikia papildomos atminties „Cassandra“ duomenims išsaugoti. Tačiau „Ignite“ taip pat lengvai keičia vertikaliai. „Ignite“ gali naudoti visą mazgo atmintį, ne tik JVM atmintį, o objektus galima apibrėžti, kad jie gyventų su kaupu ar be jo ir naudotų visą mašinų atmintį. Tokiu būdu paprasčiausiai padidinus atminties kiekį kiekviename mazge, automatiškai mastelis „Ignite“ vertikaliai keičiamas.
  • Padidėjęs prieinamumas

    Kaip ir „Apache Cassandra“, „Apache Ignite“ kompiuterių platforma visada yra prieinama. Mazgo gedimas netrukdo programoms rašyti ir skaityti iš apibrėžtų atsarginių mazgų. Duomenys perskirstomi taip pat automatiškai, kai auga „Ignite“ klasteris. Kadangi „Ignite“ siūlo sudėtingą grupių palaikymą, pvz., Aptikti ir ištaisyti smegenų suskaidymą, kombinuota „Cassandra“ / „Ignite“ sistema yra labiau prieinama nei atskira „Cassandra“ sistema.
  • Paprasčiau ir greičiau nei Hadoopas

    Daugelis organizacijų, norinčių pateikti SQL užklausas į savo „Apache Cassandra“ duomenis, apsvarsto galimybę įkelti duomenis į „Hadoop“. Šio požiūrio trūkumas yra tas, kad, išsprendus kylančius ETL ir duomenų sinchronizavimo iššūkius, užklausos į „Hadoop“ vis tiek būtų gana lėtos. Nors derinant „Cassandra“ ir „Ignite“, dėl papildomos sistemos ir talpyklos taip pat bus pasiektas nedidelis našumas, tačiau užklausos vis tiek vykdomos žaibiškai, todėl sprendimas puikiai tinka analizuoti realiuoju laiku. Ir valdyti „Ignite“ ir „Cassandra“ duomenų santykius yra daug paprasčiau.

„Cassandra“ ir „Ignite“ įgyvendinimo iššūkiai

Kaip minėta aukščiau, „Apache Cassandra“ ir „Apache Ignite“ derinimas reikalauja didelių išlaidų. Natūralu, kad turite du tinklų našumą, sąnaudas ir priežiūrą (kaip tai darytumėte pridėdami bet kokį kitą sprendimą). Naujų prekių serverių ir pakankamai RAM atminties kaina yra aparatinė įranga, galbūt įmonės lygio ir palaikomos „Apache Ignite“ versijos prenumeratos kaina. Be to, įgyvendinant ir palaikant „Ignite“ gali tekti kai kurioms organizacijoms samdyti papildomą patirtį. Dėl to reikalinga sąnaudų ir naudos analizė, siekiant užtikrinti, kad bet kokio naujo naudojimo atvejo strateginė nauda kartu su veiklos padidėjimu nusvertų išlaidas.

Priimant šį sprendimą svarbu atsižvelgti į šiuos aspektus. Pirma, skirtingai nei ankstesnės kartos kompiuteriniai sprendimai atmintyje, kuriems reikėjo sutvarkyti kelis produktus, „Apache Ignite“ yra visiškai integruotas, lengvai įdiegiamas sprendimas. „Ignite“ integravimas su „Apache Cassandra“ paprastai yra labai paprastas procesas. Uždega skaidres tarp „Cassandra“ ir programos, pvz., „Apache Kafka“ ar kito kliento, kuris pasiekia duomenis. „Ignite“ apima iš anksto pastatytą „Cassandra“ jungtį, kuri supaprastina procesą. Tada programa skaito ir rašo iš „Ignite“, o ne „Cassandra“, todėl ji visada pasiekia duomenis iš atminties, o ne iš disko. „Ignite“ automatiškai tvarko skaitymus ir įrašymus iš Kasandros ir į ją.

Antra, nors daugelis vis dar mano, kad kompiuteris atmintyje yra pernelyg brangus, nuo 1960-ųjų RAM kaina per metus sumažėjo maždaug 30 proc. Nors RAM dar yra svaras už svarą brangiau nei SSD, naudingumas terabaitais operatyviosios atminties atminties kompiuterių klasteryje, ypač didelio masto, kritiškai svarbioms programoms, gali padaryti atminties skaičiavimą ekonomiškiausiu metodas.

Galiausiai, „Apache Ignite“ yra saugus statymas su brandžiu kodų pagrindu. Jis atsirado kaip privatus projektas 2007 m., Buvo paaukotas „Apache“ programinės įrangos fondui 2014 m., O maždaug po metų jį baigė aukščiausio lygio projektui - antras greičiausias „Apache“ projektas, kurį baigė po „Apache Spark“.

„Apache Cassandra“ yra tvirtas, patikrintas sprendimas, kuris gali būti gyvybiškai svarbus daugelio duomenų strategijų elementas. Naudojant „Apache Ignite“, „Cassandra“ duomenys gali būti naudingesni. „Apache Ignite“ atminties skaičiavimo platforma yra prieinamas ir efektyvus sprendimas, kad „Cassandra“ duomenys būtų prieinami naujiems OLTP ir OLAP naudojimo atvejams, tuo pačiu tenkinant kraštutinius šių dienų žiniatinklio programų reikalavimus. . Kombinuotas sprendimas palaiko aukštą „Cassandra“ prieinamumą ir horizontalų mastelį, tuo pačiu pridėdamas ANSI SQL-99 suderinamas užklausos galimybes, vertikalų mastelį, tvirtesnį nuoseklumą su ACID operacijų garantijomis ir dar daugiau - tuo pačiu užtikrinant 1000 kartų didesnį našumą nei diske. požiūriai.

Naujųjų technologijų forumas suteikia galimybę tyrinėti ir aptarti besiformuojančios įmonės technologijas beprecedentiame gylyje. Atranka yra subjektyvi, atsižvelgiant į mūsų pasirinktas technologijas, kurios, mūsų manymu, yra svarbios ir labiausiai domina skaitytojus. nepriima rinkodaros užtikrinimo priemonės paskelbimui ir pasilieka teisę redaguoti visą pateiktą turinį. Visus klausimus siųskite adresu [email protected]