19 հիդրայի գլուխ: Ծրագրի հիանալի ակնարկ

Հուլիսի 11-12-ը Սանկտ Պետերբուրգում տեղի կունենա համաժողով Hydra, նվիրված զուգահեռ և բաշխված համակարգերի զարգացմանը։ Hydra-ի հնարքն այն է, որ այն միավորում է հիանալի գիտնականներին (որոնց սովորաբար կարելի է գտնել միայն արտասահմանյան գիտական ​​կոնֆերանսներում) և հայտնի պրակտիկ ինժեներներին մեկ մեծ ծրագրի մեջ՝ գիտության և պրակտիկայի խաչմերուկում:

Hydra-ն մեր ամենակարևոր համաժողովներից մեկն է վերջին մի քանի տարիների ընթացքում: Դրան նախորդել է շատ լուրջ նախապատրաստություն, բանախոսների ընտրություն, զեկույցներ։ Անցյալ շաբաթ այս մասին Խաբրո հարցազրույցը դուրս եկավ JUG.ru Group-ի տնօրեն Ալեքսեյ Ֆեդորովի հետ (23derevo).

Մենք արդեն ասված է երեք կարևոր մասնակիցների մասին՝ բաշխված համակարգերի տեսության հիմնադիրները՝ Լեսլի Լեմպորտը, Մորիս Հերլիհին և Մայքլ Սքոթը։ Ժամանակն է ավելի մանրամասն խոսել ամբողջ ծրագրի մասին:

19 հիդրայի գլուխ: Ծրագրի հիանալի ակնարկ

Մոտիվացիա

Եթե ​​դուք զբաղվում եք ծրագրավորմամբ, ապա այս կամ այն ​​կերպ գործ ունեք բազմաթելային և բաշխված հաշվարկների հետ։ Նրանց հետ անմիջականորեն աշխատում են համապատասխան ոլորտների մասնագետները, բայց անուղղակիորեն բաշխումը մեզ ամենուր է նայում. ցանկացած բազմամիջուկ համակարգչի կամ բաշխված ծառայության մեջ կա մի բան, որը զուգահեռաբար հաշվարկներ է կատարում:

Կան բազմաթիվ կոնֆերանսներ, որոնք ընդգրկում են կիրառական ծրագրավորման տարբեր ասպեկտներ: Սպեկտրի մյուս կողմում մենք ունենք մասնագիտացված գիտական ​​դպրոցներ, որոնք բացահայտում են բարդ տեսության հսկայական քանակություն դասախոսությունների ձևաչափով: Օրինակ, Սանկտ Պետերբուրգում Hydra-ին զուգահեռ կա SPTDC դպրոց. Hydra կոնֆերանսում մենք փորձեցինք ի մի բերել կոշտ պրակտիկան, գիտությունը և այն ամենը, ինչ նրանց խաչմերուկում է:

Մտածեք այս մասին. մենք ապրում ենք զարմանալի ժամանակներում, երբ դուք կարող եք անձամբ հանդիպել գիտության և ճարտարագիտության ոլորտի հիմնադիրներին, որոնք մենք ուսումնասիրում ենք: Ֆիզիկոսները չեն հանդիպի ո՛չ Նյուտոնին, ո՛չ Էյնշտեյնին՝ գնացքը գնացել է։ Բայց մեր կողքին դեռ ապրում են նրանք, ովքեր ստեղծեցին բաշխված համակարգերի տեսության հիմքերը, հայտնագործեցին ծրագրավորման հայտնի լեզուներ և առաջին անգամ մարմնավորեցին այս ամենը աշխատանքային նախատիպերում։ Այս մարդիկ կիսատ չեն թողել իրենց աշխատանքը, նրանք հենց հիմա աշխատում են համաշխարհային ճանաչում ունեցող համալսարաններում և ընկերություններում հրատապ խնդիրների վրա և այսօր գիտելիքի և փորձի ամենամեծ աղբյուրն են:

Մյուս կողմից, նրանց հետ հանդիպելու հնարավորությունը սովորաբար մնում է զուտ տեսական. մեզանից քչերը կարող են մշտապես հետևել Ռոչեսթերի համալսարանի հանրային իրադարձություններին, այնուհետև շտապել ԱՄՆ և վերադառնալ Մայքլ Սքոթի հետ դասախոսության: Hydra-ի բոլոր անդամներին այցելելը մի փոքր հարստություն կարժենա՝ չհաշված կորսված ժամանակի անդունդը (չնայած դա թվում է հետաքրքիր որոնում):

Մյուս կողմից, մենք ունենք շատ բարձրակարգ ինժեներներ, ովքեր այժմ աշխատում են բաշխված համակարգերում հրատապ խնդիրների վրա, և նրանք, անկասկած, շատ բան ունեն ասելու: Բայց այստեղ է խնդիրը՝ նրանք աշխատանքют, և նրանց ժամանակը արժեքավոր է։ Այո, եթե դուք Microsoft-ի, Google-ի կամ JetBrains-ի աշխատակից եք, ներքին միջոցառման ժամանակ հայտնի խոսնակներից մեկի հետ հանդիպելու հավանականությունը կտրուկ մեծանում է, բայց ընդհանուր առմամբ, ոչ, դա ամեն օր չի լինում։

Այսպիսով, Hydra Conference-ը կատարում է մի կարևոր խնդիր, որը մեզանից շատերը չեն կարող ինքնուրույն կատարել՝ մեկ տեղում և մի ժամանակ, այն համախմբում է մարդկանց, ում գաղափարները կամ փոխազդեցությունները կարող են փոխել ձեր կյանքը: Ես ընդունում եմ, որ ոչ բոլորին են պետք բաշխված համակարգեր կամ որոշ բարդ հիմնարար բաներ: Դուք կարող եք ծրագրավորել CRUD-ները PHP-ում ձեր մնացած կյանքի համար և մնալ լիովին երջանիկ: Բայց ում դա պետք է, սա ձեր հնարավորությունն է։

Բավական երկար ժամանակ է անցել Հաբրեի մասին Hydra կոնֆերանսի առաջին հայտարարությունից: Այս ընթացքում մեծ աշխատանք է կատարվել, և այժմ մենք ունենք գրեթե բոլոր զեկույցների ցանկը։ Չկան դանդաղ մեկ թելերով ալգորիթմներ, պարզապես մաքուր բաշխված հարդքոր: Եկեք ավարտենք ընդհանուր խոսքերով և տեսնենք, թե ինչ կա մեր ձեռքին հիմա։

Հիմնական նոտաներ

Հիմնական նոտաները սկսվում և ավարտվում են համաժողովի օրերին: Սովորաբար բացման հիմնական նպատակը համաժողովի ընդհանուր ոգին և ուղղությունը սահմանելն է: Փակման հիմնական ելույթը գծում է գիծ և բացատրում, թե ինչպես կարող ենք ապրել համաժողովի ընթացքում ձեռք բերված գիտելիքներով և հմտություններով: Սկիզբը և վերջը. այն, ինչ ամենալավն է հիշվում, և ընդհանրապես, մեծ նշանակություն ունի:

Cliff Սեղմեք H2O բաշխված K/V ալգորիթմը

19 հիդրայի գլուխ: Ծրագրի հիանալի ակնարկ Քլիֆը լեգենդ է Java-ի աշխարհում: 90-ականների վերջին իր թեկնածուական ատենախոսության համար գրել է աշխատություն՝ վերնագրով «Վերլուծությունների համադրում, օպտիմալացումների համադրում», որը որոշ ժամանակ անց հիմք դարձավ HotSpot JVM Server Compiler-ի համար։ Երկու տարի անց նա արդեն աշխատում էր Sun Microsystems-ում JVM-ում և ամբողջ աշխարհին ցույց տվեց, որ JIT-ն իրավունք ունի գոյատևելու: Այս ամբողջ պատմությունն այն մասին, թե ինչպես է Java-ն ամենաարագ ժամանակակից գործարկումներից մեկն է՝ ամենախելացի և ամենաարագ օպտիմիզացիաներով, եկել է Cliff Click-ից: Հենց սկզբում ենթադրվում էր, որ եթե ինչ-որ բան հասանելի է ստատիկ կոմպիլյատորին, ապա նույնիսկ պետք չէ փորձել ջիտել այն: Քլիֆի և թիմի աշխատանքի շնորհիվ բոլոր նոր լեզուները սկսեցին ստեղծվել լռելյայն JIT կազմման գաղափարով։ Իհարկե, սա մեկ մարդու աշխատանք չէր, բայց Քլիֆը շատ կարևոր դեր ունեցավ դրանում։

Բացման հիմնական խոսքում Քլիֆը կխոսի իր մյուս նախաձեռնության մասին. H20, հիշողության հարթակ՝ բաշխված և մասշտաբային մեքենայական ուսուցման համար արդյունաբերական ծրագրերի համար։ Ավելի ճիշտ՝ դրա ներսում բանալի-արժեք զույգերի բաշխված պահեստավորման մասին։ Սա շատ արագ պահեստավորում է շատ հետաքրքիր հատկություններով (հստակ ցանկը կա նկարագրությունը), որոնք թույլ են տալիս նմանատիպ լուծումներ օգտագործել մեծ տվյալների հոսքի մաթեմատիկայի մեջ։

Մեկ այլ զեկույց, որը Քլիֆը կտա. Azul ապարատային գործարքային հիշողության փորձ. Նրա կենսագրության մեկ այլ հատված՝ տասը տարի աշխատում է Azul-ում, որտեղ նա թարմացրել և կատարելագործել է շատ բաներ Azul-ի ապարատային և տեխնոլոգիական փաթեթում՝ JIT կոմպիլյատորներ, գործարկման ժամանակ, շղթայի մոդել, սխալների մշակում, կույտերի մշակում, ապարատային ընդհատումներ, դասի բեռնում և այլն, և այլն. գաղափարը.

Ամենահետաքրքիրը սկսվեց այն ժամանակ, երբ նրանք սարքավորում էին մեծ բիզնեսի համար՝ սուպերհամակարգիչ՝ Java-ն գործարկելու համար: Սա բավականին նորարարական բան էր՝ հատուկ Java-ի համար հարմարեցված, որն ունի հատուկ պահանջներ՝ կարդալ հիշողության արգելքներ աղբահանության ցածր դադարի համար, սահմանների ստուգմամբ զանգվածներ, վիրտուալ զանգեր... Ամենաթեժ տեխնոլոգիաներից մեկը ապարատային գործարքային հիշողությունն է: 1 միջուկներից որևէ մեկի ամբողջ L864-ը կարող է մասնակցել գործարքների գրմանը, ինչը հատկապես կարևոր է Java-ում կողպեքների հետ աշխատելու համար (սինխրոն բլոկները կարող են զուգահեռ աշխատել, քանի դեռ իրական հիշողության կոնֆլիկտ չկա): Բայց գեղեցիկ գաղափարը ջախջախվեց դաժան իրականության պատճառով, և այս ելույթում Քլիֆը կպատմի ձեզ, թե ինչու HTM-ն և STM-ն այնքան էլ հարմար չեն բազմաթելային հաշվարկների գործնական կարիքներին:

Մայքլ Սքոթ - Երկակի տվյալների կառուցվածքներ

19 հիդրայի գլուխ: Ծրագրի հիանալի ակնարկ Մայքլ Սքոթ - Ռոչեսթերի համալսարանի համակարգչային գիտության պրոֆեսոր, ում հետ ճակատագիրը կապեց նրան արդեն 34 տարեկանև իր հայրենի Վիսկոնսին-Մեդիսոն համալսարանում հինգ տարի եղել է դեկան։ Նա ուսումնասիրում և ուսանողներին սովորեցնում է զուգահեռ և բաշխված ծրագրավորման և լեզվի ձևավորման մասին:

Ամբողջ աշխարհը ճանաչում է Միքայելին դասագրքի շնորհիվ «Ծրագրավորման լեզվի պրագմատիկա», որի վերջին հրատարակությունը լույս է տեսել համեմատաբար վերջերս՝ 2015թ. Նրա աշխատանքը «Ընդհանուր հիշողության բազմապրոցեսորների վրա մասշտաբային համաժամացման ալգորիթմներ» ստացել Դեյկստրայի մրցանակ որպես ամենահայտնիներից մեկը բաշխված հաշվարկների ոլորտում և բացահայտ պառկած Ռոչեսթերի համալսարանի առցանց գրադարանում: Դուք կարող եք նաև նրան ճանաչել որպես հենց Մայքլ-Սքոթի ալգորիթմի հեղինակ «Պարզ, արագ և գործնական չարգելափակող և արգելափակող համաժամանակյա հերթերի ալգորիթմներ».

Ինչ վերաբերում է Java աշխարհին, սա հատուկ դեպք է. Դագ Լիայի հետ նա մշակել է չարգելափակող ալգորիթմներ և համաժամանակյա հերթեր, որոնց վրա աշխատում են Java գրադարանները։ Սա հենց այն է, ինչի մասին է լինելու «Dual data structures»-ի հիմնական թեման. Java SE 6-ում այս կառույցների ներդրումը 10 անգամ բարելավել է կատարումը: java.util.concurrent.ThreadPoolExecutor. Եթե ​​նախապես մտածում եք, թե որոնք են այս «երկակի տվյալների կառուցվածքները», ապա դրա մասին տեղեկություններ կան հարակից աշխատանք.

Մորիս Հերլիհի - Բլոկչեյնները և բաշխված հաշվարկների ապագան

19 հիդրայի գլուխ: Ծրագրի հիանալի ակնարկ Մորիս Հերլիհի - երկու Dijkstra մրցանակների հաղթող: Առաջինը աշխատանքի համար է «Սպասեք առանց համաժամացման» (Բրաունի համալսարան), իսկ երկրորդը՝ ավելի վերջերս՝ «Գործարքային հիշողություն. ճարտարապետական ​​աջակցություն տվյալների կողպեքից զերծ կառուցվածքներին» (Վիրջինիայի տեխնիկական համալսարան): Dijkstra մրցանակը ճանաչում է այն աշխատանքը, որի նշանակությունն ու ազդեցությունը տեսանելի են եղել առնվազն տասը տարի, և Մորիսը ակնհայտորեն ոլորտի ամենահայտնի փորձագետներից մեկն է: Նա ներկայումս աշխատում է որպես պրոֆեսոր Բրաունի համալսարանում և ունի ձեռքբերումների մի պարբերություն երկար ցուցակ:

Այս փակման հիմնական ելույթում Մորիսը կխոսի բլոկչեյն բաշխված համակարգերի տեսության և պրակտիկայի մասին՝ բաշխված հաշվարկների դասականների տեսանկյունից, և թե ինչպես է այն պարզեցնում առնչվող բազմաթիվ խնդիրներ: Սա զեկույց է բացառապես կոնֆերանսի թեմայի վերաբերյալ. ամենևին էլ ոչ հանքարդյունաբերական հիփերի, այլ այն մասին, թե ինչպես կարելի է զարմանալիորեն արդյունավետ և պատշաճ կերպով օգտագործել մեր գիտելիքները մի շարք խնդիրների առնչությամբ:

2017 թվականի հուլիսին Մորիսն արդեն եկել էր Ռուսաստան՝ հաճախելու SPTDC դպրոց, մասնակցեց JUG.ru հանդիպմանը, և ձայնագրությունը կարելի է դիտել YouTube-ում.

Հիմնական ծրագիր

Հաջորդիվ կլինի ծրագրում ընդգրկված հաշվետվությունների կարճ ակնարկ։ Զեկույցներից մի քանիսը մանրամասն նկարագրված են այստեղ, մյուսները՝ ավելի հակիրճ։ Երկար նկարագրությունները հիմնականում վերաբերում էին անգլալեզու զեկույցներին, որոնք պահանջում էին հղումներ դեպի գիտական ​​հոդվածներ, տերմիններ Վիքիպեդիայում և այլն։ Ամբողջական ցանկը հասանելի է տես կոնֆերանսի կայքում. Կայքի ցանկը կթարմացվի և կլրացվի։

Լեսլի Լեմպորտ - Հարցուպատասխան

19 հիդրայի գլուխ: Ծրագրի հիանալի ակնարկ Լեսլի Լեմպորտը բաշխված հաշվողականության հիմնական աշխատանքների հեղինակն է: «LaTeX» նշանակում է «Lamport TeX»: Հենց նա էր առաջինը, դեռ 1979 թվականին, ներկայացրեց հայեցակարգը հաջորդական հետևողականություն, և նրա հոդվածը «Ինչպես ստեղծել բազմապրոցեսորային համակարգիչ, որը ճիշտ է կատարում բազմապրոցեսային ծրագրերը» ստացել է Դեյկստրայի մրցանակ։

Սա հաղորդման ամենաանսովոր հատվածն է ֆորմատով, քանի որ այն նույնիսկ զեկույց չէ, այլ հարց ու պատասխան։ Երբ հանդիսատեսի մի զգալի մասն արդեն ծանոթ է (կամ կարող է ծանոթանալ) «Լամպորտի տեսության» վրա հիմնված բոլոր տեսակի ստեղծագործություններին, նրա սեփական հոդվածներին ու զեկույցներին, ավելի կարևոր է ողջ հասանելի ժամանակն ուղղել անմիջական շփմանը։

Գաղափարը պարզ է. դուք դիտում եք երկու զեկույց YouTube-ում. «Ծրագրավորումը պետք է լինի ավելին, քան կոդավորումը» и «Եթե ծրագիր չեք գրում, մի օգտագործեք ծրագրավորման լեզու» և պատրաստիր առնվազն մեկ հարց, և Լեսլին պատասխանում է:

Այս երկու տեսանյութերից առաջինը մենք արդեն ունենք վերածվել է հաբրո հոդվածի. Եթե ​​տեսանյութը դիտելու մեկ ժամ ժամանակ չունեք, կարող եք արագ կարդալ այն ամենը տեքստային տեսքով:

Նշում. Լեսլի Լեմպորտի շատ այլ տեսանյութեր կան YouTube-ում: Օրինակ, կա մի մեծ TLA+ դասընթաց. Այս ամբողջ դասընթացի անցանց տարբերակը հասանելի է այստեղ հեղինակի գլխավոր էջ, և նա այն վերբեռնեց YouTube՝ շարժական սարքերում ավելի հեշտ դիտելու համար:

Մարտին Կլեպման - Տվյալների համաժամացում օգտատերերի սարքերի միջև՝ բաշխված համագործակցության համար

19 հիդրայի գլուխ: Ծրագրի հիանալի ակնարկ Մարտին Քլեպմանը Քեմբրիջի համալսարանի հետազոտող է, որն աշխատում է CRDT-ի և ալգորիթմների պաշտոնական ստուգման վրա: Մարտինի գիրքը «Տվյալների ինտենսիվ հավելվածների նախագծում»2017-ին լույս տեսած, շատ հաջողակ է և այն հայտնվել է բեսթսելերների ցուցակում՝ տվյալների պահպանման և մշակման ոլորտում: Քևին Սքոթ, Microsoft-ի CTO, մի անգամ ասաց«Այս գիրքը պետք է պարտադիր լինի ծրագրային ապահովման ինժեներների համար: Սա հազվագյուտ ռեսուրս է, որը համատեղում է տեսությունն ու պրակտիկան՝ օգնելու ծրագրավորողներին ավելի խելացի ենթակառուցվածքների և տվյալների համակարգերի նախագծման և ներդրման հարցում»: Kafka-ի ստեղծող և Confluent-ի CTO-ն՝ Ջեյ Կրեպսը, նման բան ասաց.

Մինչ ակադեմիական հետազոտությունների անցնելը, Մարտինն աշխատել է արդյունաբերության մեջ և համահիմնել երկու հաջողակ նորաստեղծ ձեռնարկություններ.

  • Rapportive, որը նվիրված է ձեր էլ.փոստից կոնտակտների սոցիալական պրոֆիլի ցուցադրմանը, որը LinkedIn-ը գնել է 2012 թվականին;
  • Go Test It՝ տարբեր բրաուզերներում կայքերի ավտոմատ փորձարկման ծառայություն, որը RedGate-ը գնել է 2009 թվականին։

Ընդհանրապես, Մարտինը, թեև ավելի քիչ հայտնի է, քան մեր հիմնական գրառումները, արդեն կարողացել է որոշակի ներդրում ունենալ բաշխված հաշվարկների զարգացման և արդյունաբերության մեջ:

Այս ելույթում Մարտինը կխոսի իր ակադեմիական հետազոտություններին ավելի մոտ մի թեմայի մասին։ Google Փաստաթղթերում և նմանատիպ փաստաթղթերի համատեղ խմբագրման բազմոցներում «համատեղ խմբագրումը» վերաբերում է կրկնօրինակման առաջադրանքին. յուրաքանչյուր օգտատեր ունի ընդհանուր փաստաթղթի իր կրկնօրինակը, որը նրանք այնուհետև փոփոխում են, և բոլոր փոփոխություններն ուղարկվում են ցանցի մյուս մասերին: մասնակիցներին։ Փաստաթղթերի անցանց փոփոխությունները հանգեցնում են փաստաթղթի ժամանակավոր անհամապատասխանության այլ մասնակիցների հետ կապված, և նորից համաժամացումը պահանջում է կոնֆլիկտների լուծում: Հենց դրա համար էլ նրանք գոյություն ունեն Առանց կոնֆլիկտների կրկնվող տվյալների տեսակները (CRDT), ըստ էության, բավականին նոր բան է, որի էությունը ձեւակերպվել է միայն 2011թ. Այս ելույթը քննարկում է, թե ինչ է տեղի ունեցել այդ ժամանակից ի վեր CRDT աշխարհում, որոնք են ամենավերջին առաջընթացները, ընդհանուր առմամբ տեղական առաջին հավելվածների ստեղծման մոտեցումը և բաց կոդով գրադարանի օգտագործումը: Ավտոմիաձուլում մասնավորապես.

Հաջորդ շաբաթ մենք Մարտինի հետ երկար հարցազրույց կհրապարակենք Habré-ում, հետաքրքիր կլինի։

Պեդրո Ռամալհետե - Առանց սպասման տվյալների կառուցվածքներ և առանց սպասման գործարքներ

19 հիդրայի գլուխ: Ծրագրի հիանալի ակնարկ Պեդրոն աշխատում է Cisco-ում և վերջին տասը տարիների ընթացքում մշակում է զուգահեռ ալգորիթմներ, ներառյալ համաժամացման մեխանիզմները, տվյալների առանց կողպման և սպասման կառուցվածքները և այն ամենը, ինչ կարող եք պատկերացնել այս թեմայով: Նրա ընթացիկ հետազոտական ​​և ինժեներական հետաքրքրությունները կենտրոնացած են ունիվերսալ կոնստրուկցիաների, ծրագրային գործառնական հիշողության, մշտական ​​հիշողության և նմանատիպ տեխնոլոգիաների վրա, որոնք հնարավորություն են տալիս ճիշտ, մասշտաբային և սխալ հանդուրժող հավելվածներ: Նա նաև նեղ շրջանակներում լայնորեն հայտնի բլոգի հեղինակ է Concurrency Freaks.

Բազմաթելային հավելվածների մեծ մասն այժմ աշխատում է տվյալների զուգահեռ կառուցվածքների վրա՝ սկսած դերակատարների միջև հաղորդագրությունների հերթերի օգտագործումից մինչև ինդեքսավորվող տվյալների կառուցվածքները բանալի-արժեքի պահեստներում: Նրանք երկար տարիներ հաջողությամբ աշխատում են Java JDK-ում և կամաց-կամաց ավելանում են C++-ում։

Զուգահեռ տվյալների կառուցվածքը իրականացնելու ամենապարզ ձևը հաջորդական (մեկ թելերով) իրականացումն է, որտեղ մեթոդները պաշտպանված են մուտեքսներով: Սա հասանելի է ցանկացած հունիս ամսին, բայց ակնհայտ խնդիրներ ունի մասշտաբի և կատարման հետ: Միևնույն ժամանակ, առանց կողպման և սպասման տվյալների կառուցվածքները ոչ միայն ավելի լավ են հաղթահարում սխալները, այլև ունեն ավելի լավ կատարողական պրոֆիլ, սակայն դրանց զարգացումը պահանջում է խորը փորձաքննություն և հարմարեցում կոնկրետ հավելվածին: Կոդերի մեկ սխալ տողը բավական է ամեն ինչ կոտրելու համար:

Ինչպե՞ս կարող ենք այնպես անել, որ նույնիսկ ոչ փորձագետը կարողանա նախագծել և իրականացնել նման տվյալների կառուցվածքներ: Հայտնի է, որ ցանկացած հաջորդական ալգորիթմ կարելի է դարձնել թելի անվտանգ՝ օգտագործելով կամ ունիվերսալ դիզայն, կամ գործարքային հիշողություն: Առաջին հերթին նրանք կարող են նվազեցնել այս խնդրի լուծման մեջ մտնելու արգելքը։ Այնուամենայնիվ, երկու լուծումներն էլ սովորաբար հանգեցնում են անարդյունավետ իրականացման: Պեդրոն կխոսի այն մասին, թե ինչպես են նրանց հաջողվել այս դիզայնն ավելի արդյունավետ դարձնել և ինչպես կարող եք դրանք օգտագործել ձեր ալգորիթմների համար:

Հայդի Հովարդ - Ազատագրող բաշխված կոնսենսուս

19 հիդրայի գլուխ: Ծրագրի հիանալի ակնարկ Հայդի Հովարդը, ինչպես Մարտինը, Քեմբրիջի համալսարանի բաշխված համակարգերի հետազոտող է: Նրա մասնագիտություններն են հետևողականությունը, սխալների հանդուրժողականությունը, կատարումը և բաշխված կոնսենսուսը: Նա առավել հայտնի է Paxos ալգորիթմի իր ընդհանրացումով, որը կոչվում է Ճկուն Paxos.

Հիշեցնենք, որ Պաքսոս Անվստահելի համակարգիչների ցանցում կոնսենսուսի խնդիրը լուծելու արձանագրությունների ընտանիք է՝ հիմնված Լեսլի Լեմպորտի աշխատանքի վրա։ Այսպիսով, մեր խոսնակներից ոմանք աշխատում են խնդիրների վրա, որոնք ի սկզբանե առաջարկվել էին մեր մյուս խոսնակների կողմից, և սա հիանալի է:

Բազմաթիվ հյուրընկալողների միջև կոնսենսուս գտնելու կարողությունը՝ հասցեագրման, առաջնորդի ընտրության, արգելափակման կամ համակարգման համար, հիմնարար խնդիր է ժամանակակից բաշխված համակարգերում: Paxos-ն այժմ կոնսենսուսային խնդիրների լուծման հիմնական միջոցն է, և դրա շուրջ բազմաթիվ հետազոտություններ են կատարվում՝ ընդլայնելու և օպտիմալացնելու ալգորիթմը տարբեր գործնական կարիքների համար:

Այս զրույցի ընթացքում մենք կվերանայենք Paxos-ի տեսական հիմքերը՝ թուլացնելով սկզբնական պահանջները և ընդհանրացնելով ալգորիթմը: Մենք կտեսնենք, որ Paxos-ը, ըստ էության, ընդամենը մեկ տարբերակ է կոնսենսուսային մոտեցումների հսկայական շարքից, և որ սպեկտրի մյուս կետերը նույնպես շատ օգտակար են լավ բաշխված համակարգեր կառուցելու համար:

Ալեքս Պետրով - Կրճատեք ձեր պահպանման ծախսերը անցողիկ կրկնօրինակման և էժան քվորումների միջոցով

19 հիդրայի գլուխ: Ծրագրի հիանալի ակնարկ Ալեքսը տվյալների բազայի և պահեստավորման համակարգերի մասնագետ է, և մեզ համար, որ ավելի կարևոր է, կոմիտեր է Cassandra. Նա այժմ աշխատում է «Տվյալների բազայի ներքին» գրքի վրա Օ'Ռեյլիի հետ:

Համակարգերի համար վերջնական հետևողականություն (ռուսերեն տերմինաբանությամբ՝ «վերջնական հետևողականություն»), հանգույցի խափանումից կամ ցանցի պառակտումից հետո դուք պետք է լուծեք հետևյալ երկընտրանքը՝ կա՛մ շարունակեք կատարել հարցումները՝ զոհաբերելով հետևողականությունը, կա՛մ հրաժարվել դրանց կատարումից և զոհաբերել հասանելիությունը: Նման համակարգում քվորումները, հանգույցների ենթաբազմությունների համընկնումը և առնվազն մեկ հանգույցի ամենավերջին արժեքի պարունակության ապահովումը կարող են լավ եզրային լուծում լինել: Դուք կարող եք գոյատևել ձախողումներից և որոշ հանգույցների հետ կապի կորստից՝ միաժամանակ արձագանքելով վերջին արժեքներին:

Այնուամենայնիվ, ամեն ինչ ունի իր գինը. Քվորումի կրկնօրինակման սխեման նշանակում է պահպանման ծախսերի ավելացում. ավելորդ տվյալները պետք է պահվեն միանգամից մի քանի հանգույցներում՝ ապահովելու համար, որ առկա են բավականաչափ պատճեններ, երբ խնդիր է առաջանում: Պարզվում է, որ պետք չէ բոլոր տվյալները պահել բոլոր կրկնօրինակների վրա։ Դուք կարող եք նվազեցնել պահեստի բեռը, եթե տվյալները պահում եք միայն հանգույցների մի մասի վրա, և օգտագործում եք հատուկ հանգույցներ (Transient Replica) ձախողման հետ կապված սցենարների համար:

Զեկույցի ընթացքում մենք կդիտարկենք Վկաների կրկնօրինակներ, կրկնօրինակման սխեման, որն օգտագործվում է Ներկառուցված и Megastore, և այս հայեցակարգի իրականացումը Apache Cassandra- ում կոչվում է Անցումային կրկնօրինակում և էժան քվորումներ.

Դմիտրի Վյուկով - Գորութինները բաց են

19 հիդրայի գլուխ: Ծրագրի հիանալի ակնարկ Դմիտրին Google-ի ծրագրավորող է, որն աշխատում է C/C++ և Go - Address/Memory/ThreadSanitizer-ի և Linux միջուկի նմանատիպ գործիքների դինամիկ փորձարկման վրա: Նպաստել է Go a scalable goroutine timer, ցանցային հարցախույզ և զուգահեռ աղբահավաք: Նա բազմալեզու մասնագետ է, տասնյակ նոր չարգելափակող ալգորիթմների հեղինակ և սեփականատեր է. Սև գոտի Intel:

Հիմա մի փոքր բուն զեկույցի մասին։ Go լեզուն ունի բազմաթելային աջակցություն՝ գորուտինների (թեթև թելեր) և ալիքների (FIFO հերթեր) տեսքով: Այս մեխանիզմները օգտատերերի համար շատ հեշտ և հաճելի են դարձնում ժամանակակից բազմաթելային հավելվածներ գրելը, և դա կախարդական տեսք ունի: Ինչպես հասկանում ենք, այստեղ ոչ մի կախարդանք չկա։ Այս զրույցի ընթացքում Դմիտրին կխորանա Go ժամանակացույցի բարդությունների մեջ և ցույց կտա այս «կախարդության» իրականացման գաղտնիքները: Նախ, նա ակնարկ կտա ժամանակացույցի հիմնական բաղադրիչներին և կպատմի, թե ինչպես է այն աշխատում: Այնուհետև մենք ավելի մանրամասն կանդրադառնանք առանձին ասպեկտներին, ինչպիսիք են կայանման/կայանատեղի չկատարելու ռազմավարությունը և արգելափակման համակարգի զանգերի մշակումը: Ի վերջո, Դմիտրին մի փոքր կխոսի ժամանակացույցի հնարավոր բարելավումների մասին:

Դմիտրի Բուգայչենկո - Արագացնելով բաշխված գրաֆիկների վերլուծությունը հավանական էսքիզներով և այլն

19 հիդրայի գլուխ: Ծրագրի հիանալի ակնարկ Դմիտրին գրեթե 9 տարի աշխատել է աութսորսինգում՝ չկորցնելով կապը համալսարանի և գիտական ​​հանրության հետ։ Մեծ տվյալների վերլուծությունը Odnoklassniki-ում նրա համար դարձավ տեսական ուսուցումն ու գիտական ​​հիմքը իրական, պահանջարկ ունեցող արտադրանքի մշակման հետ համատեղելու բացառիկ հնարավորություն:

Բաշխված գրաֆիկի վերլուծությունը եղել և մնում է բարդ խնդիր. երբ անհրաժեշտ է դառնում տեղեկատվություն ստանալ հարևան գագաթի միացումների մասին, տվյալները հաճախ պետք է փոխանցվեն մեքենաների միջև, ինչը հանգեցնում է կատարման ժամանակի և ցանցի ենթակառուցվածքի բեռի ավելացմանը: Այս ելույթում մենք կտեսնենք, թե ինչպես կարող եք ձեռք բերել զգալի մշակման արագություններ՝ օգտագործելով հավանական տվյալների կառուցվածքները կամ փաստեր, ինչպիսիք են սոցիալական ցանցում բարեկամության գրաֆիկի համաչափությունը: Այս ամենը պատկերված է Apache Spark-ի կոդերի օրինակներով:

Դենիս Ռիստով - Կրճատեք ձեր պահպանման ծախսերը անցողիկ կրկնօրինակման և էժան քվորումների միջոցով

19 հիդրայի գլուխ: Ծրագրի հիանալի ակնարկ Դենիս - մշակող Cosmos DB, հետևողականության մոդելների, կոնսենսուսի ալգորիթմների և բաշխված գործարքների ստուգման փորձագետ: Նա ներկայումս աշխատում է Microsoft-ում, իսկ մինչ այդ աշխատել է բաշխված համակարգերի վրա՝ Amazon-ում և Yandex-ում։

Այս ելույթում մենք կանդրադառնանք վերջին մի քանի տարիների ընթացքում հայտնագործված բաշխված գործարքների արձանագրություններին, որոնք կարող են ներդրվել հաճախորդի կողմից՝ ցանկացած տվյալների պահեստի վերևում, որն աջակցում է պայմանական թարմացումներին (համեմատել և սահմանել): Ներքևի տողն այն է, որ կյանքը չի ավարտվում երկփուլով կատարմամբ, գործարքները կարող են ավելացվել ցանկացած տվյալների բազայի վերևում՝ հավելվածի մակարդակով, բայց տարբեր արձանագրություններ (2PC, Percolator, RAMP) ունեն տարբեր փոխզիջումներ և մեզ չեն տրամադրվում: անվճար.

Ալեքսեյ Զինովև - Ոչ բոլոր ML ալգորիթմներն են հասնում բաշխված դրախտ

19 հիդրայի գլուխ: Ծրագրի հիանալի ակնարկ Ալեքսեյ (zaleslaw) երկարամյա բանախոս է և այլ համաժողովների ծրագրային հանձնաժողովների անդամ: Պրակտիկ մարզիչ EPAM Systems-ում և ընկերություն է անում Hadoop/Spark-ի և այլ մեծ տվյալների հետ 2012 թվականից:

Այս ելույթում Ալեքսեյը կխոսի դասական մեքենայական ուսուցման ալգորիթմների բաշխված ռեժիմում կատարման համար հարմարեցնելու խնդիրների մասին՝ հիմնվելով Apache Spark ML-ի, Apache Mahout-ի, Apache Flink ML-ի հետ աշխատելու և Apache Ignite ML-ի ստեղծման փորձի վրա: Ալեքսեյը կխոսի նաև այս շրջանակներում բաշխված ML ալգորիթմների ներդրման մասին:

Եվ վերջապես, Yandex-ից երկու զեկույց Yandex Database-ի մասին։

Վլադիսլավ Կուզնեցով - Yandex Database - ինչպես ենք ապահովում սխալների հանդուրժողականությունը

19 հիդրայի գլուխ: Ծրագրի հիանալի ակնարկ Վլադիսլավը Yandex-ի ծրագրավորող է բաշխված հարթակի խմբում: Yandex Database-ը հորիզոնական մասշտաբային, աշխարհաբաշխված, սխալ հանդուրժող DBMS է, որը կարող է դիմակայել սկավառակների, սերվերների, դարակաշարերի և տվյալների կենտրոնների խափանումներին՝ չկորցնելով հետևողականությունը: Սխալների հանդուրժողականությունն ապահովելու համար օգտագործվում է բաշխված կոնսենսուսի հասնելու սեփականության ալգորիթմ, ինչպես նաև մի շարք տեխնիկական լուծումներ, որոնք մանրամասն քննարկված են զեկույցում: Զեկույցը կարող է հետաքրքրել ինչպես DBMS մշակողների, այնպես էլ DBMS-ի վրա հիմնված կիրառական լուծումներ մշակողների համար:

Սեմյոն Չեչերինդա - ԵԶԲ-ում բաշխված գործարքներ

19 հիդրայի գլուխ: Ծրագրի հիանալի ակնարկ Սեմյոնը Yandex-ի բաշխված հարթակի խմբի ծրագրավորող է, որն աշխատում է YDB-ի տեղադրման բազմաբնակարան վարձակալների օգտագործման հնարավորության վրա:

Yandex Database-ը նախատեսված է OLTP հարցումների համար և համապատասխանում է գործարքային համակարգի ACID պահանջներին: Այս զեկույցում մենք կդիտարկենք գործարքների պլանավորման ալգորիթմը, որը ընկած է YDB գործարքների համակարգի հիմքում: Տեսնենք, թե որ սուբյեկտներն են մասնակցում գործարքներին, ով է գործարքների գլոբալ պատվեր տալիս, ինչպես է ձեռք բերվում գործարքի ատոմականությունը, հուսալիությունը և մեկուսացման խիստ մակարդակը: Օգտագործելով ընդհանուր խնդիր՝ որպես օրինակ, եկեք դիտարկենք գործարքների իրականացումը՝ օգտագործելով երկփուլ կոմիտները և դետերմինիստական ​​գործարքները: Եկեք քննարկենք նրանց տարբերությունները:

Ինչ հաջորդ?

Համաժողովի ծրագիրը շարունակում է հագեցած լինել նոր զեկույցներով։ Մասնավորապես, ակնկալում ենք հաշվետվություն Նիկիտա Կովալ (նդկովալ) JetBrains-ից և Օլեգ Անաստասև (m0nstermind) «Օդնոկլասնիկի» ընկերությունից։ Նիկիտան աշխատում է Կոտլինի թիմում կորուտինների ալգորիթմների վրա, իսկ Օլեգը մշակում է ճարտարապետություն և լուծումներ բարձր բեռնվածության համակարգերի համար Odnoklassniki հարթակում: Բացի այդ, կա ևս 1 պայմանական դատարկ տեղ, ծրագրային հանձնաժողովը հենց հիմա աշխատում է դրա թեկնածուների հետ։

«Հիդրա» համաժողովը տեղի կունենա հուլիսի 11-12-ը Սանկտ Պետերբուրգում։ Տոմսերը հասանելի են գնել պաշտոնական կայքում. Խնդրում ենք ուշադրություն դարձնել առցանց տոմսերի առկայությանը, եթե այս օրերին ինչ-ինչ պատճառներով չեք կարող հասնել Սանկտ Պետերբուրգ:

Կհանդիպենք Hydra-ում:

Source: www.habr.com

Добавить комментарий