Հուլիսի 11-12-ը Սանկտ Պետերբուրգում կանցկացվի համաժողով , նվիրված զուգահեռ և բաշխված համակարգերի զարգացմանը։ Hydra-ի հնարքն այն է, որ այն միավորում է հիանալի գիտնականներին (որոնց սովորաբար կարելի է գտնել միայն արտասահմանյան գիտական կոնֆերանսներում) և հայտնի պրակտիկ ինժեներներին մեկ մեծ ծրագրի մեջ՝ գիտության և պրակտիկայի խաչմերուկում:
Hydra-ն վերջին տարիների մեր կարևորագույն համաժողովներից մեկն է: Դրան նախորդել է շատ լուրջ նախապատրաստություն, բանախոսների ընտրություն, զեկույցներ։ Անցյալ շաբաթ այս մասին JUG.ru Group ընկերության տնօրեն Ալեքսեյ Ֆեդորովի հետ ().
Մենք երեք կարևոր մասնակիցների մասին՝ բաշխված համակարգերի տեսության հիմնադիրները՝ Լեսլի Լեմպորտը, Մորիս Հերլիհին և Մայքլ Սքոթը։ Ժամանակն է ավելի մանրամասն խոսել ամբողջ ծրագրի մասին։

Մոտիվացիա
Եթե դուք զբաղվում եք ծրագրավորմամբ, ապա այս կամ այն կերպ գործ ունեք բազմաթելային և բաշխված հաշվարկների հետ։ Նրանց հետ անմիջականորեն աշխատում են համապատասխան ոլորտների փորձագետները, բայց անուղղակիորեն բաշխումը մեզ ամենուր է նայում. ցանկացած բազմամիջուկ համակարգչի կամ բաշխված ծառայության մեջ կլինի մի բան, որը զուգահեռաբար հաշվարկներ է կատարում:
Կան բազմաթիվ կոնֆերանսներ, որոնք ընդգրկում են կիրառական ծրագրավորման տարբեր ասպեկտներ: Սպեկտրի մյուս կողմում մենք ունենք հատուկ գիտական դպրոցներ, որոնք բացահայտում են բարդ տեսության հսկայական քանակություն դասախոսությունների ձևաչափով: Օրինակ, Hydra-ին զուգահեռ գոյություն ունի ա . Hydra կոնֆերանսում մենք փորձեցինք ի մի բերել ծանր պրակտիկան, գիտությունը և այն ամենը, ինչ այդ երկուսի խաչմերուկում է:
Մտածեք սա. մենք ապրում ենք զարմանալի ժամանակներում, երբ կարող ենք անձամբ հանդիպել գիտության և ճարտարագիտության այն ոլորտների հիմնադիրներին, որոնցով զբաղվում ենք: Ֆիզիկոսները չեն հանդիպի ո՛չ Նյուտոնին, ո՛չ Էյնշտեյնին. գնացքը գնացել է: Բայց նրանք, ովքեր ստեղծեցին բաշխված համակարգերի տեսության հիմքերը, հայտնագործեցին հանրաճանաչ ծրագրավորման լեզուներ և առաջինն էին, ովքեր այս ամենը ներդրեցին աշխատանքային նախատիպերի մեջ, դեռ ապրում են մեր կողքին: Այս մարդիկ կիսատ չեն թողել իրենց աշխատանքը, նրանք ներկայումս աշխատում են համաշխարհային ճանաչում ունեցող համալսարաններում և ընկերություններում հրատապ խնդիրների վրա և այսօր գիտելիքի և փորձի ամենամեծ աղբյուրն են:
Մյուս կողմից, նրանց հանդիպելու հնարավորությունը սովորաբար մնում է զուտ տեսական. մեզանից քչերը կարող են մշտապես հետևել Ռոչեսթերի համալսարանի հանրային իրադարձություններին, այնուհետև շտապել ԱՄՆ և վերադառնալ Մայքլ Սքոթի դասախոսությանը: Hydra-ի բոլոր մասնակիցներին այցելելը կարժենա մի փոքր հարստություն, չխոսելով ծախսած հսկայական ժամանակի մասին (չնայած դա թվում է հետաքրքիր որոնում):
Մյուս կողմից, մենք ունենք շատ բարձրակարգ ինժեներներ, ովքեր այժմ աշխատում են բաշխված համակարգերի թեժ խնդիրների վրա, և նրանք, անկասկած, ասելիք ունեն: Բայց այստեղ է խնդիրը՝ նրանք աշխատանքют, և նրանց ժամանակը արժեքավոր է։ Այո, եթե Microsoft-ի, Google-ի կամ JetBrains-ի աշխատակից եք, ապա ներքին միջոցառման ժամանակ հայտնի խոսնակներից մեկի հետ հանդիպելու հավանականությունը կտրուկ մեծանում է, բայց ընդհանուր առմամբ՝ ոչ, դա ամեն օր չի լինում։
Այսպիսով, Hydra կոնֆերանսը կատարում է մի կարևոր խնդիր, որը մեզանից շատերը չեն կարող ինքնուրույն կատարել՝ մեկ տեղում և մի ժամանակ հավաքելով մարդկանց, որոնց գաղափարները կամ փոխազդեցությունները կարող են փոխել ձեր կյանքը: Ես ընդունում եմ, որ ոչ բոլորին են պետք բաշխված համակարգեր կամ որևէ բարդ հիմնարար իրեր: Դուք կարող եք ծրագրավորել CRUD-ները PHP-ում ձեր մնացած կյանքի համար և մնալ բավականին երջանիկ: Բայց նրանց համար, ովքեր դրա կարիքն ունեն, սա ձեր հնարավորությունն է:
Բավականին շատ ժամանակ է անցել Հաբրի վերաբերյալ Hydra կոնֆերանսի առաջին հայտարարությունից հետո: Այս ընթացքում հսկայական աշխատանք է կատարվել, և այժմ մենք ունենք գրեթե բոլոր զեկույցների ցանկը։ Չկան դանդաղ մեկ թելերով ալգորիթմներ, պարզապես մաքուր բաշխված հարդքոր: Եկեք ավարտենք ընդհանուր խոսքերով և տեսնենք, թե ինչ կա մեր ձեռքին հիմա։
Հիմնական նոտաներ
Հիմնական նոտաները սկսվում և ավարտվում են կոնֆերանսի օրերին: Սովորաբար, բացման հիմնական ելույթի նպատակն է սահմանել համաժողովի ընդհանուր ոգին և ուղղությունը: Փակման հիմնական ելույթը գծում է գիծ և բացատրում, թե ինչպես կարող ենք ապրել համաժողովի օրերի ընթացքում ձեռք բերված գիտելիքներով և հմտություններով: Սկիզբը և վերջը. այն, ինչ կհիշվի ամենալավը և, առհասարակ, ունի ամենամեծ նշանակությունը։
Cliff Click —
Քլիֆը լեգենդ է Java-ի աշխարհում: 90-ականների վերջին իր թեկնածուական ատենախոսության համար գրել է աշխատություն՝ վերնագրով , որը որոշ ժամանակ անց հիմք դարձավ HotSpot JVM Server Compiler-ի համար։ Երկու տարի անց նա արդեն աշխատում էր Sun Microsystems-ում JVM-ում և ցույց տվեց աշխարհին, որ JIT-ն իրավունք ունի գոյություն ունենալ: Այս ամբողջ պատմությունն այն մասին, որ Java-ն ամենաարագ ժամանակակից գործարկումներից մեկն է՝ ամենախելացի և ամենաարագ օպտիմալացումներով, սկսվեց Cliff Click-ով: Հենց սկզբում ենթադրվում էր, որ եթե ինչ-որ բան հասանելի է ստատիկ կոմպիլյատորին, ապա նույնիսկ պետք չէ փորձել ջիտել այն: Քլիֆի և թիմի աշխատանքի շնորհիվ բոլոր նոր լեզուները սկսեցին ստեղծվել լռելյայն JIT կազմման գաղափարով։ Դա, անշուշտ, մեկ մարդու աշխատանք չէր, բայց Քլիֆը շատ կարևոր դեր ունեցավ դրանում։
Բացման հիմնական խոսքում Քլիֆը խոսում է իր մյուս ջանքերի մասին. , հիշողության հարթակ՝ բաշխված և մասշտաբային մեքենայական ուսուցման համար արդյունաբերական ծրագրերի համար։ Ավելի ճիշտ՝ դրա ներսում բանալի-արժեք զույգերի բաշխված պահեստավորման մասին։ Սա շատ արագ պահեստավորում է շատ հետաքրքիր հատկություններով (հստակ ցանկը կա ), որոնք թույլ են տալիս նմանատիպ լուծումներ օգտագործել մեծ տվյալների հոսքի մաթեմատիկայի մեջ։
Մեկ այլ ելույթ, որը Քլիֆը կներկայացնի, հետևյալն է. . Նրա կենսագրության մեկ այլ հատված տասը տարի է , որտեղ նա թարմացրեց և բարելավեց շատ բաներ Azul-ի ապարատային և տեխնոլոգիական փաթեթում՝ JIT կոմպիլյատորներ, գործարկման ժամանակ, շղթայի մոդել, սխալների մշակում, կույտերի մշակում, ապարատային ընդհատումներ, դասի բեռնում և այլն, և այլն, լավ, հասկացաք:
Ամենահետաքրքիրը եղավ այն ժամանակ, երբ նրանք սարքավորում ստեղծեցին խոշոր բիզնեսի համար՝ սուպերհամակարգիչ Java գործարկելու համար: Դա բավականին նորարարական բան էր, որը հատուկ հարմարեցված էր Java-ի համար, որն ունի հատուկ պահանջներ. հիշողության արգելքներ ընթերցանության համար ցածր դադար աղբահանության համար, սահմանների ստուգմամբ զանգվածներ, վիրտուալ զանգեր... Ամենաթեժ տեխնոլոգիաներից մեկը ապարատային գործարքային հիշողությունն է: 1 միջուկներից որևէ մեկի ամբողջ L864-ը կարող է մասնակցել գործարքային գրառմանը, ինչը հատկապես կարևոր է Java-ում կողպեքների հետ աշխատելու համար (համաժամեցված բլոկները կարող են զուգահեռ աշխատել, քանի դեռ իրական հիշողության կոնֆլիկտ չկա): Բայց գեղեցիկ գաղափարը կոտրվեց դաժան իրականության պատճառով, և այս ելույթում Քլիֆը կբացատրի, թե ինչու HTM-ն և STM-ն այնքան էլ հարմար չեն պրակտիկ բազմաթելային հաշվողական կարիքների համար:
Մայքլ Սքոթ -
— Ռոչեսթերի համալսարանի համակարգչային գիտության պրոֆեսոր, ում հետ ճակատագիրը կապեց նրան , իսկ իր հայրենի Վիսկոնսին-Մեդիսոն համալսարանում հինգ տարի եղել է դեկան։ Նա կատարում է հետազոտություններ և ուսանողներին սովորեցնում զուգահեռ և բաշխված ծրագրավորում և լեզուների ձևավորում:
Ամբողջ աշխարհը ճանաչում է Միքայելին դասագրքի շնորհիվ , որի վերջին հրատարակությունը լույս է տեսել համեմատաբար վերջերս՝ 2015թ.. Նրա աշխատանքը ստացել որպես բաշխված հաշվարկների ոլորտում ամենահայտնիներից մեկը և Ռոչեսթերի համալսարանի առցանց գրադարանում։ Դուք կարող եք նաև ճանաչել նրան որպես հենց Մայքլ-Սքոթի ալգորիթմի հեղինակ .
Ինչ վերաբերում է Java աշխարհին, սա հատուկ դեպք է. Դագ Լիայի հետ միասին նա մշակել է չարգելափակող ալգորիթմներ և համաժամանակյա հերթեր, որոնց վրա աշխատում են Java գրադարանները։ Սա հենց այն է, ինչի մասին է լինելու «Dual data structures»-ի հիմնական թեման. Java SE 6-ում այս կառույցների ներդրումը 10 անգամ բարելավել է կատարումը: java.util.concurrent.ThreadPoolExecutor. Եթե դուք նախապես հետաքրքրված եք, թե ինչ են այս «երկակի տվյալների կառուցվածքները», ապա դրա մասին ինչ-որ բան կա .
Մորիս Հերլիհի -
— երկու Dijkstra մրցանակի դափնեկիր։ Առաջինը աշխատանքի համար է (Բրաունի համալսարան), իսկ երկրորդը, ավելի վերջերս. (Վիրջինիայի տեխնիկական համալսարան): Dijkstra մրցանակը տրվում է աշխատանքի համար, որի նշանակությունն ու ազդեցությունը տեսանելի են եղել առնվազն տասը տարի, և Մորիսը ակնհայտորեն ոլորտի ամենահայտնի փորձագետներից մեկն է: Նա ներկայումս Բրաունի համալսարանի պրոֆեսոր է և ունի մի շարք ձեռքբերումներ, որոնք կկազմեն մի ամբողջ պարբերություն:
Այս փակման հիմնական ելույթում Մորիսը կխոսի բլոկչեյն բաշխված համակարգերի տեսության և պրակտիկայի մասին դասական բաշխված հաշվողական տեսանկյունից, և թե ինչպես է դա պարզեցնում առնչվող խնդիրներից շատերը: Այս զեկույցը բացառապես վերաբերում է համաժողովի թեմային. ամենևին էլ հանքարդյունաբերության աղմուկի մասին չէ, այլ այն մասին, թե ինչպես կարելի է զարմանալիորեն արդյունավետ և պատշաճ կերպով օգտագործել մեր գիտելիքները՝ կապված բազմաթիվ խնդիրների հետ:
2017 թվականի հուլիսին Մորիսն արդեն եկել է Ռուսաստան SPTDC դպրոց, մասնակցել JUG.ru հանդիպմանը, և ձայնագրությունը կարելի է տեսնել YouTube-ում.

Հիմնական ծրագիր
Ստորև ներկայացնում ենք ծրագրում ներառված հաշվետվությունների համառոտ ակնարկը. Զեկույցներից մի քանիսը մանրամասն նկարագրված են այստեղ, որոշներն ավելի հակիրճ: Երկար նկարագրություններ տրվել են հիմնականում անգլալեզու զեկույցներին՝ պահանջելով հղումներ գիտական հոդվածներին, Վիքիպեդիայի տերմիններին և այլն։ Ամբողջական ցանկը կարելի է գտնել . Կայքի ցանկը կթարմացվի և կլրացվի։
Լեսլի Լեմպորտ -
Լեսլի Լեմպորտը բաշխված հաշվողականության հիմնական աշխատանքների հեղինակն է: նշանակում է «Lamport TeX»: Հենց նա առաջին անգամ ներկայացրեց հայեցակարգը դեռ 1979 թվականին , և նրա հոդվածը ստացել է Դեյկստրայի մրցանակ։
Սա հաղորդման ամենաանսովոր հատվածն է ֆորմատով, քանի որ այն նույնիսկ զեկույց չէ, այլ հարց ու պատասխան։ Երբ հանդիսատեսի մի զգալի մասն արդեն ծանոթ է (կամ կարող է ծանոթանալ) բոլոր տեսակի ստեղծագործություններին, որոնք հիմնված են «Լամպորտի տեսության», նրա սեփական հոդվածների և զեկույցների վրա, ավելի կարևոր է ողջ հասանելի ժամանակը ծախսել ուղղակի հաղորդակցության վրա:
Գաղափարը պարզ է. դուք դիտում եք երկու զեկույց YouTube-ում. и և պատրաստիր առնվազն մեկ հարց, և Լեսլին պատասխանում է:
Այս երկու տեսանյութերից առաջինը մենք արդեն տեսել ենք։ . Եթե տեսանյութը դիտելու մեկ ժամ չունեք, կարող եք արագ կարդալ այն ամենը տեքստային տեսքով:
Նշում. Լեսլի Լեմպորտի շատ այլ տեսանյութեր կան YouTube-ում: Օրինակ, կա մի մեծ . Այս ամբողջ դասընթացի անցանց տարբերակը հասանելի է այստեղ , և նա այն վերբեռնեց YouTube՝ շարժական սարքերում ավելի հեշտ դիտելու համար:
Մարտին Կլեպման -
Մարտին Քլեպմանը Քեմբրիջի համալսարանի հետազոտող է, որն աշխատում է CRDT-ների և ալգորիթմների պաշտոնական ստուգման վրա: Մարտինի գիրքը 2017-ին լույս տեսած, շատ հաջողակ է և հայտնվել է բեսթսելերների ցուցակներում տվյալների պահպանման և մշակման ոլորտում։ Քևին Սքոթ, Microsoft-ի CTO, «Այս գիրքը պետք է կարդալ ծրագրային ապահովման ինժեներների համար: Սա հազվագյուտ ռեսուրս է, որը համատեղում է տեսությունն ու պրակտիկան՝ օգնելու ծրագրավորողներին նախագծել և կիրառել տվյալների ենթակառուցվածքը և համակարգերն ավելի խելացի»: Նման մի բան ասել է Կաֆկայի ստեղծող և Confluent CTO Ջեյ Կրեպսը:
Մինչ ակադեմիական հետազոտությունների անցնելը, Մարտինն աշխատել է արդյունաբերության մեջ և համահիմնել երկու հաջողակ ստարտափ.
- Rapportive, որը նվիրված է ձեր էլ.փոստից կոնտակտների սոցիալական պրոֆիլը ցուցադրելուն, որը LinkedIn-ը ձեռք է բերել 2012 թվականին;
- Go Test It՝ տարբեր բրաուզերներում կայքերի ավտոմատ ստուգման ծառայություն, որը RedGate-ը գնել է 2009 թվականին։
Ընդհանրապես, Մարտինը, թեև ավելի քիչ հայտնի է, քան մեր հիմնական բանախոսները, արդեն հասցրել է որոշակի ներդրում ունենալ բաշխված հաշվարկների զարգացման և արդյունաբերության մեջ:
Այս ելույթում Մարտինը կխոսի իր ակադեմիական հետազոտություններին ավելի մոտ մի թեմայի մասին: Google Փաստաթղթերում և նմանատիպ համատեղ փաստաթղթերի խմբագրման հավելվածներում «համատեղ խմբագրում» նշանակում է կրկնօրինակման առաջադրանք. յուրաքանչյուր օգտատեր ունի ընդհանուր փաստաթղթի իր պատճենը, որն այնուհետև խմբագրում է, և բոլոր փոփոխություններն ուղարկվում են ցանցի միջոցով մյուս մասնակիցներին: Փաստաթղթերի անցանց փոփոխությունը հանգեցնում է փաստաթղթի ժամանակավոր անհամապատասխանության այլ մասնակիցների նկատմամբ, և նորից համաժամացման համար անհրաժեշտ է կոնֆլիկտների լուծում: Հենց դրա համար էլ նրանք գոյություն ունեն (CRDT) ըստ էության բավականին նոր բան է, որի էությունը ձևակերպվել է միայն 2011 թվականին: Այս ելույթը քննարկում է այն, ինչ տեղի է ունեցել դրանից հետո CRDT աշխարհում, որոնք են վերջին առաջընթացները, քննարկվում է ընդհանուր առմամբ տեղական առաջին հավելվածների ստեղծման մոտեցումը և բաց կոդով գրադարանի օգտագործումը: մասնավորապես.
Հաջորդ շաբաթ Մարտինի հետ երկար հարցազրույց կհրապարակենք Habr-ում, հետաքրքիր կլինի։
Պեդրո Ռամալհետե -
Պեդրոն աշխատում է Cisco-ում և վերջին տասը տարիների ընթացքում զարգացնում է զուգահեռ ալգորիթմներ՝ ներառյալ համաժամացման մեխանիզմները, տվյալների կողպման և սպասման անխափան կառուցվածքները և այն ամենը, ինչ կարող եք պատկերացնել այդ թեմայով: Նրա ընթացիկ հետազոտական և ինժեներական հետաքրքրությունները կենտրոնացած են ունիվերսալ կոնստրուկցիաների, ծրագրային գործառնական հիշողության, մշտական հիշողության և նմանատիպ տեխնոլոգիաների վրա, որոնք հնարավորություն են տալիս ճիշտ, մասշտաբային և սխալ հանդուրժող հավելվածներ: Նա նաև բլոգի հեղինակ է, որը լայն ճանաչում ունի նեղ շրջանակներում։ .
Բազմաթելային հավելվածների մեծ մասն այսօր աշխատում է տվյալների զուգահեռ կառուցվածքների վրա՝ սկսած դերակատարների միջև հաղորդագրությունների հերթերի օգտագործումից մինչև բանալի արժեքների պահեստներում ինդեքսավորված տվյալների կառուցվածքներ: Նրանք երկար տարիներ հաջողությամբ աշխատում են Java JDK-ում և աստիճանաբար ավելանում են նաև C++-ում։
Զուգահեռ տվյալների կառուցվածքը իրականացնելու ամենապարզ ձևը հաջորդական (մեկ թելերով) իրականացումն է, որտեղ մեթոդները պաշտպանված են մուտեքսներով: Սա հասանելի է ցանկացած կրտսեր երեխայի համար, բայց ունի ակնհայտ մասշտաբի և կատարողականի խնդիրներ: Միևնույն ժամանակ, առանց կողպման և սպասման տվյալների կառուցվածքները ոչ միայն ավելի լավ են հաղթահարում սխալները, այլև ունեն ավելի բարենպաստ կատարողական պրոֆիլ, սակայն դրանց զարգացումը պահանջում է խորը փորձաքննություն և հարմարեցում կոնկրետ հավելվածին: Կոդերի մեկ սխալ տողը բավական է ամեն ինչ կոտրելու համար:
Ինչպե՞ս կարող ենք այնպես անել, որ նույնիսկ ոչ փորձագետը կարողանա նախագծել և իրականացնել նման տվյալների կառուցվածքներ: Հայտնի է, որ ցանկացած հաջորդական ալգորիթմ կարող է թելի համար անվտանգ դարձնել որևէ մեկը , կամ գործարքային հիշողություն: Առաջին հերթին նրանք կարող են նվազեցնել մուտքի շեմը այս խնդրի լուծման համար: Այնուամենայնիվ, երկու լուծումներն էլ հակված են անարդյունավետ իրականացմանը: Պեդրոն կխոսի այն մասին, թե ինչպես են նրանց հաջողվել այս կոնստրուկցիաներն ավելի արդյունավետ դարձնել և ինչպես կարող եք դրանք օգտագործել ձեր ալգորիթմների համար:
Հայդի Հովարդ -
Հայդի Հովարդը, ինչպես Մարտինը, Քեմբրիջի համալսարանի բաշխված համակարգերի հետազոտող է: Դրա մասնագիտացումն է հետևողականությունը, սխալների հանդուրժողականությունը, կատարումը և բաշխված համաձայնությունը: Նա առավել հայտնի է Paxos ալգորիթմի ընդհանրացումով, որը կոչվում է .
Հիշեցնենք, որ — Անվստահելի համակարգիչների ցանցում կոնսենսուսի խնդիրը լուծելու արձանագրությունների ընտանիք՝ հիմնված Լեսլի Լեմպորտի աշխատանքի վրա։ Այսպիսով, մեր խոսնակներից ոմանք աշխատում են խնդիրների վրա, որոնք ի սկզբանե առաջարկվել էին այլ խոսնակների կողմից, և դա հիանալի է:
Բազմաթիվ հյուրընկալողների միջև կոնսենսուս գտնելու կարողությունը՝ հասցեագրման, առաջնորդի ընտրության, արգելափակման կամ համակարգման համար, հիմնարար խնդիր է ժամանակակից բաշխված համակարգերում: Paxos-ը ներկայումս կոնսենսուսային խնդիրների լուծման հիմնական միջոցն է, և դրա շուրջ բազմաթիվ հետազոտություններ են կատարվում՝ ընդլայնելու և օպտիմալացնելու ալգորիթմը տարբեր գործնական կարիքների համար:
Այս ելույթում մենք վերանայում ենք Paxos-ի տեսական հիմքերը՝ թուլացնելով սկզբնական պահանջները և ընդհանրացնելով ալգորիթմը: Մենք կտեսնենք, որ Paxos-ը, ըստ էության, ընդամենը մեկ տարբերակ է կոնսենսուսային մոտեցումների հսկայական սպեկտրի մեջ, և որ սպեկտրի մյուս կետերը նույնպես շատ օգտակար են լավ բաշխված համակարգեր կառուցելու համար:
Ալեքս Պետրով -
Ալեքսը տվյալների բազայի և պահեստավորման մասնագետ է, և մեզ համար, որ ավելի կարևոր է, ներդնող է . Նա այժմ աշխատում է Օ'Ռայլիի հետ «Տվյալների բազայի ներքին» գրքի վրա:
Համակարգերի համար (ռուսական տերմինաբանությամբ՝ «վերջնական հետևողականություն»), հանգույցի խափանումից կամ ցանցի պառակտումից հետո պետք է լուծվի հետևյալ երկընտրանքը՝ կա՛մ շարունակել կատարել հարցումները՝ զոհաբերելով հետևողականությունը, կա՛մ հրաժարվել դրանց կատարումից և զոհաբերել հասանելիությունը: Նման համակարգում քվորումները, որոնք համընկնում են հանգույցների ենթաբազմությունների հետ և երաշխավորում են, որ առնվազն մեկ հանգույցը կպարունակի ամենավերջին արժեքը, կարող են լավ սահմանային լուծում լինել: Հնարավոր է գոյատևել ձախողումներից և որոշ հանգույցների հետ կապի կորստից՝ շարունակելով արձագանքել վերջին արժեքներով:
Այնուամենայնիվ, ամեն ինչ ունի իր գինը. Քվորումի կրկնօրինակման սխեման նշանակում է պահպանման ծախսերի ավելացում. ավելորդ տվյալները պետք է պահվեն միանգամից մի քանի հանգույցների վրա՝ ապահովելու համար, որ բավականաչափ պատճեններ լինեն, երբ խնդիր է առաջանում: Պարզվում է, որ պետք չէ բոլոր տվյալները պահել բոլոր կրկնօրինակների վրա։ Դուք կարող եք նվազեցնել բեռնվածությունը պահեստի վրա՝ տվյալները պահելով միայն հանգույցների ենթաբազմության վրա և օգտագործելով հատուկ հանգույցներ (Transient Replica)՝ ձախողման հետ կապված սցենարների համար:
Զեկույցի ընթացքում կդիտարկենք , կրկնօրինակման սխեման, որն օգտագործվում է и , իսկ այս հայեցակարգի իրականացումը Apache Cassandra-ում անվանումներով .
Դմիտրի Վյուկով -
Дмитрий — разработчик в Google, работающий над динамическим тестированием C/C++ и Go — Address/Memory/ThreadSanitizer, и над похожими инструментами для ядра Linux. Законтрибьютил в Go масштабируемый планировщик горутин, network poller и параллельный сборщик мусора. Является экспертом в многопоточности, автором дюжины новых неблокирующих алгоритмов и является обладателем Intel:
Հիմա մի փոքր բուն զեկույցի մասին։ Go-ն ունի բազմաթելային աջակցություն՝ գորուտինների (թեթև թելեր) և ալիքների (FIFO հերթեր) տեսքով: Այս մեխանիզմները օգտվողների համար շատ հեշտ և հաճելի են դարձնում ժամանակակից բազմաթելային հավելվածներ գրելը, և դա կախարդական է թվում: Ինչպես հասկանում ենք, այստեղ ոչ մի կախարդանք չկա։ Այս զրույցի ընթացքում Դմիտրին կխորանա Go ժամանակացույցի խճճվածությունների մեջ և ցույց կտա այս «մոգության» իրականացման գաղտնիքները: Նախ, նա ակնարկ կտա ժամանակացույցի հիմնական բաղադրիչներին և կպատմի, թե ինչպես է այն աշխատում: Ավելի ուշ մենք ավելի մանրամասն կանդրադառնանք կոնկրետ ասպեկտներին, ինչպիսիք են կայանման/բացակայանման ռազմավարությունը և արգելափակման համակարգային զանգերի մշակումը: Ի վերջո, Դմիտրին մի փոքր կխոսի ժամանակացույցի հնարավոր բարելավումների մասին:
Դմիտրի Բուգայչենկո -
Դմիտրին գրեթե 9 տարի աշխատել է աութսորսինգում՝ չկորցնելով կապը համալսարանի և գիտական հանրության հետ։ Մեծ տվյալների վերլուծությունը Odnoklassniki-ում նրա համար եզակի հնարավորություն դարձավ տեսական ուսուցումն ու գիտական հիմքը համատեղելու իրական, պահանջարկ ունեցող արտադրանքի մշակման հետ:
Բաշխված գրաֆի մայնինգը եղել և մնում է դժվարին խնդիր. երբ անհրաժեշտ է առբերել տեղեկատվությունը հարևան հանգույցի միացումների մասին, տվյալները հաճախ պետք է տեղափոխվեն մեքենաների միջև, ինչը մեծացնում է կատարման ժամանակը և ճնշում է ցանցի ենթակառուցվածքի վրա: Այս զրույցի ընթացքում մենք կտեսնենք, թե ինչպես կարելի է հասնել մշակման զգալի արագությունների՝ օգտագործելով հավանական տվյալների կառուցվածքները կամ այնպիսի փաստեր, ինչպիսիք են սոցիալական ցանցում բարեկամության գրաֆիկի համաչափությունը: Այս ամենը պատկերված է Apache Spark-ի կոդերի օրինակներով:
Դենիս Ռիսկով -
Դենիսը մշակող է , հետևողականության մոդելի ստուգման, կոնսենսուսի ալգորիթմների և բաշխված գործարքների փորձագետ: Նա ներկայումս աշխատում է Microsoft-ում, իսկ մինչ այդ աշխատել է բաշխված համակարգերի վրա՝ Amazon-ում և Yandex-ում։
Այս զրույցի ընթացքում մենք կներկայացնենք վերջին մի քանի տարիների ընթացքում հորինված բաշխված գործարքների արձանագրությունները, որոնք կարող են ներդրվել հաճախորդի կողմից ցանկացած տվյալների խանութի վերևում, որն աջակցում է համեմատել և սահմանել: Բանն այն է, որ կյանքը չի ավարտվում երկփուլով կոմիտով, գործարքները կարող են ավելացվել ցանկացած տվյալների բազայի վրա՝ հավելվածի մակարդակով, սակայն տարբեր արձանագրություններ (2PC, Percolator, RAMP) ունեն տարբեր փոխզիջումներ և մեզ անվճար չեն տրվում:
Ալեքսեյ Զինովև -
Ալեքսեյ () մեր երկարամյա խոսնակն է և այլ համաժողովների ծրագրային հանձնաժողովների անդամ: Գործնական մարզիչ է EPAM Systems-ում և ընկեր է Hadoop/Spark-ի և այլ մեծ տվյալների հետ 2012 թվականից:
Այս ելույթում Ալեքսեյը կխոսի դասական մեքենայական ուսուցման ալգորիթմները բաշխված ռեժիմով կատարման համար հարմարեցնելու խնդիրների մասին՝ հիմնված Apache Spark ML-ի, Apache Mahout-ի, Apache Flink ML-ի և Apache Ignite ML-ի ստեղծման փորձի վրա: Ալեքսեյը կխոսի նաև այս շրջանակներում բաշխված ML ալգորիթմների ներդրման մասին:
Եվ վերջապես, Yandex-ից երկու զեկույց Yandex Database-ի մասին։
Վլադիսլավ Կուզնեցով -
Վլադիսլավը Yandex-ի ծրագրավորող է բաշխված հարթակի խմբում: Yandex Database-ը հորիզոնական մասշտաբային, աշխարհաբաշխված, սխալներին հանդուրժող DBMS է, որը կարող է դիմակայել սկավառակների, սերվերների, դարակաշարերի և տվյալների կենտրոնների խափանումներին՝ առանց խախտելու հետևողականությունը: Սխալների հանդուրժողականությունն ապահովելու համար օգտագործվում է բաշխված կոնսենսուսի հասնելու սեփականության ալգորիթմ, ինչպես նաև մի շարք տեխնիկական լուծումներ, որոնք մանրամասն քննարկված են զեկույցում: Զեկույցը կարող է հետաքրքրել ինչպես DBMS մշակողների, այնպես էլ DBMS-ի վրա հիմնված կիրառական լուծումներ մշակողների համար:
Սեմյոն Չեչերինդա -
Սեմյոնը Yandex-ի բաշխված հարթակի խմբի ծրագրավորող է, որն աշխատում է YDB-ի տեղադրման բազմաբնակարան վարձակալական օգտագործման հնարավորության վրա:
Yandex Database-ը նախատեսված է OLTP հարցումների համար և համապատասխանում է գործարքային համակարգի ACID պահանջներին: Այս զեկույցում մենք կդիտարկենք գործարքների պլանավորման ալգորիթմը, որը ընկած է YDB գործարքների համակարգի հիմքում: Տեսնենք, թե որ սուբյեկտներն են մասնակցում գործարքներին, ով է գործարքներին տալիս գլոբալ կարգ, ինչպես է ձեռք բերվում գործարքի ատոմականությունը, հուսալիությունը և խիստ մեկուսացումը: Օգտագործելով ընդհանուր խնդիր, որպես օրինակ, մենք կդիտարկենք գործարքների իրականացումը, օգտագործելով երկփուլ commit և deterministic գործարքներ: Եկեք քննարկենք նրանց տարբերությունները:
Ինչ հաջորդ?
Համաժողովի ծրագիրը շարունակում է հագեցած լինել նոր զեկույցներով։ Մասնավորապես, ակնկալում ենք հաշվետվություն Նիկիտա Կովալ () JetBrains-ից և Օլեգ Անաստասև () «Օդնոկլասնիկի» ընկերությունից։ Նիկիտան աշխատում է Կոտլինի թիմում կորուտինների ալգորիթմների վրա, իսկ Օլեգը մշակում է ճարտարապետություն և լուծումներ բարձր բեռնվածության համակարգերի համար Odnoklassniki հարթակում: Բացի այդ, կա ևս մեկ պայմանական դատարկ տեղ, թեկնածուներով, որոնց համար ներկայումս աշխատում է ծրագրային հանձնաժողովը։
«Հիդրա» համաժողովը տեղի կունենա հուլիսի 11-12-ը Սանկտ Պետերբուրգում։ Տոմսերը հասանելի են . Խնդրում ենք նկատի ունենալ, որ կան առցանց տոմսեր, եթե այս օրերին ինչ-ինչ պատճառներով չեք կարող անձամբ հասնել Սանկտ Պետերբուրգ:
Կհանդիպենք Hydra-ում:
Source: www.habr.com
