Mini-intervju sa Olegom Anastasjevim: tolerancija grešaka u Apache Cassandra

Mini-intervju sa Olegom Anastasjevim: tolerancija grešaka u Apache Cassandra

Odnoklassniki je najveći korisnik Apache Cassandre na Runetu i jedan od najvećih na svijetu. Počeli smo da koristimo Cassandru 2010. godine za skladištenje ocena fotografija, a sada Cassandra upravlja petabajtima podataka na hiljadama čvorova, čak smo razvili i sopstvene NewSQL transakcijska baza podataka.
Održaćemo 12. septembra u našoj kancelariji u Sankt Peterburgu drugi sastanak posvećen Apači Kasandri. Glavni govornik događaja biće glavni inženjer Odnoklassnika Oleg Anastasjev. Oleg je stručnjak u oblasti distribuiranih i tolerantnih sistema; sa Cassandrom radi više od 10 godina i više puta govorio o karakteristikama korištenja ovog proizvoda na konferencijama.

Uoči susreta, razgovarali smo sa Olegom o toleranciji kvarova distribuiranih sistema sa Cassandrom, pitali o čemu bi on pričao na sastanku i zašto je vredelo prisustvovati ovom događaju.

Oleg je svoju programersku karijeru započeo davne 1995. godine. Razvio je softver u bankarstvu, telekomunikacijama i transportu. Od 2007. radi kao vodeći programer u Odnoklassniki u timu za platformu. Njegove odgovornosti uključuju razvoj arhitekture i rješenja za sisteme visokog opterećenja, velika skladišta podataka i rješavanje problema performansi i pouzdanosti portala. On takođe obučava programere unutar kompanije.

- Oleg, zdravo! U maju održano prvi susret, posvećen Apači Kasandri, učesnici kažu da su diskusije trajale do kasno u noć, recite mi, molim vas, kakvi su vaši utisci sa prvog susreta?

Programeri s različitim iskustvom iz različitih kompanija došli su sa svojim bolom, neočekivanim rješenjima problema i nevjerovatnim pričama. Većinu sastanka uspjeli smo provesti u formatu diskusije, ali je bilo toliko razgovora da smo uspjeli dotaknuti samo trećinu planiranih tema. Veliku pažnju smo posvetili tome kako i šta pratimo na primjeru naših stvarnih proizvodnih usluga.

Bio sam zainteresovan i zaista mi se dopalo.

- Sudeći po najavi, drugi susret će biti u potpunosti posvećen toleranciji grešaka, zašto ste odabrali ovu temu?

Cassandra je tipičan zauzet distribuirani sistem sa ogromnom količinom funkcionalnosti osim direktnog servisiranja korisničkih zahtjeva: ogovaranje, otkrivanje kvarova, propagiranje promjena šeme, proširenje/smanjenje klastera, antientropija, sigurnosna kopija i oporavak, itd. Kao iu svakom distribuiranom sistemu, kako se količina hardvera povećava, povećava se i vjerovatnoća kvarova, tako da rad Cassandra proizvodnih klastera zahtijeva duboko razumijevanje njegove strukture za predviđanje ponašanja u slučaju kvarova i akcija operatera. Nakon mnogo godina korištenja Cassandre, mi stekli značajnu ekspertizu, koje smo spremni podijeliti, a želimo i da razgovaramo o tome kako kolege u radnji rješavaju tipične probleme.

— Kada je u pitanju Kasandra, šta mislite pod tolerancijom grešaka?

Prije svega, naravno, sposobnost sistema da preživi tipične hardverske kvarove: gubitak mašina, diskova ili mrežne povezanosti sa čvorovima/centrima podataka. Ali sama tema je mnogo šira i posebno uključuje oporavak od kvarova, uključujući kvarove za koje su ljudi rijetko spremni, na primjer, greške operatera.

— Možete li dati primjer najopterećenijeg i najvećeg klastera podataka?

Jedan od naših najvećih klastera je klaster poklona: više od 200 čvorova i stotine TB podataka. Ali nije najopterećeniji jer je pokriven distribuiranom keš memorijom. Naši najprometniji klasteri obrađuju desetine hiljada RPS-a za pisanje i hiljade RPS-a za čitanje.

- Vau! Koliko često se nešto pokvari?

Da stalno! Ukupno imamo više od 6 hiljada servera, a svake nedelje se menja par servera i nekoliko desetina diskova (ne uzimajući u obzir paralelne procese nadogradnje i proširenja flote mašina). Za svaku vrstu kvara postoje jasne upute šta i kojim redoslijedom raditi, sve je automatizirano kad god je to moguće, tako da su kvarovi rutinski i u 99% slučajeva nastaju neprimijećeni od strane korisnika.

— Kako se nosite sa takvim odbijanjima?

Od samog početka rada Cassandre i prvih incidenata, radili smo na mehanizmima za sigurnosne kopije i oporavak od njih, izgradili procedure raspoređivanja koje uzimaju u obzir stanje Cassandra klastera i, na primjer, ne dozvoljavaju ponovno pokretanje čvorova ako je moguć gubitak podataka. O svemu tome planiramo razgovarati na sastanku.

— Kao što ste rekli, ne postoje apsolutno pouzdani sistemi. Za koje se vrste neuspjeha pripremate i koje ste u stanju podnijeti?

Ako govorimo o našim instalacijama Cassandra klastera, korisnici neće ništa primijetiti ako izgubimo nekoliko mašina u jednom DC-u ili jednom cijelom DC-u (to se dogodilo). Sa povećanjem broja DC-a, razmišljamo o tome da počnemo osiguravati operativnost u slučaju kvara dva DC-a.

— Šta mislite da Kasandri nedostaje u smislu tolerancije grešaka?

Cassandra, kao i mnoge druge rane NoSQL prodavnice, zahteva duboko razumevanje svoje unutrašnje strukture i dinamičkih procesa koji se dešavaju. Rekao bih da mu nedostaje jednostavnost, predvidljivost i uočljivost. Ali biće zanimljivo čuti mišljenja ostalih učesnika sastanka!

Oleg, puno ti hvala što si odvojio vrijeme da odgovoriš na pitanja!

Čekamo sve koji žele da komuniciraju sa stručnjacima iz oblasti upravljanja Apache Cassandra na sastanku 12. septembra u našoj kancelariji u Sankt Peterburgu.

Dođite, biće zanimljivo!

Prijavite se za događaj.

izvor: www.habr.com

Dodajte komentar