19 глава һидре. Одличан преглед програма

Конференција ће се одржати 11-12. јула у Санкт Петербургу Хидра, посвећен развоју паралелних и дистрибуираних система. Трик Хидре је у томе што уједињује кул научнике (који се обично могу наћи само на страним научним конференцијама) и познате инжењере практичаре у један велики програм на раскрсници науке и праксе.

Хидра је једна од наших најважнијих конференција у последњих неколико година. Претходила је веома озбиљна припрема, избор говорника и извештаји. Прошле недеље о овоме изашао хабро интервју са директором ЈУГ.ру Групе Алексејем Федоровим (23дерево).

Ми већ речено о три важна учесника, оснивача теорије дистрибуираних система – Лесли Лампорт, Морис Херлихи и Мајкл Скот. Време је да попричамо детаљније о целом програму!

19 глава һидре. Одличан преглед програма

Мотивација

Ако се бавите програмирањем, онда се на овај или онај начин бавите вишенитним и дистрибуираним рачунарством. Стручњаци у релевантним областима раде са њима директно, али имплицитно, дистрибуција нас гледа са свих страна: у било ком вишејезгарном рачунару или дистрибуираном сервису постоји нешто што обавља прорачуне паралелно.

Постоји много конференција које покривају различите аспекте програмирања апликација. На другој страни спектра, имамо специјализоване научне школе које откривају огромне количине сложене теорије у формату предавања. На пример, паралелно са Хидром у Санкт Петербургу постоји СПТДЦ школа. На конференцији Хидра покушали смо да спојимо оштру праксу, науку и све на њиховој раскрсници.

Размислите о овоме: живимо у невероватном времену када можете лично да упознате осниваче области науке и инжењерства које проучавамо. Физичари неће срести ни Њутна ни Ајнштајна - воз је отишао. Али поред нас и даље живе они који су створили темеље теорије дистрибуираних система, измислили популарне програмске језике и по први пут све ово отелотворили у радним прототиповима. Ови људи нису дали отказ на пола пута, они управо сада раде на хитним питањима на светски познатим универзитетима и компанијама и данас су највећи извори знања и искуства.

С друге стране, прилика да их упознамо обично остаје чисто теоретска: мало ко од нас може стално да прати јавна дешавања на неком универзитету у Рочестеру, а онда пожури у САД и назад на предавање са Мајклом Скотом. Посета свим члановима Хидре коштала би мало богатство, не рачунајући понор изгубљеног времена (иако звучи као занимљива потрага).

С друге стране, имамо много врхунских инжењера који тренутно раде на хитним проблемима у дистрибуираним системима и дефинитивно имају много тога да кажу. Али овде је проблем - они раде, а њихово време је драгоцено. Да, ако сте запослени у Мицрософт-у, Гоогле-у или ЈетБраинс-у, вероватноћа да ћете срести неког од познатих говорника на интерном догађају нагло расте, али генерално, не, то се не дешава сваки дан.

На овај начин Хидра конференција остварује важан задатак који већина нас не може да уради сама - на једном месту и у једном тренутку окупља људе чије идеје или интеракције са којима могу да промене ваш живот. Признајем да нису свима потребни дистрибуирани системи или неке сложене фундаменталне ствари. Можете програмирати ЦРУД-ове у ПХП-у до краја живота и остати потпуно срећни. Али коме год треба, ово је ваша шанса.

Прошло је доста времена од прве најаве Хидра конференције на Хабреу. За то време урађено је много посла – и сада имамо списак скоро свих извештаја. Нема тромих једнонитних алгоритама, само чисто дистрибуирани хардкор! Хајде да завршимо са општим речима и да видимо шта сада имамо у рукама.

Кеинотес

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

Цлифф Цлицк Х2О дистрибуирани К/В алгоритам

19 глава һидре. Одличан преглед програма Цлифф је легенда у свету Јава. Крајем 90-их, за докторску тезу, написао је рад под насловом „Комбиновање анализа, комбиновање оптимизација“, који је нешто касније постао основа за ХотСпот ЈВМ Сервер Цомпилер. Две године касније, већ је радио у Сун Мицросистемс-у на ЈВМ-у и показао целом свету да ЈИТ има право на постојање. Цела ова прича о томе како је Јава једно од најбржих модерних рунтимеа са најпаметнијим и најбржим оптимизацијама дошла је од Цлифф Цлицк-а. На самом почетку се веровало да ако је нешто доступно статичком компајлеру, не морате ни да покушавате да га јитујете. Захваљујући раду Клифа и тима, сви нови језици су почели да се стварају са идејом ЈИТ компилације подразумевано. Наравно, ово није био посао једног човека, али је Клиф у томе одиграо веома важну улогу.

У уводној речи, Цлифф ће говорити о свом другом подухвату - ХКСНУМКС, платформа у меморији за дистрибуирано и скалабилно машинско учење за индустријске апликације. Тачније, о дистрибуираном складиштењу парова кључ-вредност унутар њега. Ово је веома брзо складиште са много занимљивих својстава (тачна листа је у Опис), који омогућавају употребу сличних решења у математици стримовања великих података.

Други извештај који ће Цлифф дати је - Искуство Азул хардверске трансакционе меморије. Други део његове биографије - десет година ради у Азулу, где је ажурирао и побољшао многе ствари у Азул хардверском и технолошком стеку: ЈИТ компајлере, време извођења, модел нити, руковање грешкама, руковање стеком, хардверске прекиде, учитавање класа, и тако даље и тако даље - па, схватате идеја.

Најзанимљивији део је почео када су направили хардвер за велики бизнис - суперкомпјутер за покретање Јаве. То је била прилично иновативна ствар, скројена посебно за Јаву, која има посебне захтеве - читање меморијских баријера за прикупљање смећа са ниским паузама, низове са провером граница, виртуелне позиве... Једна од најбољих технологија је хардверска трансакциона меморија. Цео Л1 било ког од 864 језгра би могао да учествује у трансакцијском писању, што је посебно важно за рад са бравама у Јави (синхронизовани блокови могу да раде паралелно све док нема правог меморијског сукоба). Али прелепу идеју је сломила сурова реалност – и у овом говору Клиф ће вам рећи зашто ХТМ и СТМ нису баш погодни за практичне потребе вишенитног рачунарства.

Мајкл Скот - Двоструке структуре података

19 глава һидре. Одличан преглед програма Мицхаел Сцотт - Професор рачунарства на Универзитету у Рочестеру, са којим га је судбина спојила већ 34 године, а на свом матичном Универзитету Висконсин-Медисон, био је декан пет година. Он истражује и подучава студенте о паралелном и дистрибуираном програмирању и дизајну језика.

Цео свет познаје Мајкла захваљујући уџбенику „Прагматика програмског језика“, чије је последње издање објављено релативно недавно - 2015. године. Његов посао „Алгоритми за скалабилну синхронизацију на мултипроцесорима са дељеном меморијом“ примљен Дијкстра награда као један од најпознатијих у области дистрибуираног рачунарства и лажући отворено у онлајн библиотеци Универзитета у Рочестеру. Можда га познајете и као аутора самог Мицхаел-Сцотт алгоритма из „Једноставни, брзи и практични неблокирајући и блокирајући истовремени алгоритми у реду чекања“.

Што се тиче Јава света, ово је посебан случај: заједно са Дагом Лиом, он је развио неблокирајуће алгоритме и синхроне редове на којима раде Јава библиотеке. Управо о томе ће се говорити у уводној речи „Двојне структуре података“ – увођење ових структура у Јава СЕ 6 је побољшало перформансе за 10 пута java.util.concurrent.ThreadPoolExecutor. Ако се унапред питате шта су то „двоструке структуре података“, онда постоје информације о томе повезани рад.

Морис Херлихи - Блоцкцхаинс и будућност дистрибуираног рачунарства

19 глава һидре. Одличан преглед програма Морис Херлихи - добитник две Дијкстра награде. Први је за рад на „Синхронизација без чекања“ (Бровн универзитет), а други, новији - „Трансакциона меморија: архитектонска подршка за структуре података без закључавања“ (Виргиниа Тецх Университи). Дијкстра награда одаје признање за рад чији су значај и утицај видљиви најмање десет година, а Морис је очигледно један од најреномиранијих стручњака у овој области. Тренутно ради као професор на Универзитету Браун и има списак достигнућа дугу параграфу.

У овом завршном излагању, Морис ће говорити о теорији и пракси дистрибуираних система блокова са становишта класика дистрибуираног рачунарства и како то поједностављује многе повезане проблеме. Ово је извештај искључиво о теми конференције - уопште не о рударењу, већ о томе како се наше знање може невероватно ефикасно и на одговарајући начин искористити у односу на разне задатке.

У јулу 2017. Морис је већ дошао у Русију да похађа школу СПТДЦ, учествовао је на скупу ЈУГ.ру, а снимак се може погледати на Јутјубу:

Главни програм

Следеће ће бити кратак преглед извештаја укључених у програм. Неки од извештаја су овде детаљно описани, други укратко. Дуги описи су се углавном односили на извештаје на енглеском језику који су захтевали везе до научних радова, термина на Википедији итд. Комплетна листа је доступна погледајте на веб страници конференције. Листа на сајту ће се ажурирати и допуњавати.

Лесли Лампорт - Питања и одговори

19 глава һидре. Одличан преглед програма Леслие Лампорт је аутор темељних радова у дистрибуираном рачунарству. "ЛаТеКс" означава "Лампорт ТеКс". Он је први, давне 1979. године, увео концепт доследна доследност, и његов чланак „Како направити вишепроцесорски рачунар који исправно извршава вишепроцесне програме“ добио Дијкстрину награду.

Ово је по формату најнеобичнији део програма, јер није чак ни извештај, већ сесија питања и одговора. Када је значајан део публике већ упознат (или може да се упозна) са свим врстама радова заснованих на „Лампортовој теорији”, његовим сопственим чланцима и извештајима, важније је сво расположиво време посветити директној комуникацији.

Идеја је једноставна - гледате два извештаја на Јутјубу: „Програмирање би требало да буде више од кодирања“ и „Ако не пишете програм, немојте користити програмски језик“ и припреми бар једно питање, а Лесли одговара.

Први од ова два видеа већ имамо претворен у хабро чланак. Ако немате сат времена да погледате видео, можете га брзо прочитати у текстуалном облику.

Напомена: На ИоуТубе-у има још много видео записа Леслие Лампорт. На пример, постоји велика ТЛА+ курс. Офлајн верзија целог овог курса је доступна на почетна страница аутора, а он га је поставио на Јутјуб ради лакшег прегледа на мобилним уређајима.

Мартин Клеппманн - Синхронизација података на корисничким уређајима за дистрибуирану сарадњу

19 глава һидре. Одличан преглед програма Мартин Клеппманн је истраживач на Универзитету у Кембриџу који ради на ЦРДТ-у и формалној верификацији алгоритама. Мартинова књига „Дизајнирање апликација са интензивним подацима“, објављен 2017. године, показао се као веома успешан и ушао на листе бестселера у области складиштења и обраде података. Кевин Сцотт, ЦТО у Мицрософту, једном рекао: „Ова књига би требало да буде неопходна за софтверске инжењере. Ово је редак ресурс који комбинује теорију и праксу како би помогао програмерима да буду паметнији у дизајнирању и имплементацији инфраструктуре и система података." Творац Кафке и ЦТО Цонфлуента, Џеј Крепс, рекао је нешто слично.

Пре него што је кренуо у академско истраживање, Мартин је радио у индустрији и суоснивао два успешна старт-уп-а:

  • Раппортиве, посвећено приказивању друштвеног профила контаката из ваше е-поште, коју је ЛинкедИн купио 2012. године;
  • Го Тест Ит, сервис за аутоматско тестирање веб локација у различитим претраживачима, који је РедГате купио 2009. године.

Генерално, Мартин, иако мање познат од наших уводничара, већ је био у стању да да одређени допринос развоју дистрибуираног рачунарства и индустрији.

У овом говору, Мартин ће говорити о теми ближој његовом академском истраживању. У Гоогле документима и сличним софама за заједничко уређивање докумената, „сарадничко уређивање“ се односи на задатак репликације: сваки корисник има сопствену реплику дељеног документа, коју затим мења, а све промене се шаљу преко мреже на остатак учесника. Промене докумената ван мреже доводе до привремене недоследности документа у односу на друге учеснике, а поновна синхронизација захтева решавање конфликта. Они управо због тога постоје Реплицирани типови података без сукоба (ЦРДТ), заправо, прилично је нова ствар, чија је суштина формулисана тек 2011. године. Овај говор говори о томе шта се од тада догодило у свету ЦРДТ-а, која су најновија достигнућа, приступ креирању апликација које су прво на локалном нивоу и коришћење библиотеке отвореног кода Аутомерге нарочито.

Следеће недеље ћемо објавити подужи интервју са Мартином на Хабреу, биће занимљиво.

Педро Рамалхете - Структуре података без чекања и трансакције без чекања

19 глава һидре. Одличан преглед програма Педро ради у Цисцо-у и развија паралелне алгоритме последњих десетак година, укључујући механизме синхронизације, структуре података без закључавања и чекања и све што можете замислити на ову тему. Његови тренутни истраживачки и инжењерски интереси се фокусирају на универзалне конструкције, софтверску трансакциону меморију, трајну меморију и сличне технологије које омогућавају исправне, скалабилне и толерантне апликације. Аутор је и блога који је надалеко познат у уским круговима Цонцурренци Фреакс.

Већина вишенитних апликација сада ради на паралелним структурама података, од употребе редова порука између актера до индексираних структура података у складиштима кључ/вредност. Они већ дуги низ година успешно раде у Јава ЈДК-у и полако се додају у Ц++.

Најједноставнији начин за имплементацију паралелне структуре података је секвенцијална (једнонитна) имплементација у којој су методе заштићене мутексима. Ово је доступно у било ком јуну, али има очигледне проблеме са скалирањем и перформансама. У исто време, структуре података без закључавања и чекања не само да се боље носе са грешкама, већ имају и бољи профил перформанси – међутим, њихов развој захтева дубоку стручност и прилагођавање специфичној апликацији. Једна погрешна линија кода је довољна да се све разбије.

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

Хајди Хауард - Ослобађајући дистрибуирани консензус

19 глава һидре. Одличан преглед програма Хајди Хауард је, као и Мартин, истраживач дистрибуираних система на Универзитету у Кембриџу. Њене специјалности су доследност, толеранција грешака, перформансе и дистрибуирани консензус. Најпознатија је по својој генерализацији Паксосовог алгоритма тзв Флексибилан Пакос.

Подсетимо се да Пакос је породица протокола за решавање проблема консензуса у мрежи непоузданих рачунара, заснована на раду Леслија Лампорта. Дакле, неки од наших говорника раде на проблемима које су првобитно предложили наши други говорници - и ово је дивно.

Способност проналажења консензуса између више домаћина – за обраћање, избор лидера, блокирање или координацију – је фундаментално питање у модерним дистрибуираним системима. Пакос је сада главни начин за решавање проблема консензуса, а око њега се одвијају многа истраживања како би се алгоритам проширио и оптимизовао за различите практичне потребе.

У овом говору ћемо се поново осврнути на теоријску основу Пакоса, опуштајући првобитне захтеве и генерализујући алгоритам. Видећемо да је Пакос у суштини само једна опција међу огромном лепезом консензус приступа, и да су друге тачке на спектру такође веома корисне за изградњу добрих дистрибуираних система.

Алекс Петров — Смањите своје трошкове складиштења помоћу прелазне репликације и јефтиних кворума

19 глава һидре. Одличан преглед програма Алекс је специјалиста за базе података и системе за складиштење података, и што је за нас важније, извршилац Касандра. Тренутно ради на књизи, Датабасе Интерналс, са О'Реиллијем.

За системе са евентуална доследност (у руској терминологији - „крајња конзистентност“), након пада чвора или раздвајања мреже, потребно је да решите следећу дилему: или наставите да извршавате захтеве, жртвујући доследност, или одбијете да их извршите и жртвујете доступност. У таквом систему, кворуми, преклапајући подскупови чворова и обезбеђивање да бар један чвор садржи најновију вредност, могу бити добро решење на ивици. Можете преживети неуспехе и губитак везе са неким чворовима док наставите да одговарате најновијим вредностима.

Међутим, све има своју цену. Шема репликације кворума значи повећане трошкове складиштења: редундантни подаци морају бити ускладиштени на више чворова одједном како би се осигурало да има довољно доступних копија када се појави проблем. Испоставило се да не морате да чувате све податке на свим репликама. Можете смањити оптерећење складишта ако складиштите податке само на делу чворова и користите посебне чворове (Транзиентна реплика) за сценарије руковања грешком.

У току извештаја ћемо размотрити Реплике сведока, шема репликације која се користи у Спаннер и Мегасторе, а имплементација овог концепта у Апацхе Цассандра тзв Пролазна репликација и јефтини кворуми.

Дмитриј Вјуков - Гороутинес екпосед

19 глава һидре. Одличан преглед програма Дмитриј је програмер у Гоогле-у који ради на динамичком тестирању за Ц/Ц++ и Го - Аддресс/Мемори/ТхреадСанитизер и сличне алате за Линук кернел. Допринео Го скалабилном планеру гороутине, мрежном испитивачу и паралелном сакупљачу смећа. Он је стручњак за вишенитност, аутор је десетак нових алгоритама без блокирања и власник је Црни појас Интел

Сада мало о самом извештају. Го језик има изворну подршку за вишенитност у облику горутина (лаких нити) и канала (ФИФО редови). Ови механизми корисницима чине веома лаким и пријатним писање модерних апликација са више нити, а то изгледа као магија. Као што разумемо, овде нема магије. У овом говору, Дмитриј ће се упустити у замршености планера Го и показати тајне спровођења ове „магије“. Прво ће дати преглед главних компоненти планера и рећи вам како он функционише. Затим ћемо детаљније погледати појединачне аспекте као што су стратегија паркирања/одпаркирања и руковање блокирајући системске позиве. Коначно, Дмитриј ће мало причати о могућим побољшањима планера.

Дмитриј Бугајченко - Убрзавање анализе дистрибуираних графова са вероватноћастим скицама и још много тога

19 глава һидре. Одличан преглед програма Дмитриј је радио у оутсоурцингу скоро 9 година не губећи контакт са универзитетом и научном заједницом. Анализа великих података у Одноклассники постала је за њега јединствена шанса да комбинује теоријску обуку и научну основу са развојем стварних, тражених производа.

Анализа дистрибуираног графа била је и остаје тежак задатак: када постане неопходно да се добију информације о везама суседног темена, подаци се често морају пренети између машина, што доводи до повећања времена извршења и оптерећења мрежне инфраструктуре. У овом говору ћемо видети како можете постићи значајне брзине обраде коришћењем вероватноћастих структура података или чињеница као што је симетрија графика пријатељства на друштвеној мрежи. Све ово је илустровано примерима кода у Апацхе Спарк-у.

Денис Рисцов - Смањите своје трошкове складиштења помоћу прелазне репликације и јефтиних кворума

19 глава һидре. Одличан преглед програма Денис - програмер Цосмос ДБ, стручњак за проверу модела доследности, консензус алгоритама и дистрибуираних трансакција. Тренутно ради у Мицрософту, а пре тога је радио на дистрибуираним системима у Амазону и Иандеку.

У овом говору ћемо погледати протоколе за дистрибуиране трансакције који су измишљени у последњих неколико година, а који се могу имплементирати на страни клијента на врху било које продавнице података која подржава условно ажурирање (упореди и постави). Суштина је да се живот не завршава двофазним урезивањем, трансакције се могу додати на било коју базу података - на нивоу апликације, али различити протоколи (2ПЦ, Перцолатор, РАМП) имају различите компромисе и нису нам дати бесплатно.

Алексеј Зиновјев - Не успевају сви МЛ алгоритми у дистрибуирани рај

19 глава һидре. Одличан преглед програма Алексеј (залеслав) је дугогодишњи говорник и члан програмских одбора на другим конференцијама. Тренер за вежбу у ЕПАМ Системс-у и пријатељ је са Хадооп/Спарк-ом и другим великим подацима од 2012.

У овом говору, Алексеј ће говорити о проблемима прилагођавања класичних алгоритама машинског учења за извршавање у дистрибуираном режиму на основу свог искуства у раду са Апацхе Спарк МЛ, Апацхе Махоут, Апацхе Флинк МЛ и искуству креирања Апацхе Игните МЛ. Алексеј ће такође говорити о имплементацији дистрибуираних МЛ алгоритама у овим оквирима.

И на крају, два извештаја из Иандек-а о Иандек Датабасе.

Владислав Кузњецов - Иандек Датабасе - како обезбеђујемо толеранцију грешака

19 глава һидре. Одличан преглед програма Владислав је програмер у Иандек-у у групи дистрибуираних платформи. Иандек Датабасе је хоризонтално скалабилан, гео-дистрибуиран, ДБМС отпоран на грешке који може да издржи квар дискова, сервера, рекова и центара података без губитка конзистентности. Да би се обезбедила толеранција грешака, користи се власнички алгоритам за постизање дистрибуираног консензуса, као и низ техничких решења о којима се детаљно говори у извештају. Извештај може бити од интереса и за програмере ДБМС-а и за програмере апликативних решења заснованих на ДБМС-у.

Семјон Чечеринда - Дистрибуиране трансакције у ИДБ

19 глава һидре. Одличан преглед програма Семјон је програмер у групи дистрибуираних платформи у Иандек-у, који ради на могућности коришћења ИДБ инсталације за више корисника.

Иандек Датабасе је дизајнирана за ОЛТП упите и усклађена је са АЦИД захтевима за трансакциони систем. У овом извештају ћемо размотрити алгоритам за распоређивање трансакција који је у основи ИДБ система трансакција. Хајде да погледамо који ентитети учествују у трансакцијама, ко додељује глобални ред трансакцијама, како се постиже атомичност трансакције, поузданост и строги ниво изолације. Користећи уобичајени проблем као пример, погледајмо имплементације трансакција које користе двофазне урезивања и детерминистичке трансакције. Хајде да разговарамо о њиховим разликама.

Шта је следеће?

Програм конференције је и даље испуњен новим извештајима. Посебно очекујемо извештај од Никита Ковал (ндковал) из ЈетБраинса и Олег Анастасјев (м0нстерминд) из компаније Одноклассники. Никита ради на алгоритмима за корутине у тиму Котлин, а Олег развија архитектуру и решења за системе високог оптерећења на платформи Одноклассники. Поред тога, постоји још 1 условно празан термин, програмски одбор тренутно ради са кандидатима за њега.

Хидра конференција ће се одржати 11-12. јула у Санкт Петербургу. Улазнице су доступне купити на званичном сајту. Обратите пажњу на доступност онлајн карата - ако из неког разлога ових дана не можете стићи у Санкт Петербург.

Видимо се у Хидри!

Извор: ввв.хабр.цом

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