Odnoklassniki je největším uživatelem Apache Cassandra na RuNet a jedním z největších na světě. Cassandru jsme začali používat v roce 2010 k ukládání hodnocení fotografií a nyní Cassandra spravuje petabajty dat na tisících uzlů, ve skutečnosti jsme dokonce vyvinuli vlastní
12. září v naší kanceláři v Petrohradě uspořádáme
V předvečer setkání jsme s Cassandrou hovořili s Olegem o odolnosti distribuovaných systémů vůči chybám, zeptali jsme se, o čem bude na setkání mluvit a proč stojí za to se této akce zúčastnit.
Oleg začal svou programátorskou kariéru v roce 1995. Vyvinul software v bankovnictví, telekomunikacích a dopravě. Od roku 2007 pracuje jako přední vývojář v Odnoklassniki v týmu platformy. Mezi jeho odpovědnosti patří vývoj architektur a řešení pro systémy s vysokou zátěží, velké datové sklady a řešení problémů s výkonem a spolehlivostí portálu. V rámci společnosti také školí vývojáře.
- Olega, ahoj! V květnu proběhla
Vývojáři s různým zázemím z různých společností přišli s vlastní bolestí, nečekanými řešeními problémů a úžasnými příběhy. Většinu meetupu se nám podařilo vést v diskusním formátu, ale diskuzí bylo tolik, že jsme se mohli dotknout jen třetiny plánovaných témat. Velkou pozornost jsme věnovali tomu, jak a co sledujeme na příkladu našich reálných produkčních služeb.
Zaujalo mě to a moc se mi to líbilo.
- Soudě podle oznámení,
Cassandra je typický vytížený distribuovaný systém s obrovským množstvím funkcí nad rámec přímé obsluhy požadavků uživatelů: klepy, detekce selhání, šíření změn schématu, rozšiřování/zmenšování clusteru, antientropie, zálohování a obnova atd. Stejně jako v každém distribuovaném systému platí, že s rostoucím množstvím hardwaru se zvyšuje pravděpodobnost selhání, takže provoz produkčních klastrů Cassandra vyžaduje hluboké porozumění jeho struktuře, aby bylo možné předvídat chování v případě selhání a akcí operátora. Po mnoha letech používání Cassandry jsme
— Když přijde řeč na Cassandru, co myslíte tolerancí chyb?
V první řadě je to samozřejmě schopnost systému přežít typické selhání hardwaru: ztrátu strojů, disků nebo síťové konektivity s uzly/datovými centry. Samotné téma je však mnohem širší a zahrnuje zejména zotavení po selhání, včetně selhání, na které jsou lidé málokdy připraveni, například chyby operátora.
— Můžete uvést příklad nejvíce zatíženého a největšího datového clusteru?
Jedním z našich největších clusterů je cluster dárků: více než 200 uzlů a stovky TB dat. Není však nejvíce zatěžován, protože je pokryt distribuovanou mezipamětí. Naše nejvytíženější clustery zvládají desítky tisíc RPS pro zápis a tisíce RPS pro čtení.
- Páni! Jak často se něco zlomí?
— Jak se vyrovnáváte s takovým odmítnutím?
Od samého začátku fungování Cassandry a prvních incidentů jsme pracovali na mechanismech pro zálohování a obnovu z nich, budovali nasazovací procedury, které zohledňují stav Cassandrových clusterů a například neumožňují restart uzlů pokud je možná ztráta dat. O tom všem plánujeme mluvit na setkání.
— Jak jste řekl, neexistují žádné absolutně spolehlivé systémy. Na jaké typy neúspěchů se připravujete a jste schopni je zvládnout?
Pokud mluvíme o našich instalacích clusterů Cassandra, uživatelé si ničeho nevšimnou, pokud ztratíme několik strojů v jednom DC nebo jeden celý DC (to se stalo). S nárůstem počtu DC přemýšlíme o tom, že začneme zajišťovat provozuschopnost v případě výpadku dvou DC.
— Co si myslíte, že Cassandře chybí, pokud jde o odolnost proti chybám?
Cassandra, stejně jako mnoho jiných raných obchodů NoSQL, vyžaduje hluboké pochopení své vnitřní struktury a probíhajících dynamických procesů. Řekl bych, že tomu chybí jednoduchost, předvídatelnost a pozorovatelnost. Bude ale zajímavé slyšet názory ostatních účastníků setkání!
Olegu, moc vám děkuji, že jste si udělal čas na zodpovězení otázek!
Na všechny, kteří chtějí komunikovat s odborníky v oblasti provozu Apache Cassandra, čekáme na meetupu 12. září v naší petrohradské kanceláři.
Přijďte, bude to zajímavé!