Programovanie

Zapáľte oheň pod Cassandrou s Apache Ignite

Nikita Ivanov je spoluzakladateľom a technickým riaditeľom spoločnosti GridGain Systems.

Apache Cassandra je populárna databáza z niekoľkých dôvodov. Distribuovaná databáza NoSQL s otvoreným zdrojovým kódom nemá jediný bod zlyhania, takže je vhodná pre aplikácie s vysokou dostupnosťou. Podporuje replikáciu viacerých dátových centier, čo umožňuje organizáciám dosiahnuť väčšiu odolnosť napríklad ukladaním údajov vo viacerých zónach dostupnosti webových služieb Amazon. Ponúka tiež masívnu a lineárnu škálovateľnosť, takže do ľubovoľného klastra Cassandra v ľubovoľnom dátovom centre možno ľahko pridať ľubovoľný počet uzlov. Z týchto dôvodov spoločnosti ako Netflix, eBay, Expedia a niekoľko ďalších používajú Cassandru ako kľúčovú súčasť svojho podnikania už mnoho rokov.

Postupom času, ako sa budú vyvíjať obchodné požiadavky a rozširovanie nasadenia Cassandry, sa však mnoho organizácií stane obmedzením niektorými obmedzeniami Cassandry, ktoré zase obmedzujú to, čo môžu robiť so svojimi dátami. Apache Ignite, výpočtová platforma v pamäti, poskytuje týmto organizáciám nový spôsob prístupu a správy ich infraštruktúry Cassandra, čo im umožňuje sprístupniť údaje Cassandra novým prípadom použitia OLTP a OLAP a zároveň poskytnúť extrémne vysoký výkon.

Obmedzenia Cassandry

Základné obmedzenie Cassandry je, že je založená na disku, nie v pamäti. To znamená, že výkon čítania je vždy obmedzený špecifikáciami I / O, čo v konečnom dôsledku obmedzuje výkon aplikácie a obmedzuje schopnosť dosiahnuť prijateľnú používateľskú skúsenosť. Zvážte toto porovnanie: To, čo je možné spracovať na systéme v pamäti za jednu minútu, by na systéme založenom na diskoch trvalo desaťročia. Aj pri použití flash diskov by to trvalo ešte mesiace.

Zatiaľ čo Cassandra ponúka veľmi rýchly výkon zápisu údajov, dosiahnutie optimálneho výkonu čítania vyžaduje, aby sa údaje Cassandry zapisovali na disk postupne, aby pri čítaní mohla hlava disku skenovať čo najdlhšie bez latencie poskakovania hlavy z miesta na miesto. . Aby ste to dosiahli, musia byť dotazy jednoduché, bez akýchkoľvek PRIPOJTE SAs, SKUPINA PODĽAs alebo agregácia a údaje musia byť pre tieto dotazy modelované. Preto Cassandra ponúka č ad hoc alebo vôbec možnosť dotazu SQL.

Spoločnosť DataStax, ktorá vyvíja a poskytuje podporu pre komerčné vydanie Apache Cassandra, pridala možnosť pripojenia Cassandry k Apache Spark a Apache Solr na podporu analýzy. Táto stratégia však poskytuje obmedzené výhody, pretože použitie konektorov je veľmi nákladný spôsob prístupu k podmnožine údajov. Údaje musia byť uložené postupne, inak bude slabý výkon, pretože Cassandra bude musieť vykonať skenovanie celej tabuľky, čo je prístup rozptylu / zhromažďovania, ktorý zahŕňa veľkú latenciu disku.

Ďalším potenciálne dôležitým obmedzením Cassandry je, že podporuje iba prípadnú konzistenciu. Jeho nedostatok úplného súladu s ACID znamená, že ho nemožno použiť pre aplikácie, ktoré presúvajú peniaze alebo vyžadujú informácie o inventári v reálnom čase.

V dôsledku týchto obmedzení organizácie, ktoré chcú použiť údaje, ktoré majú uložené v Cassandre, pre nové obchodné iniciatívy často zápasia s tým, ako to urobiť.

Zadajte Apache Ignite

Apache Ignite je výpočtová platforma v pamäti, ktorá môže pomôcť prekonať tieto obmedzenia v Cassandre a vyhnúť sa režijným nákladom na konektorový prístup. Apache Ignite je možné vložiť medzi Apache Cassandra a existujúcu aplikačnú vrstvu bez akýchkoľvek zmien v údajoch Cassandry a iba s minimálnymi zmenami v aplikácii. Dáta Cassandry sa načítajú do klastra v pamäti Ignite a aplikácia transparentne pristupuje k údajom z RAM namiesto z disku, čím sa zvyšuje výkon minimálne o 1 000x. Údaje zapísané aplikáciou sa najskôr zapíšu do klastra Ignite na okamžitú a priebežnú spotrebu. Potom sa zapíše na disk v Cassandre na trvalé uloženie so synchrónnym alebo asynchrónnym zápisom.

Apache Ignite má tiež rovnakú stratégiu zápisu ako Apache Cassandra, takže používateľom Cassandry bude pripadať povedomý. Rovnako ako Cassandra, aj Ignite je otvorený zdrojový kód a jeho používatelia profitujú z veľkej a aktívnej komunity s podporou dostupnou prostredníctvom mnohých komunitných webových stránok. Ako výpočtová platforma v pamäti však Apache Ignite umožňuje organizáciám robiť so svojimi dátami Cassandry oveľa viac - a robiť to rýchlejšie. Tu je postup.

  • Viac možností údajov - záruky transakcií ANSI SQL-99 a ACID

    Apache Ignite je poháňaný motorom kompatibilným s ANSI SQL-99 a ponúka distribuované transakcie záruky ACID transakcií. Jej mriežka SQL v pamäti poskytuje funkcie databázy v pamäti a sú súčasťou nej rozhrania ODBC a JDBC. Kombináciou Ignite s Apache Cassandra možno na dáta Cassandry, ktoré boli načítané do Ignite, zapísať akýkoľvek typ OLAP alebo zložitý dotaz SQL. Program Ignite možno prevádzkovať aj vo viacerých režimoch, od prípadnej konzistencie po úplnú zhodu s ACID v reálnom čase, čo umožňuje organizáciám využívať údaje uložené v Cassandre (ale načítané do programu Ignite) na množstvo nových aplikácií a iniciatív.
  • Žiadne prestavovanie údajov Cassandry

    Apache Ignite číta z Apache Cassandra a ďalších databáz NoSQL, takže presun údajov Cassandry do Ignite nevyžaduje žiadnu úpravu údajov. Dátovú schému je tiež možné migrovať priamo do programu Ignite tak, ako je.
  • Vyššia rýchlosť pre aplikácie náročné na dáta

    Presun všetkých údajov Apache Cassandra do pamäte RAM ponúka najrýchlejší možný výkon a výrazne zvyšuje rýchlosť vyhľadávania, pretože dáta sa neustále nečítajú a nezapisujú na disk. Na dosiahnutie výrazného zvýšenia rýchlosti je tiež možné použiť Apache Ignite na medzipamäť iba aktívnej časti dát Cassandry. Indexy Ignite sa tiež nachádzajú v pamäti, čo umožňuje vykonávať ultrarýchle dotazy SQL na dáta Cassandry, ktoré boli presunuté do Ignite.
  • Jednoduché horizontálne a vertikálne škálovanie

    Rovnako ako Apache Cassandra, aj Apache Ignite sa dá ľahko horizontálne škálovať pridaním uzlov do klastra Ignite. Nové uzly okamžite poskytujú ďalšiu pamäť na ukladanie údajov Cassandra do medzipamäte. Ignite však tiež ľahko upravuje mierky zvisle. Ignite môže využívať celú pamäť na uzle, nielen pamäť JVM, a objekty môžu byť definované tak, aby žili na halde alebo mimo nej a využívali všetku pamäť na strojoch. Týmto spôsobom jednoduché zväčšenie množstva pamäte v každom uzle automaticky zväčší klaster Ignite.
  • Zvýšená dostupnosť

    Rovnako ako Apache Cassandra je vždy k dispozícii výpočtová platforma peer-to-peer Apache Ignite. Zlyhanie uzla nezabráni aplikáciám zapisovať a čítať z definovaných záložných uzlov. Redistribúcia údajov je tiež automatická, pretože klaster Ignite rastie. Pretože Ignite ponúka sofistikovanú podporu klastrovania, ako je detekcia a náprava podmienok rozdeleného mozgu, je kombinovaný systém Cassandra / Ignite dostupnejší ako samostatný systém Cassandra.
  • Jednoduchšie a rýchlejšie ako Hadoop

    Mnoho organizácií, ktoré by chceli robiť dotazy SQL do svojich údajov Apache Cassandra, zvážia načítanie údajov do Hadoopu. Nevýhodou tohto prístupu je, že po vyriešení problémov ETL a synchronizácie údajov, ktoré vzniknú, by dotazy na Hadoop boli stále pomerne veľmi pomalé. Zatiaľ čo kombinácia Cassandry a Ignite bude mať za následok aj nejaký malý výkonnostný zásah kvôli dodatočnému systému a ukladaniu do pamäte cache, dotazy sa napriek tomu budú spúšťať rýchlosťou blesku, takže riešenie bude ideálne pre analýzu v reálnom čase. A riadenie vzťahu medzi údajmi Ignite a Cassandra je oveľa jednoduchšie.

Výzvy pri implementácii Cassandry a Ignite

Ako bolo uvedené vyššie, kombinácia Apache Cassandra a Apache Ignite vyžaduje náklady. Prirodzene vám spôsobí zásah do výkonu - a nákladov a údržby - to, že máte dve siete (ako by to bolo pri pridaní iného riešenia). Pre nové komoditné servery a dostatok pamäte RAM sú náklady na hardware a možno aj náklady na predplatné pre podnikovú a podporovanú verziu Apache Ignite. Implementácia a údržba programu Ignite môže ďalej vyžadovať, aby si niektoré organizácie vyžadovali ďalšie odborné znalosti. Vo výsledku je zaručená analýza nákladov a prínosov, aby sa zabezpečilo, že strategické výhody každého nového prípadu použitia spolu so zvýšením výkonu prevážia náklady.

Pri tomto rozhodovaní sú dôležité nasledujúce úvahy. Po prvé, na rozdiel od predchádzajúcej generácie výpočtových riešení v pamäti, ktoré vyžadovali združenie viacerých produktov, je Apache Ignite plne integrovaným a ľahko nasaditeľným riešením. Integrácia Ignite s Apache Cassandra je zvyčajne veľmi priamy proces. Zapaľte snímky medzi Cassandrou a aplikáciou, ako je Apache Kafka alebo iný klient, ktorá pristupuje k údajom. Ignite obsahuje vopred zostavený konektor Cassandra, ktorý zjednodušuje postup. Aplikácia potom namiesto Cassandry číta a zapisuje z Ignite, takže k údajom vždy pristupuje z pamäte namiesto z disku. Ignite automaticky spracuje čítania a zápisy do a do Cassandry.

Po druhé, aj keď si mnohí stále myslia, že výpočty v pamäti sú príliš drahé, náklady na RAM od 60. rokov klesli približne o 30 percent ročne. Aj keď je RAM stále o jednu libru drahšia ako disky SSD, vďaka výhode využitia terabajtov RAM v výpočtovom klastri v pamäti, najmä pri rozsiahlych rozhodujúcich aplikáciách, môže byť výpočet v pamäti nákladovo najefektívnejší prístup.

Napokon, Apache Ignite je bezpečná stávka so zrelým kódovým základom. Vznikol ako súkromný projekt v roku 2007, bol darovaný Nadácii Apache Software Foundation v roku 2014 a zhruba o rok neskôr bol ukončený na projekt najvyššej úrovne - druhý najrýchlejší projekt Apache, ktorý absolvoval program Apache Spark.

Apache Cassandra je spoľahlivé a osvedčené riešenie, ktoré môže byť dôležitým prvkom mnohých dátových stratégií. S Apache Ignite môžu byť dáta Cassandra užitočnejšie. Počítačová platforma Apache Ignite v pamäti je cenovo dostupné a efektívne riešenie, ako sprístupniť dáta Cassandra pre nové prípady použitia OLTP a OLAP a zároveň splniť extrémne výkonnostné požiadavky dnešných webových aplikácií. . Kombinované riešenie zachováva vysokú dostupnosť a horizontálnu škálovateľnosť Cassandry, pričom pridáva možnosti dopytovania v súlade s ANSI SQL-99, vertikálnu škálovateľnosť, robustnejšiu konzistenciu so zárukami transakcií ACID a ďalšie - to všetko pri súčasnom poskytovaní výkonu, ktorý je 1 000x rýchlejší ako na disku prístupy.

Nové technologické fórum poskytuje miesto na preskúmanie a diskusiu o vznikajúcich podnikových technológiách v nebývalej hĺbke a šírke. Výber je subjektívny, založený na našom výbere technológií, ktoré považujeme za dôležité a pre čitateľov najväčší záujem. neprijíma marketingové záruky na zverejnenie a vyhradzuje si právo upravovať všetok prispievaný obsah. Všetky otázky posielajte na adresu [email protected].

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