Mahojiano madogo na Oleg Anastasyev: uvumilivu wa makosa katika Apache Cassandra

Mahojiano madogo na Oleg Anastasyev: uvumilivu wa makosa katika Apache Cassandra

Odnoklassniki ndiye mtumiaji mkubwa zaidi wa Apache Cassandra kwenye RuNet na mmoja wapo kubwa zaidi ulimwenguni. Tulianza kutumia Cassandra mnamo 2010 kuhifadhi ukadiriaji wa picha, na sasa Cassandra inasimamia petabytes ya data kwenye maelfu ya nodi, kwa kweli, hata tulitengeneza yetu. Hifadhidata ya shughuli ya NewSQL.
Mnamo Septemba 12 katika ofisi yetu ya St mkutano wa pili wa Apache Cassandra. Msemaji mkuu wa hafla hiyo atakuwa mhandisi mkuu wa Odnoklassniki Oleg Anastasyev. Oleg ni mtaalam katika uwanja wa mifumo iliyosambazwa na inayostahimili makosa; amekuwa akifanya kazi na Cassandra kwa zaidi ya miaka 10 na kurudia. alizungumza kuhusu vipengele vya kutumia bidhaa hii kwenye mikutano.

Katika usiku wa mkutano huo, tulizungumza na Oleg juu ya uvumilivu wa makosa ya mifumo iliyosambazwa na Cassandra, tukauliza atazungumza nini kwenye mkutano na kwa nini inafaa kuhudhuria hafla hii.

Oleg alianza kazi yake ya programu nyuma mnamo 1995. Alitengeneza programu katika benki, telecom, na usafiri. Amekuwa akifanya kazi kama msanidi programu anayeongoza huko Odnoklassniki tangu 2007 kwenye timu ya jukwaa. Majukumu yake ni pamoja na kuendeleza usanifu na ufumbuzi wa mifumo ya juu ya mzigo, ghala kubwa za data, na kutatua matatizo ya utendaji wa portal na kuegemea. Pia hufundisha watengenezaji ndani ya kampuni.

- Oleg, habari! Mnamo Mei ilifanyika mkutano wa kwanza, iliyojitolea kwa Apache Cassandra, washiriki wanasema kuwa majadiliano yaliendelea hadi usiku sana, tafadhali niambie, ni nini maoni yako ya mkutano wa kwanza?

Waendelezaji wenye asili tofauti kutoka kwa makampuni mbalimbali walikuja na maumivu yao wenyewe, ufumbuzi usiotarajiwa wa matatizo na hadithi za kushangaza. Tulifaulu kufanya sehemu kubwa ya mkutano katika muundo wa majadiliano, lakini kulikuwa na mijadala mingi sana hivi kwamba tuliweza tu kugusa thuluthi moja ya mada zilizopangwa. Tulizingatia sana jinsi na kile tunachofuatilia kwa kutumia mfano wa huduma zetu halisi za uzalishaji.

Nilipendezwa na niliipenda sana.

- Kwa kuzingatia tangazo, mkutano wa pili itakuwa imejitolea kabisa kwa uvumilivu wa makosa, kwa nini umechagua mada hii?

Cassandra ni mfumo wa kawaida unaosambazwa wenye shughuli nyingi na idadi kubwa ya utendakazi zaidi ya kuhudumia maombi ya mtumiaji moja kwa moja: porojo, ugunduzi wa kutofaulu, uenezaji wa mabadiliko ya schema, upanuzi/upunguzaji wa nguzo, anti-entropy, chelezo na urejeshaji, n.k. Kama ilivyo katika mfumo wowote uliosambazwa, kadiri idadi ya vifaa inavyoongezeka, uwezekano wa kushindwa huongezeka, kwa hivyo utendakazi wa nguzo za uzalishaji wa Cassandra unahitaji uelewa wa kina wa muundo wake kutabiri tabia katika kesi ya kushindwa na vitendo vya waendeshaji. Baada ya kutumia Cassandra kwa miaka mingi, sisi wamekusanya utaalamu muhimu, ambayo tuko tayari kushiriki, na pia tunataka kujadili jinsi wenzake katika duka kutatua matatizo ya kawaida.

- Inapokuja kwa Cassandra, unamaanisha nini kwa uvumilivu wa makosa?

Kwanza kabisa, bila shaka, uwezo wa mfumo wa kuishi kushindwa kwa vifaa vya kawaida: kupoteza kwa mashine, disks, au uunganisho wa mtandao na nodes / vituo vya data. Lakini mada yenyewe ni pana zaidi na hasa ni pamoja na kupona kutokana na kushindwa, ikiwa ni pamoja na kushindwa ambayo watu hawajaandaliwa mara chache, kwa mfano, makosa ya operator.

- Je, unaweza kutoa mfano wa nguzo iliyopakiwa zaidi na kubwa zaidi ya data?

Mojawapo ya makundi yetu makubwa zaidi ni kundi la zawadi: zaidi ya nodi 200 na mamia ya TB ya data. Lakini sio kubeba zaidi, kwani inafunikwa na cache iliyosambazwa. Makundi yetu yenye shughuli nyingi zaidi hushughulikia makumi ya maelfu ya RPS kwa kuandika na maelfu ya RPS kwa kusoma.

- Wow! Ni mara ngapi kitu huvunjika?

Ndiyo wakati wote! Kwa jumla, tuna seva zaidi ya elfu 6, na kila wiki seva kadhaa na diski kadhaa hubadilishwa (bila kuzingatia michakato inayofanana ya uboreshaji na upanuzi wa meli ya mashine). Kwa kila aina ya kushindwa, kuna maelekezo ya wazi juu ya nini cha kufanya na kwa utaratibu gani, kila kitu ni automatiska wakati wowote iwezekanavyo, hivyo kushindwa ni kawaida na katika 99% ya matukio hutokea bila kutambuliwa na watumiaji.

- Unashughulikaje na kukataa vile?

Kuanzia mwanzoni mwa operesheni ya Cassandra na matukio ya kwanza, tulifanya kazi kwenye mifumo ya chelezo na urejeshaji kutoka kwao, tukajenga taratibu za kupeleka ambazo zinazingatia hali ya makundi ya Cassandra na, kwa mfano, usiruhusu nodi kuanzishwa tena. ikiwa kupoteza data kunawezekana. Tunapanga kuzungumza juu ya haya yote kwenye mkutano.

- Kama ulivyosema, hakuna mifumo ya kuaminika kabisa. Je, ni aina gani za kushindwa unajiandaa na unaweza kuishi?

Ikiwa tunazungumza juu ya usakinishaji wetu wa nguzo za Cassandra, watumiaji hawatagundua chochote ikiwa tutapoteza mashine kadhaa katika DC moja au DC moja nzima (hii imetokea). Kwa kuongezeka kwa idadi ya DC, tunafikiria kuanza kuhakikisha utendakazi endapo ma DCs wawili watashindwa.

- Unafikiri Cassandra anakosa nini katika suala la uvumilivu wa makosa?

Cassandra, kama maduka mengine mengi ya awali ya NoSQL, inahitaji uelewa wa kina wa muundo wake wa ndani na michakato ya nguvu inayotokea. Ningesema kwamba inakosa unyenyekevu, kutabirika na kuzingatiwa. Lakini itakuwa ya kuvutia kusikia maoni ya washiriki wengine wa mkutano!

Oleg, asante sana kwa kuchukua wakati wa kujibu maswali!

Tunasubiri kila mtu ambaye anataka kuwasiliana na wataalam katika uwanja wa uendeshaji Apache Cassandra katika mkutano wa Septemba 12 katika ofisi yetu ya St.

Njoo, itakuwa ya kuvutia!

Jiandikishe kwa hafla hiyo.

Chanzo: mapenzi.com

Kuongeza maoni