Programování

Zapalte oheň pod Cassandrou s Apache Ignite

Nikita Ivanov je spoluzakladatelem a technickým ředitelem společnosti GridGain Systems.

Apache Cassandra je populární databáze z několika důvodů. Otevřená, distribuovaná databáze NoSQL nemá jediný bod selhání, takže je vhodná pro aplikace s vysokou dostupností. Podporuje replikaci více datových center, což organizacím umožňuje dosáhnout větší odolnosti například ukládáním dat ve více zónách dostupnosti služby Amazon Web Services. Nabízí také masivní a lineární škálovatelnost, takže do libovolného clusteru Cassandra v libovolném datovém centru lze snadno přidat libovolný počet uzlů. Z těchto důvodů společnosti jako Netflix, eBay, Expedia a několik dalších používají Cassandru jako klíčovou součást svého podnikání již mnoho let.

Postupem času, jak se budou vyvíjet obchodní požadavky a rozmístění Cassandry se rozšiřuje, se mnoho organizací ocitne omezeno některými omezeními Cassandry, která zase omezují to, co mohou dělat se svými daty. Apache Ignite, výpočetní platforma v paměti, poskytuje těmto organizacím nový způsob přístupu a správy jejich infrastruktury Cassandra, což jim umožňuje zpřístupnit data Cassandra novým případům použití OLTP a OLAP a současně poskytovat extrémně vysoký výkon.

Omezení Cassandry

Základní omezení Cassandry spočívá v tom, že se jedná o disk, nikoli o databázi v paměti. To znamená, že výkon čtení je vždy omezen specifikacemi I / O, což v konečném důsledku omezuje výkon aplikace a omezuje schopnost dosáhnout přijatelné uživatelské zkušenosti. Zvažte toto srovnání: To, co lze zpracovat v systému v paměti za jedinou minutu, by v systému založeném na disku trvalo desítky let. I při použití flash disků by to trvalo měsíce.

Zatímco Cassandra nabízí velmi rychlý výkon zápisu dat, dosažení optimálního výkonu čtení vyžaduje, aby byla data Cassandra zapisována na disk postupně, takže při čtení může hlava disku skenovat co nejdéle bez latence skákání hlavy z místa na místo . K dosažení tohoto cíle musí být dotazy jednoduché, bez jakýchkoli PŘIPOJITs, SKUPINA VYTVOŘENÁs nebo agregace a data musí být pro tyto dotazy modelována. Proto Cassandra nabízí ne ad hoc nebo vůbec možnost dotazu SQL.

Společnost DataStax, která vyvíjí a poskytuje podporu pro komerční vydání Apache Cassandra, přidala možnost připojení Cassandry k Apache Spark a Apache Solr pro podporu analytiky. Tato strategie však poskytuje omezené výhody, protože použití konektorů je velmi nákladný způsob přístupu k podmnožině dat. Data musí být stále ukládána postupně, jinak bude špatný výkon, protože Cassandra bude muset provést sken celé tabulky, což je přístup scatter / collect zahrnující velkou latenci disku.

Další potenciálně důležité omezení Cassandry je, že podporuje pouze případnou konzistenci. Jeho nedostatek úplného souladu s ACID znamená, že jej nelze použít pro aplikace, které pohybují penězi nebo vyžadují informace o zásobách v reálném čase.

V důsledku těchto omezení organizace, které chtějí použít data uložená v Cassandře pro nové obchodní iniciativy, často zápasí s tím, jak to udělat.

Zadejte Apache Ignite

Apache Ignite je výpočetní platforma v paměti, která může pomoci překonat tato omezení v Cassandře a zároveň se vyhnout režijním nákladům přístupu konektoru. Apache Ignite lze vložit mezi Apache Cassandra a existující aplikační vrstvu beze změn dat Cassandry a pouze s minimálními změnami aplikace. Data Cassandra se načítají do klastru Ignite v paměti a aplikace transparentně přistupuje k datům z paměti RAM namísto z disku, čímž se zrychluje výkon minimálně 1 000x. Data zapsaná aplikací se nejprve zapíší do clusteru Ignite pro okamžitou a průběžnou spotřebu. Poté se zapíše na disk v Cassandře pro trvalé úložiště se synchronními nebo asynchronními zápisy.

Apache Ignite má také stejnou strategii zápisu jako Apache Cassandra, takže uživatelům Cassandry bude připadat povědomý. Stejně jako Cassandra je Ignite otevřeným zdrojovým kódem a jeho uživatelé těží z velké a aktivní komunity s podporou dostupnou prostřednictvím řady komunitních webů. Jako počítačová platforma v paměti však Apache Ignite umožňuje organizacím dělat s daty Cassandry mnohem více - a dělat to rychleji. Zde je návod.

  • Více možností dat - záruky transakcí ANSI SQL-99 a ACID

    Apache Ignite je poháněn motorem kompatibilním s ANSI SQL-99 a nabízí záruky ACID transakcí pro distribuované transakce. Jeho mřížka SQL v paměti poskytuje funkce databáze v paměti a jsou zahrnuta rozhraní ODBC a JDBC. Kombinací Ignite s Apache Cassandra lze na data Cassandry, která byla načtena do Ignite, zapsat jakýkoli typ OLAP nebo složitý dotaz SQL. Ignite lze také provozovat v několika režimech od případné konzistence po úplnou shodu s ACID v reálném čase, což organizacím umožňuje používat data uložená v Cassandře (ale načíst do Ignite) pro řadu nových aplikací a iniciativ.
  • Žádné přestavování dat Cassandry

    Apache Ignite čte z Apache Cassandra a dalších databází NoSQL, takže přesun dat Cassandry do Ignite nevyžaduje žádnou úpravu dat. Datové schéma lze také migrovat přímo do Ignite tak, jak je.
  • Vyšší rychlost pro aplikace náročné na data

    Přesun všech dat Apache Cassandra do RAM nabízí nejrychlejší možný výkon a výrazně zvyšuje rychlost dotazu, protože data nejsou neustále čtena a zapisována na disk. K dosažení významného zvýšení rychlosti je také možné použít Apache Ignite k ukládání do mezipaměti pouze aktivní část dat Cassandry. Indexy Ignite se také nacházejí v paměti, což umožňuje provádět ultrarychlé dotazy SQL na data Cassandry, která byla přesunuta do Ignite.
  • Jednoduché horizontální a vertikální škálování

    Stejně jako Apache Cassandra, i Apache Ignite se snadno horizontálně škáluje přidáním uzlů do klastru Ignite. Nové uzly okamžitě poskytují další paměť pro ukládání dat Cassandry do mezipaměti. Ignite však také snadno škáluje vertikálně. Ignite může využívat celou paměť na uzlu, nejen paměť JVM, a objekty lze definovat tak, aby žily na haldě nebo mimo ni a používaly veškerou paměť na strojích. Tímto způsobem jednoduché zvětšení množství paměti v každém uzlu automaticky změní vertikálně cluster Ignite.
  • Zvýšená dostupnost

    Stejně jako Apache Cassandra je vždy k dispozici výpočetní platforma Apache Ignite typu peer-to-peer. Selhání uzlu nezabrání aplikacím v zápisu a čtení z definovaných záložních uzlů. Redistribuce dat je také automatická, jak roste cluster Ignite. Protože Ignite nabízí sofistikovanou podporu shlukování, jako je detekce a náprava podmínek rozděleného mozku, je kombinovaný systém Cassandra / Ignite dostupnější než samostatný systém Cassandra.
  • Jednodušší a rychlejší než Hadoop

    Mnoho organizací, které by chtěly provádět dotazy SQL do svých dat Apache Cassandra, uvažuje o načtení dat do Hadoop. Nevýhodou tohoto přístupu je, že po vyřešení výzev ETL a synchronizace dat, které vzniknou, by dotazy do Hadoopu byly stále relativně velmi pomalé. Zatímco kombinace Cassandry a Ignite povede také k určitému malému zásahu do výkonu kvůli dalšímu systému a ukládání do mezipaměti, dotazy se přesto budou spouštět s bleskovou rychlostí, takže řešení bude perfektní pro analýzu v reálném čase. A správa vztahu mezi daty Ignite a Cassandra je mnohem jednodušší.

Výzvy pro implementaci Cassandry a Ignite

Jak je uvedeno výše, kombinace Apache Cassandra a Apache Ignite vyžaduje náklady. Přirozeně vás zasáhne výkon - a náklady a údržba - toho, že máte dvě sítě (jako byste přidali jakékoli jiné řešení). Existují náklady na hardware pro nové komoditní servery a dostatek paměti RAM a možná náklady na předplatné pro podnikovou a podporovanou verzi Apache Ignite. Implementace a údržba Ignite může dále vyžadovat, aby si některé organizace najaly další odborné znalosti. Výsledkem je analýza nákladů a přínosů, aby bylo zajištěno, že strategické výhody jakéhokoli nového případu použití spolu se zvýšením výkonu převáží náklady.

Při tomto rozhodování jsou důležité následující úvahy. Za prvé, na rozdíl od předchozí generace počítačových řešení v paměti, která vyžadovala cobling dohromady více produktů, je Apache Ignite plně integrovaným a snadno nasaditelným řešením. Integrace Ignite s Apache Cassandra je obvykle velmi přímočarý proces. Zapalujte snímky mezi Cassandrou a aplikací, jako je Apache Kafka nebo jiný klient, který přistupuje k datům. Ignite obsahuje předem připravený konektor Cassandra, který zjednodušuje postup. Aplikace poté čte a zapisuje z Ignite místo Cassandry, takže vždy přistupuje k datům z paměti místo z disku. Ignite automaticky zpracovává čtení a zápisy do a do Cassandry.

Zadruhé, i když si mnozí lidé stále myslí, že výpočet v paměti je příliš drahý, cena RAM od 60. let klesla přibližně o 30 procent ročně. Přestože RAM je stále dražší než SSD, výkonová výhoda využití terabajtů RAM ve výpočetním klastru v paměti, zejména u rozsáhlých aplikací důležitých pro mise, může učinit výpočet v paměti nákladově nejefektivnějším přístup.

A konečně, Apache Ignite je bezpečná sázka s vyspělou základnou kódů. Vznikl jako soukromý projekt v roce 2007, byl darován Apache Software Foundation v roce 2014 a přibližně o rok později absolvoval projekt nejvyšší úrovně - druhý nejrychlejší projekt Apache, který absolvoval po Apache Spark.

Apache Cassandra je spolehlivé a osvědčené řešení, které může být důležitým prvkem mnoha datových strategií. S Apache Ignite mohou být data Cassandra užitečnější. Paměťová výpočetní platforma Apache Ignite je cenově dostupné a efektivní řešení pro zpřístupnění dat Cassandra pro nové případy použití OLTP a OLAP při splnění extrémních požadavků na výkon dnešních webových aplikací . Kombinované řešení udržuje vysokou dostupnost a horizontální škálovatelnost Cassandry a přidává možnosti dotazů vyhovujících ANSI SQL-99, vertikální škálovatelnost, robustnější konzistenci se zárukami transakcí ACID a další - to vše při poskytování výkonu, který je 1 000krát rychlejší než na disku přístupy.

Nové technologické fórum poskytuje místo, kde můžete prozkoumat a diskutovat o nově vznikajících podnikových technologiích v nebývalé hloubce a šíři. Výběr je subjektivní, založený na našem výběru technologií, které považujeme za důležité a pro čtenáře nejzajímavější. nepřijímá marketingové materiály ke zveřejnění a vyhrazuje si právo upravovat veškerý přispěný obsah. Všechny dotazy zasílejte na [email protected].

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