Programmēšana

Iededziniet uguni zem Kasandras ar Apache Ignite

Ņikita Ivanovs ir GridGain Systems līdzdibinātājs un CTO.

Apache Cassandra ir populāra datu bāze vairāku iemeslu dēļ. Atvērtā koda, izplatītajai NoSQL datu bāzei nav viena kļūmes punkta, tāpēc tā ir labi piemērota lietojumprogrammām ar augstu pieejamību. Tas atbalsta vairāku datu centru replikāciju, ļaujot organizācijām sasniegt lielāku noturību, piemēram, uzglabājot datus vairākās Amazon Web Services pieejamības zonās. Tas piedāvā arī masīvu un lineāru mērogojamību, tāpēc jebkuru mezglu skaitu jebkurā datu centrā var viegli pievienot jebkuru mezglu skaitu. Šo iemeslu dēļ tādi uzņēmumi kā Netflix, eBay, Expedia un vairāki citi jau daudzus gadus izmanto Cassandra galvenajām uzņēmējdarbības daļām.

Laika gaitā, attīstoties biznesa prasībām un paplašinoties Kasandras izvietošanai, daudzas organizācijas sevi ierobežo daži Kasandras ierobežojumi, kas savukārt ierobežo to, ko viņi var darīt ar saviem datiem. Apache Ignite, atmiņā esoša skaitļošanas platforma, nodrošina šīs organizācijas ar jaunu veidu, kā piekļūt un pārvaldīt savu Cassandra infrastruktūru, ļaujot padarīt Cassandra datus pieejamus jauniem OLTP un OLAP lietošanas gadījumiem, vienlaikus nodrošinot ārkārtīgi augstu veiktspēju.

Kasandras ierobežojumi

Būtisks Kasandras ierobežojums ir tas, ka tā ir balstīta uz disku, nevis atmiņā esoša datu bāze. Tas nozīmē, ka lasīšanas veiktspēju vienmēr ierobežo I / O specifikācijas, kas galu galā ierobežo lietojumprogrammas veiktspēju un ierobežo spēju sasniegt pieņemamu lietotāja pieredzi. Apsveriet šo salīdzinājumu: Tas, ko atmiņas sistēmā var apstrādāt vienā minūtē, uz diska balstītu sistēmu prasītu gadu desmitus. Pat izmantojot zibatmiņas diskus, tas joprojām prasītu mēnešus.

Kaut arī Kasandra piedāvā ļoti ātru datu rakstīšanas veiktspēju, lai sasniegtu optimālu lasīšanas veiktspēju, Kasandras dati ir jāraksta diskā secīgi, lai lasot, diska galva varētu skenēt pēc iespējas ilgāk, bez galvas latentuma lēciena no vietas uz vietu . Lai to panāktu, vaicājumiem jābūt vienkāršiem, bez tiem PIEVIENOTIESs, GRUPA PĒCs vai apkopošana, un dati ir jāmodelē šiem vaicājumiem. Tādējādi Kasandra piedāvā Nr ad hoc vai SQL vaicājumu iespējas vispār.

DataStax, uzņēmums, kas izstrādā un atbalsta Apache Cassandra komerciālu izdevumu, pievienoja iespēju savienot Cassandra ar Apache Spark un Apache Solr, lai atbalstītu analīzi. Tomēr šī stratēģija sniedz ierobežotu labumu, jo savienotāju izmantošana ir ļoti dārgs veids, kā piekļūt datu apakškopai. Dati joprojām ir jānosaka secīgi, vai arī veiktspēja būs slikta, jo Kasandrai būtu jāveic pilnas tabulas skenēšana, kas ir izkliedēšanas / apkopošanas pieeja, kas ietver lielu diska latentumu.

Vēl viens potenciāli svarīgs Kasandras ierobežojums ir tas, ka tas atbalsta tikai iespējamo konsekvenci. Tā kā nav pilnīgas ACID atbilstības, tas nozīmē, ka to nevar izmantot lietojumprogrammām, kas pārvieto naudu vai prasa reāllaika informāciju par krājumiem.

Šo ierobežojumu rezultātā organizācijas, kas vēlas izmantot Kasandrā glabātos datus jaunām biznesa iniciatīvām, bieži cīnās ar to, kā to izdarīt.

Ievadiet Apache Ignite

Apache Ignite ir atmiņā esoša skaitļošanas platforma, kas var palīdzēt pārvarēt šos Kasandras ierobežojumus, vienlaikus izvairoties no pieslēguma pieejas papildu izmaksām. Apache Ignite var ievietot starp Apache Cassandra un esošu lietojumprogrammas slāni bez izmaiņām Cassandra datos un tikai minimālām izmaiņām lietojumprogrammā. Kasandras dati tiek ielādēti atmiņas blokā Ignite, un lietojumprogramma pārredzami piekļūst datiem no RAM, nevis no diska, paātrinot veiktspēju vismaz par 1000x. Lietojumprogrammas rakstītie dati vispirms tiek ierakstīti Ignite klasterī tūlītējam un nepārtrauktam patēriņam. Pēc tam tas tiek ierakstīts diskā Kasandrā pastāvīgai glabāšanai ar sinhroniem vai asinhroniem ierakstiem.

Apache Ignite ir arī tāda pati rakstīšanas stratēģija kā Apache Cassandra, tāpēc tā jutīsies pazīstama Cassandra lietotājiem. Tāpat kā Kasandra, arī Ignite ir atvērta pirmkoda programma, un tās lietotāji gūst labumu no lielas un aktīvas kopienas, un atbalsts ir pieejams vairākās kopienas vietnēs. Apache Ignite kā atmiņā esoša skaitļošanas platforma ļauj organizācijām paveikt daudz vairāk ar saviem Kasandras datiem - un darīt to ātrāk. Lūk, kā.

  • Vairāk datu iespēju - ANSI SQL-99 un ACID transakciju garantijas

    Apache Ignite, kas darbojas ar ANSI SQL-99 saderīgu motoru, piedāvā ACID darījumu garantijas izplatītajiem darījumiem. Tās atmiņā esošais SQL režģis nodrošina atmiņas datu bāzes iespējas, un ir iekļautas ODBC un JDBC API. Apvienojot Ignite ar Apache Cassandra, jebkura veida OLAP vai sarežģītu SQL vaicājumu var rakstīt pret Cassandra datiem, kas ir ielādēti programmā Ignite. Ignite var darbināt arī vairākos režīmos, sākot no konsekvences līdz reāllaika pilnīgai ACID atbilstībai, ļaujot organizācijām izmantot Kasandrā saglabātos datus (bet lasīt Ignite) daudzām jaunām lietojumprogrammām un iniciatīvām.
  • Kasandras dati nav pārveidoti

    Apache Ignite nolasa no Apache Cassandra un citām NoSQL datu bāzēm, tāpēc Cassandra datu pārvietošanai uz Ignite nav nepieciešami datu pārveidojumi. Datu shēmu var arī migrēt tieši uz Ignite, kā tas ir.
  • Lielāks ātrums datu ietilpīgām lietojumprogrammām

    Visu Apache Cassandra datu pārvietošana uz RAM nodrošina ātrāko iespējamo veiktspēju un ievērojami uzlabo vaicājumu ātrumu, jo dati netiek pastāvīgi nolasīti un ierakstīti diskā. Ir arī iespējams izmantot Apache Ignite, lai kešatmiņā saglabātu tikai aktīvo Kasandras datu daļu, lai panāktu ievērojamu ātruma palielināšanu. Arī Ignite indeksi atrodas atmiņā, tādējādi ļaujot veikt ultrasiātrus SQL vaicājumus par Cassandra datiem, kas ir pārvietoti uz Ignite.
  • Vienkārša horizontāla un vertikāla mērogošana

    Tāpat kā Apache Cassandra, arī Apache Ignite mērogojas horizontāli, pievienojot Ignite kopai mezglus. Jaunie mezgli uzreiz nodrošina papildu atmiņu Kasandras datu kešatmiņā. Tomēr Ignite viegli mērogojas arī vertikāli. Ignite var izmantot visu mezgla atmiņu, ne tikai JVM atmiņu, un objektus var definēt, lai tie dzīvotu uz kaudzes vai ārpus tās un izmantotu visu mašīnu atmiņu. Tādā veidā, vienkārši palielinot atmiņas apjomu katrā mezglā, automātiski tiek mērogota Ignite kopa vertikāli.
  • Palielināta pieejamība

    Tāpat kā Apache Cassandra, vienmēr ir pieejama vienādranga Apache Ignite skaitļošanas platforma. Mezgla kļūme neliedz lietojumprogrammām rakstīt un nolasīt no definētiem rezerves mezgliem. Datu pārdale notiek arī automātiski, pieaugot Ignite kopai. Tā kā Ignite piedāvā sarežģītu klasteru atbalstu, piemēram, sadalītu smadzeņu stāvokļu noteikšanu un novēršanu, kombinētā Cassandra / Ignite sistēma ir vairāk pieejama nekā atsevišķa Cassandra sistēma.
  • Vienkāršāk un ātrāk nekā Hadoop

    Daudzas organizācijas, kas vēlētos veikt SQL vaicājumus savos Apache Cassandra datos, apsver iespēju datus ielādēt Hadoop. Šīs pieejas negatīvie aspekti ir tādi, ka pēc radušos ETL un datu sinhronizācijas problēmu risināšanas vaicājumi Hadoop joprojām būtu samērā lēni. Lai gan, apvienojot Kasandru un Ignite, papildus sistēmas un kešatmiņas dēļ būs arī neliels veiktspējas rezultāts, vaicājumi tomēr tiek izpildīti ļoti ātri, padarot risinājumu perfektu reāllaika analīzei. Un pārvaldīt attiecības starp Ignite un Cassandra datiem ir daudz vienkāršāk.

Kasandras un Ignite ieviešanas izaicinājumi

Kā minēts iepriekš, Apache Cassandra un Apache Ignite apvienošana rada izmaksas. Jūs, protams, saņemat triecienu divu tīklu veiktspējā, izmaksās un uzturēšanā (tāpat kā jūs to darītu, pievienojot jebkuru citu risinājumu). Ir aparatūras izmaksas jauniem preču serveriem un pietiekamai RAM, un, iespējams, abonēšanas izmaksas uzņēmuma līmeņa un atbalstītai Apache Ignite versijai. Turklāt, lai ieviestu un uzturētu Ignite, dažām organizācijām var būt nepieciešams pieņemt darbā papildu zināšanas. Tā rezultātā ir vajadzīga izmaksu / ieguvumu analīze, lai nodrošinātu, ka jebkura jauna lietojuma gadījuma stratēģiskie ieguvumi kopā ar darbības pieaugumu atsver izmaksas.

Pieņemot šo lēmumu, svarīgi ir šādi apsvērumi. Pirmkārt, atšķirībā no iepriekšējās atmiņas skaitļošanas risinājumu paaudzes, kas prasīja vairāku produktu bruģēšanu, Apache Ignite ir pilnībā integrēts, viegli izvietojams risinājums. Ignite integrēšana ar Apache Cassandra parasti ir ļoti vienkāršs process. Aizdedziniet slaidus starp Kasandru un lietojumprogrammu, piemēram, Apache Kafka vai citu klientu, kas piekļūst datiem. Ignite ietver iepriekš iebūvētu Cassandra savienotāju, kas vienkāršo procesu. Pēc tam lietojumprogramma Kasandras vietā nolasa un raksta no Ignite, tāpēc tā vienmēr piekļūst datiem no atmiņas, nevis no diska. Ignite automātiski apstrādā lasījumus un ierakstus no Kasandras un tajā.

Otrkārt, lai gan daudzi joprojām domā, ka atmiņā esošā skaitļošana ir pārmērīgi dārga, RAM izmaksas kopš pagājušā gadsimta sešdesmitajiem gadiem ir samazinājušās aptuveni par 30 procentiem gadā. Lai gan RAM joprojām ir par mārciņu dārgāka nekā SSD, veiktspējas ieguvums, izmantojot atmiņu terabaitus atmiņā esošajā skaitļošanas klasterī, it īpaši liela mēroga, kritiski svarīgām lietojumprogrammām, var padarīt atmiņā esošo skaitļošanu visrentablāko. pieeja.

Visbeidzot, Apache Ignite ir droša likme ar nobriedušu koda bāzi. Tas radās kā privāts projekts 2007. gadā, 2014. gadā tika ziedots Apache programmatūras fondam un apmēram gadu vēlāk to absolvēja augstākā līmeņa projektam - otrajam ātrākajam Apache projektam, kuru absolvēja pēc Apache Spark.

Apache Cassandra ir drošs, pārbaudīts risinājums, kas var būt svarīgs daudzu datu stratēģiju elements. Izmantojot Apache Ignite, Cassandra datus var padarīt noderīgākus. Apache Ignite atmiņas skaitļošanas platforma ir pieejams un efektīvs risinājums, lai padarītu Cassandra datus pieejamus jauniem OLTP un OLAP lietošanas gadījumiem, vienlaikus izpildot mūsdienu tīmekļa mēroga lietojumprogrammu ārkārtējās veiktspējas prasības. . Kombinētais risinājums uztur Cassandra augsto pieejamību un horizontālo mērogojamību, vienlaikus pievienojot ANSI SQL-99 saderīgas vaicājumu iespējas, vertikālo mērogojamību, stingrāku konsekvenci ar ACID transakciju garantijām un daudz ko citu - vienlaikus nodrošinot veiktspēju, kas ir 1000x ātrāka nekā diskā pieejas.

Jauno tehnoloģiju forums nodrošina vietu, kur bezprecedenta dziļumā un plašumā izpētīt un pārrunāt topošās uzņēmuma tehnoloģijas. Izvēle ir subjektīva, balstoties uz mūsu izvēlētajām tehnoloģijām, kuras, mūsuprāt, ir svarīgas un interesē lasītājus. nepieņem mārketinga nodrošinājumu publicēšanai un patur tiesības rediģēt visu ieguldīto saturu. Nosūtiet visus jautājumus uz [email protected]