Мини-интервју со Олег Анастасиев: толеранција на грешки во Апачи Касандра

Мини-интервју со Олег Анастасиев: толеранција на грешки во Апачи Касандра

Однокласниците е најголемиот корисник на Apache Cassandra на RuNet и еден од најголемите во светот. Почнавме да ја користиме Касандра во 2010 година за складирање на рејтинзи на фотографии, а сега Касандра управува со петабајти податоци на илјадници јазли, всушност, ние дури и развивме сопствена NewSQL трансакциска база на податоци.
На 12 септември во нашата канцеларија во Санкт Петербург ќе одржиме втор состанок посветен на Апачи Касандра. Главен говорник на настанот ќе биде главниот инженер на Однокласници Олег Анастасиев. Олег е експерт во областа на дистрибуирани и толерантни системи, тој работи со Касандра повеќе од 10 години и постојано зборуваше за карактеристиките на користење на овој производ на конференции.

Во пресрет на состанокот, разговаравме со Олег за толеранцијата на грешки на дистрибуираните системи со Касандра, прашавме за што ќе зборува на состанокот и зошто вреди да се присуствува на овој настан.

Олег ја започна својата програмска кариера во 1995 година. Развил софтвер во банкарството, телекомуникациите и транспортот. Работи како водечки програмер во Однокласници од 2007 година во тимот на платформата. Неговите одговорности вклучуваат развој на архитектури и решенија за системи со големо оптоварување, големи складишта за податоци и решавање на проблеми со перформансите и доверливоста на порталот. Тој исто така обучува програмери во рамките на компанијата.

- Олег, здраво! Во мај се одржа прва средба, посветен на Апачи Касандра, учесниците велат дека дискусиите траеле до доцна во ноќта, ве молам кажете ми, какви се вашите впечатоци од првата средба?

Програмери со различно потекло од различни компании дојдоа со своја болка, неочекувани решенија за проблемите и неверојатни приказни. Успеавме да го спроведеме најголемиот дел од состанокот во формат на дискусија, но имаше толку многу дискусии што можевме да допреме само третина од планираните теми. Посветивме многу внимание на тоа како и што следиме користејќи го примерот на нашите вистински производствени услуги.

Бев заинтересиран и навистина ми се допадна.

- Судејќи според објавата, втор состанок ќе биде целосно посветен на толеранција на грешки, зошто ја избра оваа тема?

Касандра е типичен зафатен дистрибуиран систем со огромна количина на функционалност надвор од директното сервисирање на барањата на корисниците: озборувања, откривање неуспех, ширење на промени на шемата, проширување/намалување на кластерот, антиентропија, резервни копии и обновување итн. Како и во секој дистрибуиран систем, како што се зголемува количината на хардвер, се зголемува и веројатноста за неуспеси, така што работата на производствените кластери на Касандра бара длабоко разбирање на неговата структура за да се предвиди однесувањето во случај на дефекти и активностите на операторот. Откако ја користевме Касандра долги години, ние имаат акумулирано значајна експертиза, што сме подготвени да го споделиме, а сакаме и да разговараме како колегите во продавницата решаваат типични проблеми.

- Кога станува збор за Касандра, што подразбирате под толеранција на грешки?

Пред сè, се разбира, способноста на системот да преживее типични хардверски дефекти: губење на машини, дискови или мрежно поврзување со јазли/центри за податоци. Но, самата тема е многу поширока и особено вклучува закрепнување од неуспеси, вклучувајќи неуспеси за кои луѓето ретко се подготвуваат, на пример, грешки на операторот.

— Можете ли да дадете пример за најоптоварениот и најголем кластер на податоци?

Еден од нашите најголеми кластери е кластерот за подароци: повеќе од 200 јазли и стотици ТБ податоци. Но, тој не е најоптоварен, бидејќи е покриен со дистрибуирана кеш меморија. Нашите најпрометни кластери работат со десетици илјади RPS за пишување и илјадници RPS за читање.

- Леле! Колку често нешто се скрши?

Да цело време! Севкупно, имаме повеќе од 6 илјади сервери, а секоја недела се заменуваат неколку сервери и неколку десетици дискови (без да се земат предвид паралелните процеси на надградба и проширување на машинската флота). За секој тип на дефект има јасни инструкции што да се прави и по кој редослед, сè е автоматизирано секогаш кога е можно, така што дефектите се рутински и во 99% од случаите се случуваат незабележани од корисниците.

- Како се справувате со ваквите одбивања?

Од самиот почеток на функционирањето на Касандра и првите инциденти, работевме на механизмите за резервни копии и закрепнување од нив, изградивме процедури за распоредување кои ја земаат предвид состојбата на кластерите Касандра и, на пример, не дозволуваат рестартирање на јазлите. ако е можно губење на податоци. Планираме да разговараме за сето ова на состанокот.

- Како што кажавте, нема апсолутно сигурни системи. За какви видови неуспеси се подготвувате и дали можете да се справите?

Ако зборуваме за нашите инсталации на кластери Касандра, корисниците нема да забележат ништо ако изгубиме неколку машини во еден DC или еден целосен DC (ова се случи). Со зголемувањето на бројот на DC, размислуваме да почнеме да обезбедуваме оперативност во случај на дефект на два DC.

- Што мислите дека ѝ недостига на Касандра во однос на толеранцијата на грешки?

Касандра, како и многу други рани продавници на NoSQL, бара длабоко разбирање на нејзината внатрешна структура и динамичките процеси што се случуваат. Би рекол дека му недостига едноставност, предвидливост и набљудување. Но, ќе биде интересно да се слушнат мислењата на другите учесници на состанокот!

Олег, ти благодарам многу што одвои време да одговориш на прашањата!

Ги чекаме сите што сакаат да комуницираат со експерти од областа на работењето на Apache Cassandra на состанокот на 12 септември во нашата канцеларија во Санкт Петербург.

Дојдете, ќе биде интересно!

Регистрирајте се за настанот.

Извор: www.habr.com

Додадете коментар