Minihaastattelu Oleg Anastasjevin kanssa: Vikasietoisuus Apache Cassandrassa

Minihaastattelu Oleg Anastasjevin kanssa: Vikasietoisuus Apache Cassandrassa

Odnoklassniki on suurin Apache Cassandran käyttäjä RuNetissä ja yksi suurimmista maailmassa. Aloimme käyttää Cassandraa vuonna 2010 kuvien arvioiden tallentamiseen, ja nyt Cassandra hallitsee petabyyttiä dataa tuhansista solmuista, itse asiassa kehitimme jopa oman. NewSQL-tapahtumatietokanta.
12. syyskuuta Pietarin toimistollamme pidetään toinen apassi Cassandralle omistettu tapaaminen. Tilaisuuden pääpuhujana on Odnoklassnikin pääinsinööri Oleg Anastasjev. Oleg on hajautettujen ja vikasietoisten järjestelmien asiantuntija, hän on työskennellyt Cassandran kanssa yli 10 vuotta ja toistuvasti puhui tämän tuotteen ominaisuuksista konferensseissa.

Tapaamisen aattona keskustelimme Olegin kanssa hajautettujen järjestelmien vikasietoisuudesta Cassandralla, kysyimme, mistä hän puhuisi tapaamisessa ja miksi tähän tapahtumaan kannattaa osallistua.

Oleg aloitti ohjelmointiuransa vuonna 1995. Hän kehitti ohjelmistoja pankki-, tietoliikenne- ja kuljetusalalle. Hän on työskennellyt johtavana kehittäjänä Odnoklassnikissa vuodesta 2007 alustatiimissä. Hänen tehtäviinsä kuuluu arkkitehtuurien ja ratkaisujen kehittäminen suuren kuormituksen järjestelmiin, suuriin tietovarastoihin sekä portaalin suorituskykyyn ja luotettavuuteen liittyvien ongelmien ratkaiseminen. Hän myös kouluttaa yrityksen sisällä kehittäjiä.

- Oleg, hei! Toukokuussa tapahtui ensimmäinen tapaaminenApache Cassandralle omistetun osanottajat kertovat keskustelujen jatkuneen myöhään iltaan. Kerro minulle, millaisia ​​vaikutelmia sinulla on ensimmäisestä tapaamisesta?

Kehittäjät, joilla on eri taustat eri yrityksistä, tulivat omalla tuskallaan, odottamattomilla ratkaisuilla ongelmiin ja upeisiin tarinoihin. Suurin osa tapaamisesta onnistui järjestämään keskustelumuodossa, mutta keskusteluja oli niin paljon, että pystyimme koskemaan vain kolmannekseen suunnitelluista aiheista. Kiinnitimme paljon huomiota siihen, miten ja mitä valvomme todellisten tuotantopalveluidemme esimerkin avulla.

Olin kiinnostunut ja pidin siitä todella.

- Ilmoituksesta päätellen toinen tapaaminen on täysin omistettu vikasietoisuudelle, miksi valitsit tämän aiheen?

Cassandra on tyypillinen kiireinen hajautettu järjestelmä, jossa on valtava määrä toimintoja suoran käyttäjien pyyntöjen palvelemisen lisäksi: juorut, vikojen havaitseminen, skeeman muutosten eteneminen, klusterin laajentaminen/vähentäminen, entropian esto, varmuuskopiointi ja palautus jne. Kuten kaikissa hajautetuissa järjestelmissä, laitteiston määrän kasvaessa vikojen todennäköisyys kasvaa, joten Cassandra-tuotantoklusterien toiminta edellyttää syvällistä ymmärrystä sen rakenteesta, jotta voidaan ennustaa käyttäytymistä vikatilanteissa ja operaattorin toimissa. Käytyämme Cassandraa useiden vuosien ajan, me on kertynyt merkittävää asiantuntemusta, jonka olemme valmiita jakamaan, ja haluamme myös keskustella siitä, kuinka liikkeen kollegat ratkaisevat tyypillisiä ongelmia.

— Mitä tarkoitat Cassandrassa vikasietoisuudella?

Ensinnäkin tietysti järjestelmän kyky selviytyä tyypillisistä laitteistovioista: koneiden, levyjen tai verkkoyhteyden katoamisesta solmujen/tietokeskusten kanssa. Mutta itse aihe on paljon laajempi ja sisältää erityisesti toipumisen häiriöistä, mukaan lukien viat, joihin ihmiset ovat harvoin varautuneet, esimerkiksi operaattorivirheet.

— Voitko antaa esimerkin eniten kuormitetusta ja suurimmasta tietoklusterista?

Yksi suurimmista klustereistamme on lahjaklusteri: yli 200 solmua ja satoja teratavuja dataa. Mutta se ei ole eniten ladattu, koska se on hajautetun välimuistin peitossa. Vilkkaimmat klusterimme käsittelevät kymmeniä tuhansia RPS:itä kirjoittamiseen ja tuhansia RPS:itä lukemiseen.

- Vau! Kuinka usein jokin menee rikki?

kyllä ​​koko ajan! Kaiken kaikkiaan meillä on yli 6 tuhatta palvelinta, ja joka viikko vaihdetaan pari palvelinta ja useita kymmeniä levyjä (ottamatta huomioon rinnakkaisia ​​konekannan päivitys- ja laajennusprosesseja). Jokaiselle vikatyypille on selkeät ohjeet mitä tehdä ja missä järjestyksessä, kaikki on automatisoitu aina kun mahdollista, joten viat ovat rutiinia ja 99 % tapauksista tapahtuvat käyttäjien huomaamatta.

– Miten suhtaudut sellaisiin kieltäytymiseen?

Cassandran toiminnan alusta ja ensimmäisistä tapauksista lähtien olemme työstäneet varmuuskopiointi- ja niistä palautusmekanismeja, rakentaneet käyttöönottomenettelyjä, jotka ottavat huomioon Cassandra-klusterien tilan ja esimerkiksi eivät salli solmujen uudelleenkäynnistystä. jos tietojen menetys on mahdollista. Aiomme puhua tästä kaikesta tapaamisessa.

– Kuten sanoit, täysin luotettavia järjestelmiä ei ole olemassa. Millaisiin epäonnistumisiin varaudut ja pystyt käsittelemään?

Jos puhumme Cassandra-klusterien asennuksista, käyttäjät eivät huomaa mitään, jos menetämme useita koneita yhdessä DC:ssä tai yhden kokonaisen DC:n (tätä on tapahtunut). Tasavirtapiirien määrän lisääntyessä harkitsemme aloittavamme toimivuuden varmistamisen kahden DC:n vian sattuessa.

— Mitä Cassandralta mielestäsi puuttuu vikasietokyky?

Cassandra, kuten monet muutkin varhaiset NoSQL-myymälät, vaatii syvällistä ymmärrystä sen sisäisestä rakenteesta ja tapahtuvista dynaamisista prosesseista. Sanoisin, että siitä puuttuu yksinkertaisuus, ennustettavuus ja havaittavuus. Mutta on mielenkiintoista kuulla muiden kokoukseen osallistuneiden mielipiteitä!

Oleg, kiitos paljon, kun otit aikaa vastata kysymyksiin!

Odotamme kaikkia, jotka haluavat kommunikoida Apache Cassandra -toiminta-alan asiantuntijoiden kanssa tapaamiseen 12. Pietarin toimistollamme.

Tule, siitä tulee mielenkiintoista!

Ilmoittaudu tapahtumaan.

Lähde: will.com

Lisää kommentti