19 гидра бастары. Бағдарламаға тамаша шолу

11-12 шілдеде Санкт-Петербургте конференция өтеді Гидра, параллельді және бөлінген жүйелерді дамытуға арналған. Гидраның айласы - ол керемет ғалымдарды (әдетте оларды тек шетелдік ғылыми конференцияларда табуға болады) және атақты тәжірибеші инженерлерді ғылым мен тәжірибенің қиылысындағы бір үлкен бағдарламаға біріктіреді.

Гидра - соңғы бірнеше жылдағы ең маңызды конференцияларымыздың бірі. Оның алдында өте мұқият дайындық, баяндамашылар мен баяндамаларды іріктеу жұмыстары жүргізілді. Бұл туралы өткен аптада хабро сұхбаты шықты JUG.ru тобының директоры Алексей Федоровпен (23дерево).

біз айтып қойған шамамен үш маңызды қатысушылар, бөлінген жүйелер теориясының негізін салушылар - Лесли Лэмпорт, Морис Херлихи және Майкл Скотт. Бүкіл бағдарлама туралы толығырақ сөйлесетін кез келді!

19 гидра бастары. Бағдарламаға тамаша шолу

Мотивация

Егер сіз бағдарламалаумен айналыссаңыз, онда сіз көп ағынды және таратылған есептеулермен айналысасыз. Тиісті салалардағы сарапшылар олармен тікелей жұмыс істейді, бірақ жанама түрде тарату бізге барлық жерден қарап тұрады: кез келген көп ядролы компьютерде немесе бөлінген қызметте параллельді түрде есептеулерді орындайтын нәрсе бар.

Қолданбалы бағдарламалаудың әртүрлі аспектілерін қамтитын көптеген конференциялар бар. Спектрдің екінші жағында бізде лекция форматында күрделі теорияның кең көлемін ашатын арнайы ғылыми мектептер бар. Мысалы, Гидрамен қатар Санкт-Петербургте де бар SPTDC мектебі. Гидра конференциясында біз қатал тәжірибені, ғылымды және олардың қиылысында барлығын біріктіруге тырыстық.

Ойлап көріңізші: біз оқып жатқан ғылым мен техника саласының негізін салушылармен жүзбе-жүз кездесетін таңғажайып уақытта өмір сүріп жатырмыз. Физиктер Ньютонды да, Эйнштейнді де кездестірмейді - пойыз кетті. Бірақ біздің қасымызда әлі де үлестірілген жүйелер теориясының негіздерін жасағандар, танымал бағдарламалау тілдерін ойлап тапқандар және осының барлығын жұмыс прототипінде алғаш рет бейнелегендер өмір сүреді. Бұл адамдар жұмысын жарты жолда тастаған жоқ, олар дәл қазір әлемге әйгілі университеттер мен компанияларда өзекті мәселелермен айналысуда және бүгінгі таңда білім мен тәжірибенің ең үлкен көзі болып табылады.

Екінші жағынан, олармен кездесу мүмкіндігі әдетте тек теориялық болып қала береді: біздің кейбіреулеріміз Рочестер университетіндегі қоғамдық іс-шараларды үнемі қадағалай алады, содан кейін АҚШ-қа асығады және Майкл Скоттпен дәріс оқуға қайтады. Гидраның барлық мүшелеріне бару, босқа кеткен уақытты есептемегенде, аздаған байлыққа апарады (бірақ бұл қызықты ізденіс сияқты).

Екінші жағынан, бізде қазір бөлінген жүйелердегі өзекті мәселелермен айналысатын көптеген үздік инженерлер бар және олардың айтатындары көп. Бірақ мұнда мәселе бар - олар жұмыс істейді, және олардың уақыты құнды. Иә, егер сіз Microsoft, Google немесе JetBrains қызметкері болсаңыз, белгілі спикерлердің бірімен ішкі іс-шарада кездесу ықтималдығы күрт артады, бірақ тұтастай алғанда, жоқ, бұл күнде бола бермейді.

Осылайша, Гидра конференциясы көпшілігіміз өзіміз жасай алмайтын маңызды тапсырманы орындайды - бір жерде және бір уақытта ол идеялары немесе өзара әрекеттесуі өміріңізді өзгерте алатын адамдарды біріктіреді. Мен бәріне бөлінген жүйелер немесе кейбір күрделі іргелі нәрселер қажет емес екенін мойындаймын. Сіз CRUD файлдарын өміріңіздің соңына дейін PHP тілінде бағдарламалай аласыз және толықтай бақытты бола аласыз. Бірақ кімге керек болса, бұл сіздің мүмкіндігіңіз.

Хабре туралы Гидра конференциясының алғашқы хабарландыруынан бері көп уақыт өтті. Осы уақыт ішінде көп жұмыс атқарылды - қазір бізде барлық дерлік есептердің тізімі бар. Жалаңаш бір ағынды алгоритмдер жоқ, тек таза бөлінген хардкор! Жалпы сөздермен аяқтап, қазір қолымызда не бар екенін көрейік.

Негізгі жазбалар

Негізгі баяндамалар конференция күндері басталады және аяқталады. Әдетте, кіріспе баяндаманың мәні конференцияның жалпы рухы мен бағытын белгілеу болып табылады. Қорытынды сөз сызығын сызып, конференция барысында алынған білім мен дағдылармен қалай өмір сүре алатынымызды түсіндіреді. Басталуы мен соңы: ең жақсы есте қалған нәрсе, жалпы алғанда, маңыздылығы арта түсті.

Cliff Click H2O таратылған K/V алгоритмі

19 гидра бастары. Бағдарламаға тамаша шолу Клифф - Java әлеміндегі аңыз. 90-жылдардың аяғында ол кандидаттық диссертациясына арналған мақала жазды «Талдауларды біріктіру, оңтайландыруларды біріктіру», ол біраз уақыттан кейін HotSpot JVM Server Compiler үшін негіз болды. Екі жылдан кейін ол Sun Microsystems компаниясында JVM жүйесінде жұмыс істеп, бүкіл әлемге JIT-тің өмір сүруге құқығы бар екенін көрсетті. Java-ның ең ақылды және жылдам оңтайландырулары бар ең жылдам заманауи жұмыс уақыттарының бірі екендігі туралы бүкіл оқиға Cliff Click-тен алынды. Бастапқыда, егер бірдеңе статикалық компиляторға қол жетімді болса, оны ашуға тырысудың қажеті жоқ деп есептелді. Клифф пен команданың жұмысының арқасында барлық жаңа тілдер әдепкі бойынша JIT компиляциясының идеясымен жасала бастады. Әрине, бұл бір адамның жұмысы емес еді, бірақ бұл жерде Клифф өте маңызды рөл атқарды.

Басты сөзде Клифф өзінің басқа әрекеті туралы айтады - H20, өнеркәсіптік қолданбалар үшін бөлінген және масштабталатын машиналық оқытуға арналған жадтағы платформа. Немесе дәлірек айтқанда, оның ішіндегі кілт-мән жұптарының бөлінген сақтауы туралы. Бұл көптеген қызықты қасиеттері бар өте жылдам сақтау орны (нақты тізім сипаттамасы), бұл үлкен деректер ағынының математикасында ұқсас шешімдерді пайдалануға мүмкіндік береді.

Клифф беретін тағы бір есеп - Azul аппараттық құралдың транзакциялық жады тәжірибесі. Оның өмірбаянының тағы бір бөлігі - он жыл Азулда жұмыс істеу, онда ол Azul аппараттық және технологиялық стекіндегі көптеген нәрселерді жаңартты және жетілдірді: JIT компиляторлары, орындалу уақыты, ағын үлгісі, қателерді өңдеу, стекті өңдеу, аппараттық үзілістер, сыныпты жүктеу және т.б. - жақсы, сіз аласыз идея.

Ең қызығы олар үлкен бизнеске арналған аппараттық құрал – Java-ны іске қосу үшін суперкомпьютер жасаған кезде басталды. Бұл өте инновациялық нәрсе болды, арнайы талаптары бар Java үшін арнайы әзірленген – аз кідіріспен қоқыс жинауға арналған жад кедергілерін оқу, шекараларды тексеруі бар массивтер, виртуалды қоңыраулар... Ең керемет технологиялардың бірі аппараттық транзакциялық жады. 1 ядролардың кез келгенінің L864 толық бөлігі транзакциялық жазуға қатыса алады, бұл әсіресе Java-дағы құлыптармен жұмыс істеу үшін маңызды (синхрондалған блоктар нақты жад қақтығысы болмаса, параллель жұмыс істей алады). Бірақ әдемі идеяны қатал шындық қиратты - және бұл әңгімеде Клифф сізге HTM және STM неліктен көп ағынды есептеулердің практикалық қажеттіліктеріне өте жақсы сәйкес келмейтінін айтып береді.

Майкл Скотт - Қос деректер құрылымдары

19 гидра бастары. Бағдарламаға тамаша шолу Майкл Скотт - Тағдыр онымен байланыстырған Рочестер университетінің информатика профессоры қазірдің өзінде 34 жаста, және өзінің Висконсин-Мэдисон университетінде бес жыл декан болды. Ол студенттерге параллельді және таратылған бағдарламалау және тілдік дизайнды зерттейді және үйретеді.

Бүкіл әлем Майклды оқулықтың арқасында біледі «Бағдарламалау тілінің прагматикасы», оның соңғы басылымы салыстырмалы түрде жақында - 2015 жылы жарық көрді. Оның жұмысы «Ортақ жадты мультипроцессорларда масштабталатын синхрондау алгоритмдері» алды Дейкстра сыйлығы үлестірілген есептеулер саласындағы ең танымал бірі ретінде және ашық өтірік айту Рочестер университетінің онлайн кітапханасында. Сіз оны Майкл-Скотт алгоритмінің авторы ретінде де білуіңіз мүмкін «Қарапайым, жылдам және практикалық блоктамайтын және блокталатын бір мезгілде кезек алгоритмдері».

Java әлеміне келетін болсақ, бұл ерекше жағдай: Дуг Лимен бірге ол Java кітапханалары жұмыс істейтін блокталмаған алгоритмдер мен синхронды кезектерді әзірледі. «Қос деректер құрылымдары» негізгі баяндамасы дәл осы туралы болмақ - бұл құрылымдарды Java SE 6 жүйесіне енгізу өнімділікті 10 есе жақсартты. java.util.concurrent.ThreadPoolExecutor. Егер сіз бұл «Қос деректер құрылымдары» не екенін алдын ала сұрасаңыз, онда бұл туралы ақпарат бар байланысты жұмыс.

Морис Херлихи - Блокчейндер және таратылған есептеулердің болашағы

19 гидра бастары. Бағдарламаға тамаша шолу Морис Херлихи - екі Dijkstra сыйлығының иегері. Біріншісі жұмыс істеуге арналған «Күтусіз синхрондау» (Браун университеті), ал екіншісі, соңғысы - «Транзакциялық жад: құлыпсыз деректер құрылымдарын архитектуралық қолдау» (Виргиния технологиялық университеті). Дийкстра сыйлығы маңыздылығы мен әсері кем дегенде он жыл бойы байқалған жұмыстарды мойындайды және Морис осы саладағы ең танымал сарапшылардың бірі екені анық. Қазіргі уақытта ол Браун университетінде профессор болып жұмыс істейді және оның жетістіктерінің параграфқа созылған тізімі бар.

Бұл қорытынды баяндамада Морис таратылған есептеулер классиктерінің көзқарасы бойынша блокчейн таратылған жүйелердің теориясы мен тәжірибесі және оның көптеген байланысты мәселелерді қалай жеңілдететіні туралы әңгімелейді. Бұл тек қана конференция тақырыбына арналған есеп – тау-кен өнеркәсібі туралы мүлде емес, біздің білімімізді әртүрлі тапсырмаларға қатысты таңғажайып тиімді және орынды қалай пайдалануға болатыны туралы.

2017 жылдың шілдесінде Морис Ресейге SPTDC мектебіне бару үшін келді, JUG.ru кездесуіне қатысты және жазбаны YouTube сайтында көруге болады:

Негізгі бағдарлама

Әрі қарай бағдарламаға енгізілген есептерге қысқаша шолу жасалады. Есептердің кейбіреулері мұнда егжей-тегжейлі сипатталған, басқалары қысқаша. Ұзақ сипаттамалар негізінен ғылыми мақалаларға, Википедиядағы терминдерге және т.б. сілтемелерді қажет ететін ағылшын тіліндегі есептерге арналған. Толық тізім қол жетімді конференция веб-сайтынан қараңыз. Веб-сайттағы тізім жаңартылып, толықтырылады.

Лесли Лэмпорт - Сұрақ-жауап

19 гидра бастары. Бағдарламаға тамаша шолу Лесли Лэмпорт үлестірілген есептеулердегі негізгі жұмыстардың авторы. «LaTeX» «Lamport TeX» дегенді білдіреді. Ол алғаш рет 1979 жылы тұжырымдаманы енгізді тұрақты консистенциясы, және оның мақаласы «Көп процесті бағдарламаларды дұрыс орындайтын мультипроцессорлы компьютерді қалай жасауға болады» Дейкстра сыйлығын алды.

Бұл форматтағы бағдарламаның ең ерекше бөлігі, өйткені ол тіпті есеп емес, сұрақ-жауап сессиясы. Аудиторияның едәуір бөлігі «Лампорт теориясына» негізделген жұмыстардың барлық түрлерімен, оның жеке мақалаларымен және баяндамаларымен бұрыннан таныс болса (немесе таныс болуы мүмкін), барлық бос уақытты тікелей қарым-қатынасқа жұмсау маңыздырақ.

Идея қарапайым - сіз YouTube-тен екі репортаж көресіз: «Бағдарламалау кодтаудан көбірек болуы керек» и «Егер сіз бағдарлама жазбасаңыз, бағдарламалау тілін қолданбаңыз» және кем дегенде бір сұрақ дайындаңыз және Лесли жауап береді.

Осы екі бейненің біріншісі бізде бар хабро мақаласына айналды. Бейнені көруге бір сағат уақытыңыз болмаса, оның барлығын мәтін түрінде жылдам оқуға болады.

Ескерту: YouTube сайтында Лесли Лэмпорттың көптеген бейнелері бар. Мысалы, керемет бар TLA+ курсы. Осы курстың офлайн нұсқасы мына жерден қол жетімді автордың басты беті, және ол оны мобильді құрылғыларда оңай көру үшін YouTube сайтына жүктеп салды.

Мартин Клепманн - Бөлінген ынтымақтастық үшін деректерді пайдаланушы құрылғылары арқылы синхрондау

19 гидра бастары. Бағдарламаға тамаша шолу Мартин Клеппман - Кембридж университетінің зерттеушісі, CRDT және алгоритмдерді ресми тексерумен айналысады. Мартиннің кітабы «Деректерді көп қажет ететін қолданбаларды жобалау», 2017 жылы жарияланған, өте табысты болды және оны деректерді сақтау және өңдеу саласындағы бестселлер тізіміне енгізді. Кевин Скотт, Microsoft корпорациясының техникалық директоры, деді бірде: «Бұл кітап бағдарламалық жасақтама инженерлері үшін міндетті кітап болуы керек. Бұл әзірлеушілерге инфрақұрылым мен деректер жүйелерін жобалау мен енгізуде ақылдырақ көмектесу үшін теория мен тәжірибені біріктіретін сирек ресурс». Кафканы жасаушы және Confluent компаниясының техникалық директоры Джей Крепс осыған ұқсас нәрсені айтты.

Мартин академиялық зерттеулерге көшкенге дейін өнеркәсіпте жұмыс істеді және екі табысты стартаптың негізін қалады:

  • LinkedIn 2012 жылы сатып алған электрондық поштаңыздағы контактілердің әлеуметтік профилін көрсетуге арналған мазмұнды;
  • Go Test It, RedGate 2009 жылы сатып алған әртүрлі браузерлерде веб-сайттарды автоматты түрде сынауға арналған қызмет.

Тұтастай алғанда, Мартин біздің негізгі баяндамашыларымызға қарағанда танымал болмаса да, бөлінген есептеулерді дамытуға және индустрияға белгілі бір үлес қоса алды.

Бұл баяндамада Мартин өзінің академиялық зерттеулеріне жақынырақ тақырып туралы айтады. Google Docs және ұқсас құжатты бірлесіп өңдеу дивандарында "бірлескен өңдеу" репликация тапсырмасын білдіреді: әр пайдаланушының ортақ құжаттың жеке көшірмесі болады, содан кейін олар өзгертеді және барлық өзгерістер желі арқылы қалған бөліктерге жіберіледі. қатысушылар. Құжаттарды желіден тыс өзгерту басқа қатысушыларға қатысты құжаттың уақытша сәйкессіздігіне әкеледі, ал қайта синхрондау қақтығыстарды өңдеуді қажет етеді. Олар дәл осы үшін бар Қайшылықсыз қайталанатын деректер түрлері (CRDT), шын мәнінде, өте жаңа нәрсе, оның мәні тек 2011 жылы тұжырымдалған. Бұл баяндама сол уақыттан бері CRDT әлемінде не болғанын, ең соңғы жетістіктерді, жалпы жергілікті бірінші қолданбаларды жасау тәсілін және ашық бастапқы кітапхананы пайдалануды талқылайды. Автоматты біріктіру атап айтқанда.

Келесі аптада біз Хабреде Мартинмен ұзақ сұхбатты жариялаймыз, бұл қызықты болады.

Педро Рамалхете - Күтусіз деректер құрылымдары және күтусіз транзакциялар

19 гидра бастары. Бағдарламаға тамаша шолу Педро Cisco-да жұмыс істейді және соңғы он жыл ішінде параллельді алгоритмдерді, соның ішінде синхрондау механизмдерін, құлыпсыз және күтусіз деректер құрылымдарын және осы тақырып бойынша елестете алатын барлық нәрселерді әзірлеуде. Оның қазіргі ғылыми-зерттеу және инженерлік қызығушылықтары әмбебап конструкциялар, бағдарламалық жасақтаманың транзакциялық жады, тұрақты жады және дұрыс, масштабталатын және қателерге төзімді қолданбаларды қамтамасыз ететін ұқсас технологияларға бағытталған. Ол сонымен қатар тар шеңберде кеңінен танымал блогтың авторы Параметрлік франктар.

Көп ағынды қолданбалардың көпшілігі енді актерлер арасындағы хабарламалар кезегін пайдаланудан бастап кілттер қоймаларындағы индекстелген деректер құрылымдарына дейін параллель деректер құрылымдарында жұмыс істейді. Олар көптеген жылдар бойы Java JDK-де сәтті жұмыс істеп келеді және олар C++ тіліне баяу қосылып жатыр.

Параллельді деректер құрылымын жүзеге асырудың ең қарапайым жолы - әдістер мутекстермен қорғалған тізбекті (бір ағынды) іске асыру. Бұл кез келген маусымда қол жетімді, бірақ масштабтауға және өнімділікке қатысты айқын проблемалары бар. Сонымен қатар, құлыпсыз және күтусіз деректер құрылымдары қателерді жақсы жеңіп қана қоймайды, сонымен қатар жақсы өнімділік профиліне ие - дегенмен олардың дамуы терең тәжірибе мен нақты қолданбаға бейімделуді талап етеді. Барлығын бұзу үшін кодтың бір қате жолы жеткілікті.

Мұндай деректер құрылымдарын тіпті сарапшы емес адам жобалай және енгізе алатындай етіп қалай жасай аламыз? Кез келген дәйекті алгоритмді пайдалану арқылы ағынды қауіпсіз етуге болатыны белгілі әмбебап дизайн, немесе транзакциялық жады. Біріншіден, олар бұл мәселені шешуге кедергіні төмендете алады. Дегенмен, екі шешім де әдетте тиімсіз іске асыруға әкеледі. Педро бұл дизайнды қалай тиімдірек ете алғаны және оларды алгоритмдер үшін қалай пайдалануға болатыны туралы әңгімелейді.

Хайди Ховард - Бөлінген консенсусты босату

19 гидра бастары. Бағдарламаға тамаша шолу Хайди Ховард Мартин сияқты Кембридж университетінің бөлінген жүйелерді зерттеушісі. Оның мамандықтары - жүйелілік, қателерге төзімділік, өнімділік және бөлінген консенсус. Ол Paxos алгоритмін жалпылауымен танымал Икемді Paxos.

Естеріңізге сала кетейік, Paxos Лесли Лэмпорттың жұмысына негізделген сенімсіз компьютерлер желісіндегі консенсус мәселесін шешуге арналған хаттамалар тобы болып табылады. Осылайша, біздің кейбір спикерлеріміз бастапқыда басқа спикерлеріміз ұсынған мәселелермен жұмыс істеуде - бұл тамаша.

Көптеген хосттар арасында консенсус табу мүмкіндігі — шешу, көшбасшыны сайлау, блоктау немесе үйлестіру — қазіргі таратылған жүйелердегі негізгі мәселе. Paxos қазір консенсус мәселелерін шешудің негізгі жолы болып табылады және оның айналасында әртүрлі практикалық қажеттіліктер үшін алгоритмді кеңейту және оңтайландыру үшін көптеген зерттеулер жүргізілуде.

Бұл баяндамада біз бастапқы талаптарды жеңілдетіп, алгоритмді жалпылай отырып, Paxos-тың теориялық негізін қайта қарастырамыз. Біз Paxos консенсус тәсілдерінің үлкен ауқымының ішіндегі бір ғана нұсқа екенін және спектрдегі басқа нүктелер жақсы бөлінген жүйелерді құру үшін өте пайдалы екенін көреміз.

Алекс Петров — Өтпелі репликация және арзан кворумдар көмегімен сақтау шығындарын азайтыңыз

19 гидра бастары. Бағдарламаға тамаша шолу Алекс - деректер базасы және сақтау жүйесі бойынша маман, ал біз үшін одан да маңыздысы, компанияның қатысушысы Кассандра. Ол қазір О'Рейлимен бірге «Дерекқордың ішкі деректері» кітабында жұмыс істеуде.

бар жүйелер үшін түпкілікті консистенция (орысша терминологияда – «соңғы бірізділік»), түйін бұзылғаннан немесе желі бөлінуінен кейін келесі дилемманы шешу керек: не сұрауларды орындауды жалғастыру, бірізділіктен бас тарту немесе оларды орындаудан бас тарту және қолжетімділікті құрбан ету. Мұндай жүйеде кворумдар, түйіндердің қабаттасатын ішкі жиындары және кем дегенде бір түйінде ең соңғы мән болуын қамтамасыз ету жақсы шеттік шешім болуы мүмкін. Сіз ең соңғы мәндермен жауап беруді жалғастыра отырып, кейбір түйіндерге қателіктер мен қосылымның жоғалуынан аман шыға аласыз.

Дегенмен, әр нәрсенің өз бағасы бар. Кворумды репликациялау схемасы сақтау шығындарының артуын білдіреді: мәселе туындаған кезде көшірмелердің жеткілікті болуын қамтамасыз ету үшін артық деректер бірден бірнеше түйіндерде сақталуы керек. Барлық репликаларда барлық деректерді сақтаудың қажеті жоқ екен. Деректерді тек түйіндердің бір бөлігінде сақтасаңыз және сәтсіздіктерді өңдеу сценарийлері үшін арнайы түйіндерді (Transient Replica) пайдалансаңыз, жадтағы жүктемені азайтуға болады.

Есеп беру барысында біз қарастырамыз Куәгерлердің көшірмелері, қолданылған репликация схемасы Саңылаушы и мега дүкен, және бұл тұжырымдаманың іске асыру Apache Кассандра деп аталады Өтпелі репликация және арзан кворумдар.

Дмитрий Вюков - Горутиндер ашылды

19 гидра бастары. Бағдарламаға тамаша шолу Дмитрий - C/C++ және Go - Address/Memory/ThreadSanitizer және Linux ядросы үшін ұқсас құралдар үшін динамикалық тестілеумен жұмыс істейтін Google-дағы әзірлеуші. Go бағдарламасына масштабталатын горутиндік жоспарлаушы, желілік сауалнама және параллель қоқыс жинаушы үлес қосылды. Ол көп ағындылық бойынша сарапшы, ондаған жаңа блокталмаған алгоритмдердің авторы және иесі Қара белбеу Intel.

Енді есептің өзі туралы. Go тілінде горутиндер (жеңіл ағындар) және арналар (FIFO кезектері) түріндегі көп ағынды қолдауға ие. Бұл механизмдер пайдаланушыларға заманауи көп ағынды қосымшаларды жазуды өте оңай және жағымды етеді және бұл сиқырға ұқсайды. Біздің түсінгеніміздей, мұнда ешқандай сиқыр жоқ. Бұл баяндамада Дмитрий Go жоспарлаушысының қыр-сырына үңіліп, осы «сиқырды» жүзеге асырудың құпияларын көрсетеді. Алдымен ол жоспарлаушының негізгі құрамдас бөліктеріне шолу жасайды және оның қалай жұмыс істейтінін айтып береді. Әрі қарай, біз тұрақ/паркинг стратегиясы және блоктау жүйесінің қоңырауларын өңдеу сияқты жеке аспектілерді егжей-тегжейлі қарастырамыз. Ақырында, Дмитрий жоспарлаушыны жақсартулар туралы аздап айтады.

Дмитрий Бугаиченко - Ықтималдық эскиздермен және т.б. көмегімен бөлінген графикалық талдауды жылдамдату

19 гидра бастары. Бағдарламаға тамаша шолу Дмитрий университетпен және ғылыми қоғамдастықпен байланысын үзбей, аутсорсингте 9 жылға жуық жұмыс істеді. Одноклассникидегі үлкен деректерді талдау ол үшін теориялық дайындық пен ғылыми негізді нақты, сұранысқа ие өнімдерді әзірлеумен біріктірудің бірегей мүмкіндігі болды.

Бөлінген графикалық талдау қиын міндет болды және болып қала береді: көрші төбенің қосылымдары туралы ақпаратты алу қажет болғанда, деректерді жиі машиналар арасында тасымалдауға тура келеді, бұл орындалу уақытының артуына және желілік инфрақұрылымға жүктеменің артуына әкеледі. Бұл әңгімеде біз ықтимал деректер құрылымдарын немесе әлеуметтік желідегі достық графигінің симметриясы сияқты фактілерді пайдалану арқылы айтарлықтай өңдеу жылдамдығын қалай алуға болатынын көреміз. Мұның бәрі Apache Spark код мысалдарымен суреттелген.

Денис Рысцов - Өтпелі репликация және арзан кворумдар көмегімен сақтау шығындарын азайтыңыз

19 гидра бастары. Бағдарламаға тамаша шолу Денис - әзірлеуші Cosmos DB, дәйектілік үлгілерін, консенсус алгоритмдерін және таратылған транзакцияларды тексеру бойынша сарапшы. Қазіргі уақытта ол Microsoft-та жұмыс істейді, ал оған дейін Amazon және Yandex-те бөлінген жүйелерде жұмыс істеген.

Бұл баяндамада біз соңғы бірнеше жылда ойлап табылған, шартты жаңартуды қолдайтын кез келген деректер қоймасының үстіне клиент жағында іске асырылуы мүмкін таратылған транзакция протоколдарын қарастырамыз (салыстыру және орнату). Қорытындысы: өмір екі фазалық міндеттемемен аяқталмайды, транзакцияларды кез келген дерекқордың үстіне - қолданба деңгейінде қосуға болады, бірақ әртүрлі хаттамалардың (2PC, Percolator, RAMP) әртүрлі айырбастары бар және бізге берілмейді. Тегін.

Алексей Зиновьев - Барлық ML алгоритмдері оны таралған аспанға жеткізе бермейді

19 гидра бастары. Бағдарламаға тамаша шолу Алексей (Залеслав) ұзақ уақыт баяндамашы және басқа конференцияларда бағдарламалық комитеттердің мүшесі. EPAM Systems-те жаттықтырушысы және 2012 жылдан бері Hadoop/Spark және басқа да үлкен деректермен дос.

Бұл баяндамада Алексей Apache Spark ML, Apache Mahout, Apache Flink ML және Apache Ignite ML құру тәжірибесі негізінде бөлінген режимде орындау үшін классикалық машиналық оқыту алгоритмдерін бейімдеу мәселелері туралы әңгімелейді. Алексей сонымен қатар осы шеңберлерде таратылған ML алгоритмдерін енгізу туралы айтады.

Соңында Яндекстің Яндекс дерекқоры туралы екі есебі.

Владислав Кузнецов - Яндекс дерекқоры – ақауларға төзімділікті қалай қамтамасыз етеміз

19 гидра бастары. Бағдарламаға тамаша шолу Владислав - таратылған платформалар тобында Яндекстің әзірлеушісі. Яндекс дерекқоры – көлденең масштабталатын, гео-таратылған, ақауларға төзімді ДҚБЖ, дискілердің, серверлердің, тіректердің және деректер орталықтарының істен шығуына тұрақтылығын жоғалтпай төтеп бере алады. Ақауларға төзімділікті қамтамасыз ету үшін бөлінген консенсусқа қол жеткізудің меншікті алгоритмі, сондай-ақ есепте егжей-тегжейлі талқыланатын бірқатар техникалық шешімдер қолданылады. Есеп ДҚБЖ әзірлеушілерін де, ДҚБЖ негізіндегі қолданбалы шешімдерді әзірлеушілерді де қызықтыруы мүмкін.

Семен Чечеринда - YDB-де таратылған транзакциялар

19 гидра бастары. Бағдарламаға тамаша шолу Semyon - Яндекстің таратылған платформалар тобының әзірлеушісі, YDB қондырғысын көп жалға алушы пайдалану мүмкіндігімен жұмыс істейді.

Яндекс дерекқоры OLTP сұрауларына арналған және транзакциялық жүйе үшін ACID талаптарына сәйкес келеді. Бұл есепте біз YDB транзакция жүйесінің негізінде жатқан транзакцияны жоспарлау алгоритмін қарастырамыз. Транзакцияларға қандай субъектілер қатысатынын, транзакцияларға жаһандық тәртіпті кім тағайындайтынын, транзакцияның атомдылығына, сенімділігіне және оқшауланудың қатаң деңгейіне қалай қол жеткізілетінін қарастырайық. Мысал ретінде жалпы мәселені пайдалана отырып, екі фазалық міндеттемелерді және детерминирленген транзакцияларды қолданатын транзакцияны іске асыруды қарастырайық. Олардың айырмашылықтарын талқылайық.

Ары қарай не?

Конференция бағдарламасы жаңа баяндамалармен толығуды жалғастыруда. Атап айтқанда, біз баяндама күтеміз Никита Коваль (ndkoval) JetBrains және Олег Анастасьев (m0nstermind) Одноклассники компаниясынан. Никита Котлин командасында корутиндерге арналған алгоритмдермен жұмыс істейді, ал Олег Одноклассники платформасында жоғары жүктемелі жүйелерге арналған архитектура мен шешімдерді әзірлейді. Сонымен қатар, тағы 1 шартты түрде бос орын бар, бағдарлама комитеті дәл қазір оған үміткерлермен жұмыс істеуде.

Гидра конференциясы 11-12 шілдеде Санкт-Петербургте өтеді. Билеттер бар ресми сайтында сатып алу. Онлайн билеттерінің болуына назар аударыңыз - егер қандай да бір себептермен бұл күндері Санкт-Петербургке жете алмасаңыз.

Гидрада кездескенше!

Ақпарат көзі: www.habr.com

пікір қалдыру