19 hidra başlığı. Proqramın böyük icmalı

İyulun 11-12-də Sankt-Peterburqda konfrans keçiriləcək Hydra, paralel və paylanmış sistemlərin inkişafına həsr edilmişdir. Hydra-nın hiyləsi ondan ibarətdir ki, o, sərin alimləri (adətən yalnız xarici elmi konfranslarda tapmaq olar) və məşhur praktik mühəndisləri elm və təcrübənin kəsişməsində bir böyük proqramda birləşdirir.

Hydra son bir neçə ildəki ən mühüm konfranslarımızdan biridir. Ondan əvvəl çox ciddi hazırlıq, məruzəçilərin və məruzələrin seçilməsi gedirdi. Bu barədə keçən həftə Khabro müsahibəsi çıxdı JUG.ru Qrupunun direktoru Aleksey Fedorov ilə (23derevo).

Biz artıq deyilib haqqında üç mühüm iştirakçı, paylanmış sistemlər nəzəriyyəsinin baniləri - Leslie Lamport, Maurice Herlihy və Michael Scott. Bütün proqram haqqında daha ətraflı danışmaq vaxtıdır!

19 hidra başlığı. Proqramın böyük icmalı

Motivasiya

Əgər siz proqramlaşdırma ilə məşğul olursunuzsa, bu və ya digər şəkildə çox iş parçacığı və paylanmış hesablama ilə məşğul olursunuz. Müvafiq sahələr üzrə mütəxəssislər onlarla birbaşa işləyir, lakin dolayısı ilə paylama hər yerdən bizə baxır: istənilən çoxnüvəli kompüterdə və ya paylanmış xidmətdə paralel olaraq hesablamalar aparan bir şey var.

Tətbiqi proqramlaşdırmanın müxtəlif aspektlərini əhatə edən çoxlu konfranslar var. Spektrin digər tərəfində, mühazirə formatında çoxlu mürəkkəb nəzəriyyəni ortaya qoyan ixtisaslaşmış elmi məktəblərimiz var. Məsələn, Sankt-Peterburqda Hydra ilə paralel olaraq var SPTDC məktəbi. Hydra konfransında biz sərt təcrübəni, elmi və hər şeyi onların kəsişməsində bir araya gətirməyə çalışdıq.

Bu barədə düşünün: biz öyrəndiyimiz elm və mühəndislik sahəsinin qurucuları ilə şəxsən görüşə biləcəyiniz heyrətamiz bir dövrdə yaşayırıq. Fiziklər nə Nyutonla, nə də Eynşteynlə görüşməyəcək - qatar getdi. Amma bizim yanımızda hələ də paylanmış sistemlər nəzəriyyəsinin əsaslarını yaradanlar, populyar proqramlaşdırma dillərini icad edənlər və bütün bunları ilk dəfə işləyən prototiplərdə təcəssüm etdirənlər yaşayır. Bu insanlar işlərini yarı yolda tərk etməyiblər, onlar hazırda dünyanın tanınmış universitetlərində və şirkətlərində aktual məsələlər üzərində işləyirlər və bu gün ən böyük bilik və təcrübə mənbəyidirlər.

Digər tərəfdən, onlarla görüşmək imkanı adətən sırf nəzəri olaraq qalır: bir neçəmiz daim Roçester Universitetində ictimai tədbirləri izləyə, sonra ABŞ-a tələsərək Maykl Skottla mühazirə oxuya bilirik. Bütün Hydra üzvlərini ziyarət etmək, sərf olunan vaxtın uçurumunu saymasaq, kiçik bir sərvətə başa gələcək (baxmayaraq ki, maraqlı bir axtarış kimi səslənir).

Digər tərəfdən, hazırda paylanmış sistemlərdə aktual problemlər üzərində çalışan bir çox yüksək səviyyəli mühəndislərimiz var və onların mütləq danışacaqları çox şey var. Ancaq burada problem var - onlar işləyirik, və onların vaxtı qiymətlidir. Bəli, əgər siz Microsoft, Google və ya JetBrains-in əməkdaşısınızsa, daxili tədbirdə məşhur spikerlərdən biri ilə görüşmək ehtimalı kəskin şəkildə artır, lakin ümumiyyətlə, yox, bu hər gün baş vermir.

Beləliklə, Hydra Konfransı çoxumuzun təkbaşına edə bilmədiyi mühüm vəzifəni yerinə yetirir - bir yerdə və eyni zamanda, ideyaları və ya qarşılıqlı əlaqəsi həyatınızı dəyişə biləcək insanları bir araya gətirir. Etiraf edirəm ki, hər kəsə paylanmış sistemlər və ya bəzi mürəkkəb fundamental şeylər lazım deyil. Siz həyatınızın qalan hissəsi üçün PHP-də CRUD-ları proqramlaşdıra və tam xoşbəxt qala bilərsiniz. Amma kimə lazımdırsa, bu sizin şansınızdır.

Habré ilə bağlı Hydra konfransının ilk elanından xeyli vaxt keçdi. Bu müddət ərzində çox iş görülüb - indi demək olar ki, bütün hesabatların siyahısı var. Heç bir ləng tək yivli alqoritmlər yoxdur, sadəcə təmiz paylanmış hardkor! Ümumi sözlərlə bitirək və indi əlimizdə nə olduğunu görək.

Əsas qeydlər

Əsas qeydlər konfrans günlərində başlayır və bitir. Adətən açılış nitqinin məqsədi konfransın ümumi ruhunu və istiqamətini müəyyən etməkdir. Yekun əsas söz xətt çəkir və konfrans zamanı əldə edilmiş bilik və bacarıqlarla necə yaşaya biləcəyimizi izah edir. Başlanğıc və son: ən yaxşı yadda qalan və ümumiyyətlə, əhəmiyyəti artmışdır.

Cliff Click H2O paylanmış K/V alqoritmi

19 hidra başlığı. Proqramın böyük icmalı Cliff Java dünyasında bir əfsanədir. 90-cı illərin sonlarında namizədlik dissertasiyası üçün o, adlı məqalə yazdı "Təhlilləri birləşdirən, optimallaşdırmaları birləşdirən", bir müddət sonra HotSpot JVM Server Compiler üçün əsas oldu. İki il sonra o, artıq JVM-də Sun Microsystems-də işləyirdi və bütün dünyaya göstərdi ki, JIT-in mövcud olmaq hüququ var. Java-nın ən ağıllı və ən sürətli optimallaşdırmaları ilə ən sürətli müasir iş vaxtlarından biri olması haqqında bütün bu hekayə Cliff Click-dən gəldi. Başlanğıcda hesab olunurdu ki, bir şey statik tərtibçi üçün əlçatandırsa, onu sındırmağa belə cəhd etmək lazım deyil. Cliff və komandanın işi sayəsində bütün yeni dillər standart olaraq JIT tərtibi ideyası ilə yaradılmağa başladı. Təbii ki, bu, tək adamın işi deyildi, lakin Kliff bu işdə çox mühüm rol oynadı.

Açılış nitqində Cliff digər cəhdi haqqında danışacaq - H20, sənaye tətbiqləri üçün paylanmış və miqyaslana bilən maşın öyrənməsi üçün yaddaşdaxili platformadır. Və ya daha dəqiq desək, onun daxilində açar-dəyər cütlərinin paylanmış saxlanması haqqında. Bu, bir çox maraqlı xüsusiyyətləri olan çox sürətli saxlamadır (dəqiq siyahı təsviri), böyük verilənlər axınının riyaziyyatında oxşar həllərdən istifadə etməyə imkan verir.

Cliffin verəcəyi başqa bir hesabat - Azul Hardware Transactional Memory təcrübəsi. Onun tərcümeyi-halının başqa bir hissəsi - on il Azul adlı yerdə işləyir, burada o, Azul aparat və texnologiya yığınında bir çox şeyi yenilədi və təkmilləşdirdi: JIT kompilyatorları, iş vaxtı, mövzu modeli, səhvlərin idarə edilməsi, yığının idarə edilməsi, aparat fasilələri, sinif yüklənməsi və s. - yaxşı, siz əldə edirsiniz fikir.

Ən maraqlı hissə, onlar böyük biznes üçün avadanlıq - Java-nı idarə etmək üçün superkompüter hazırladıqları zaman başladı. Bu, kifayət qədər innovativ bir şey idi, xüsusi tələbləri olan Java üçün hazırlanmışdır - aşağı fasilə ilə zibil toplamaq üçün yaddaş maneələrini oxumaq, sərhədlərin yoxlanılması ilə massivlər, virtual zənglər... Ən yaxşı texnologiyalardan biri hardware əməliyyat yaddaşıdır. 1 nüvədən hər hansı birinin bütün L864-i tranzaksiya yazısında iştirak edə bilər ki, bu da Java-da kilidlərlə işləmək üçün xüsusilə vacibdir (heç bir real yaddaş münaqişəsi olmadığı müddətcə sinxronlaşdırılmış bloklar paralel işləyə bilər). Lakin gözəl ideya sərt reallıq tərəfindən əzildi - və bu çıxışda Kliff sizə HTM və STM-nin niyə çox yivli hesablamanın praktiki ehtiyacları üçün o qədər də uyğun olmadığını izah edəcək.

Michael Scott - İkili məlumat strukturları

19 hidra başlığı. Proqramın böyük icmalı Michael Scott - taleyin onu bağladığı Roçester Universitetinin kompüter elmləri professoru artıq 34 yaşında, və evində Wisconsin-Madison Universitetində beş il dekan idi. O, paralel və paylanmış proqramlaşdırma və dil dizaynı haqqında tədqiqatlar aparır və tələbələrə öyrədir.

Bütün dünya Mayklı dərslik sayəsində tanıyır "Proqramlaşdırma dilinin praqmatikası", son nəşri nisbətən yaxınlarda - 2015-ci ildə nəşr olundu. Onun işi "Paylaşılan yaddaş multiprosessorlarında miqyaslı sinxronizasiya üçün alqoritmlər" qəbul edildi Dijkstra Mükafatı paylanmış hesablamalar sahəsində ən məşhurlardan biri kimi və açıq yalan Rochester Universitetinin Onlayn Kitabxanasında. Siz onu Michael-Scott alqoritminin müəllifi kimi də tanıya bilərsiniz "Sadə, sürətli və praktik bloklanmayan və bloklayan paralel növbə alqoritmləri".

Java dünyasına gəldikdə, bu, xüsusi bir haldır: Doug Lea ilə birlikdə Java kitabxanalarının işlədiyi bloklanmayan alqoritmləri və sinxron növbələri inkişaf etdirdi. "İkili məlumat strukturları" əsas mövzusu məhz budur - Java SE 6-da bu strukturların tətbiqi performansı 10 dəfə yaxşılaşdırdı. java.util.concurrent.ThreadPoolExecutor. Bu "İkili məlumat strukturlarının" nə olduğunu əvvəlcədən maraqlanırsınızsa, bu barədə məlumat var əlaqədar iş.

Maurice Herlihy - Blokçeynlər və paylanmış hesablamaların gələcəyi

19 hidra başlığı. Proqramın böyük icmalı Maurice Herlihy - iki Dijkstra Mükafatının qalibi. Birincisi işləmək üçündür "Gözləməsiz Sinxronizasiya" (Braun Universiteti) və ikinci, daha yeni - "Tranzaksiya yaddaşı: Kilidsiz məlumat strukturları üçün arxitektura dəstəyi" (Virciniya Texnologiya Universiteti). Dijkstra Mükafatı əhəmiyyəti və təsiri ən azı on il ərzində görünən işləri tanıyır və Maurice bu sahədə ən tanınmış ekspertlərdən biridir. Hal-hazırda Braun Universitetində professor kimi işləyir və onun nailiyyətlərinin bir paraqraf uzunluğunda siyahısı var.

Bu yekun çıxışda Mauris paylanmış hesablama klassiklərinin nöqteyi-nəzərindən blokçeyn paylanmış sistemlərinin nəzəriyyəsi və təcrübəsi və bir çox əlaqəli problemləri necə asanlaşdırdığı barədə danışacaq. Bu, eksklüziv olaraq konfransın mövzusuna həsr olunmuş məruzədir - heç də mədən şırnaqları haqqında deyil, daha çox müxtəlif tapşırıqlarla bağlı biliklərimizin heyrətamiz dərəcədə effektiv və uyğun şəkildə necə istifadə oluna biləcəyi haqqındadır.

2017-ci ilin iyul ayında Maurice SPTDC məktəbində iştirak etmək üçün artıq Rusiyaya gəldi, JUG.ru görüşündə iştirak etdi və qeydi YouTube-da izləmək olar:

Əsas proqram

Sonra proqrama daxil edilmiş hesabatların qısa icmalı olacaq. Hesabatların bəziləri burada ətraflı, digərləri isə daha qısa şəkildə təsvir edilmişdir. Uzun təsvirlər əsasən elmi məqalələrə, Vikipediyada terminlərə və s. bağlantılar tələb edən ingilisdilli hesabatlara gedirdi. Tam siyahı mövcuddur konfransın saytında baxın. Saytdakı siyahı yenilənəcək və əlavə olunacaq.

Leslie Lamport - Sual-cavab

19 hidra başlığı. Proqramın böyük icmalı Leslie Lamport paylanmış hesablamalarda əsas işlərin müəllifidir. "LaTeX" "Lamport TeX" deməkdir. İlk dəfə 1979-cu ildə konsepsiyanı təqdim edən o idi ardıcıl ardıcıllıq, və onun məqaləsi "Çoxprosesli proqramları düzgün icra edən çoxprosessorlu kompüteri necə etmək olar" Dijkstra mükafatını aldı.

Bu, proqramın format baxımından ən qeyri-adi hissəsidir, çünki bu, hətta hesabat deyil, sual-cavab sessiyasıdır. Tamaşaçıların əhəmiyyətli bir hissəsi artıq “Lamportun nəzəriyyəsi”nə əsaslanan bütün növ əsərlərlə, onun öz məqalələri və hesabatları ilə tanış olduqda (və ya tanış ola bilər), bütün mövcud vaxtı birbaşa ünsiyyətə sərf etmək daha vacibdir.

İdeya sadədir - YouTube-da iki reportaja baxırsınız: "Proqramlaşdırma kodlaşdırmadan daha çox olmalıdır" и "Əgər proqram yazmırsınızsa, proqramlaşdırma dilindən istifadə etməyin" və ən azı bir sual hazırlayın və Lesli cavab verir.

Bu iki videodan birincisi bizdə artıq habro məqaləsinə çevrildi. Videoya baxmaq üçün bir saat vaxtınız yoxdursa, mətn şəklində hamısını tez oxuya bilərsiniz.

Qeyd: YouTube-da daha çox Leslie Lamport videoları var. Məsələn, əla var TLA+ kursu. Bütün bu kursun oflayn versiyası burada mövcuddur müəllifin ana səhifəsi, və o, mobil cihazlarda daha asan baxmaq üçün YouTube-a yüklədi.

Martin Kleppmann - Paylanmış əməkdaşlıq üçün istifadəçi cihazları arasında məlumatların sinxronlaşdırılması

19 hidra başlığı. Proqramın böyük icmalı Martin Kleppmann Kembric Universitetində CRDT və alqoritmlərin rəsmi yoxlanışı üzərində işləyən tədqiqatçıdır. Martinin kitabı "İntensiv verilənlər tələb edən proqramların dizaynı", 2017-ci ildə nəşr olundu, çox uğurlu olduğunu sübut etdi və məlumatların saxlanması və emalı sahəsində bestseller siyahısına daxil edildi. Kevin Scott, Microsoft-da CTO, bir dəfə dedi: “Bu kitab proqram mühəndisləri üçün mütləq olmalıdır. Bu, tərtibatçılara infrastruktur və məlumat sistemlərinin layihələndirilməsi və tətbiqində daha ağıllı kömək etmək üçün nəzəriyyə və praktikanı birləşdirən nadir resursdur.” Kafkanın yaradıcısı və Confluent-in texniki direktoru Cey Kreps də buna bənzər bir şey söylədi.

Akademik tədqiqata keçməzdən əvvəl Martin sənayedə çalışdı və iki uğurlu startapın həmtəsisçisi oldu:

  • LinkedIn-in 2012-ci ildə satın aldığı e-poçtunuzdakı kontaktların sosial profilini göstərməyə həsr olunmuş hesabatlı;
  • RedGate-in 2009-cu ildə aldığı müxtəlif brauzerlərdə veb-saytların avtomatik sınaqdan keçirilməsi üçün xidmət olan Go Test It.

Ümumiyyətlə, Martin bizim əsas məruzələrimizdən daha az məşhur olsa da, artıq paylanmış hesablamanın inkişafına və sənayeyə müəyyən töhfələr verə bilib.

Bu çıxışda Martin akademik araşdırmasına daha yaxın olan bir mövzu haqqında danışacaq. Google Sənədlərdə və oxşar sənədlərin birgə redaktə divanlarında "birgə redaktə" replikasiya tapşırığına aiddir: hər bir istifadəçi paylaşılan sənədin öz replikasına malikdir, sonra onu dəyişdirir və bütün dəyişikliklər şəbəkənin qalan hissəsinə göndərilir. iştirakçılar. Sənədlərə oflayn dəyişikliklər digər iştirakçılara münasibətdə sənədin müvəqqəti uyğunsuzluğuna gətirib çıxarır və yenidən sinxronizasiya münaqişənin həllini tələb edir. Məhz bunun üçün mövcuddurlar Münaqişəsiz Təkrarlanan Məlumat Növləri (CRDT), əslində kifayət qədər yeni bir şeydir, mahiyyəti yalnız 2011-ci ildə tərtib edilmişdir. Bu söhbət o vaxtdan bəri CRDT dünyasında baş verənləri, ən son irəliləyişlərin nədən ibarət olduğunu, ümumiyyətlə yerli ilk proqramların yaradılmasına yanaşmanı və açıq mənbə kitabxanasından istifadəni müzakirə edir. Avtomatik birləşmə xüsusən.

Gələn həftə Habré-də Martin ilə uzun müsahibə dərc edəcəyik, maraqlı olacaq.

Pedro Ramalhete - Gözləməsiz məlumat strukturları və gözləməsiz əməliyyatlar

19 hidra başlığı. Proqramın böyük icmalı Pedro Cisco-da işləyir və son on il ərzində paralel alqoritmlər işləyib hazırlayır, o cümlədən sinxronizasiya mexanizmləri, kilidsiz və gözləməsiz məlumat strukturları və bu mövzuda təsəvvür edə biləcəyiniz hər şey. Onun hazırkı tədqiqat və mühəndislik maraqları Universal Konstruksiyalar, Proqram Tənzimləmə Yaddaşı, Davamlı Yaddaş və düzgün, miqyaslana bilən və xətaya dözümlü tətbiqləri təmin edən oxşar texnologiyalara yönəlmişdir. O, həm də dar dairələrdə geniş tanınan bloqun müəllifidir Paralellik Freaks.

Çox yivli proqramların əksəriyyəti indi aktyorlar arasında mesaj növbələrinin istifadəsindən tutmuş əsas dəyər anbarlarında indeksləşdirilmiş məlumat strukturlarına qədər paralel verilənlər strukturlarında işləyir. Onlar uzun illərdir Java JDK-da uğurla işləyirlər və yavaş-yavaş C++-a əlavə olunurlar.

Paralel verilənlər strukturunu həyata keçirməyin ən sadə yolu metodların mutexes tərəfindən qorunduğu ardıcıl (tək yivli) icradır. Bu, istənilən iyun üçün əlçatandır, lakin miqyasda və performansda aşkar problemlər var. Eyni zamanda, kilidsiz və gözləməsiz məlumat strukturları nəinki səhvlərin öhdəsindən daha yaxşı gəlir, həm də daha yaxşı performans profilinə malikdir - lakin onların inkişafı dərin təcrübə və konkret tətbiqə uyğunlaşma tələb edir. Bir səhv kod xətti hər şeyi pozmaq üçün kifayətdir.

Biz bunu necə edə bilərik ki, hətta qeyri-mütəxəssis belə məlumat strukturlarını dizayn edib həyata keçirə bilsin? Məlumdur ki, hər hansı bir ardıcıl alqoritm hər ikisindən istifadə edərək ipi təhlükəsiz edə bilər universal dizayn, və ya əməliyyat yaddaşı. Birincisi, onlar bu problemin həllinə giriş maneəsini aşağı sala bilərlər. Bununla belə, hər iki həll adətən səmərəsiz həyata keçirməyə gətirib çıxarır. Pedro bu dizaynları necə daha səmərəli edə bildikləri və alqoritmləriniz üçün onlardan necə istifadə edə biləcəyiniz haqqında danışacaq.

Heidi Howard - Paylanmış konsensusun azad edilməsi

19 hidra başlığı. Proqramın böyük icmalı Heidi Howard, Martin kimi, Kembric Universitetində paylanmış sistemlər üzrə tədqiqatçıdır. Onun ixtisasları ardıcıllıq, səhvlərə dözümlülük, performans və paylanmış konsensusdur. O, ən yaxşı Paxos alqoritmini ümumiləşdirməsi ilə tanınır Çevik Paxos.

Xatırla Paxos Leslie Lamportun işinə əsaslanan etibarsız kompüterlər şəbəkəsində konsensus probleminin həlli üçün protokollar ailəsidir. Beləliklə, bəzi məruzəçilərimiz əvvəlcə digər natiqlərimiz tərəfindən təklif olunan problemlər üzərində işləyirlər - və bu, gözəldir.

Müraciət etmək, lider seçmək, bloklamaq və ya koordinasiya etmək üçün çoxsaylı hostlar arasında konsensus tapmaq bacarığı müasir paylanmış sistemlərdə əsas məsələdir. Paxos indi konsensus problemlərini həll etməyin əsas yoludur və müxtəlif praktik ehtiyaclar üçün alqoritmi genişləndirmək və optimallaşdırmaq üçün onun ətrafında çoxlu araşdırmalar aparılır.

Bu söhbətdə biz orijinal tələbləri yüngülləşdirərək və alqoritmi ümumiləşdirərək Paxos-un nəzəri əsaslarına yenidən baxacağıq. Biz görəcəyik ki, Paxos mahiyyətcə geniş konsensus yanaşmaları arasında yalnız bir seçimdir və spektrin digər nöqtələri də yaxşı paylanmış sistemlərin qurulması üçün çox faydalıdır.

Aleks Petrov - Keçici Replikasiya və Ucuz Kvorumlarla saxlama xərclərinizi azaldın

19 hidra başlığı. Proqramın böyük icmalı Aleks verilənlər bazası və saxlama sistemləri üzrə mütəxəssisdir və bizim üçün daha da önəmlisi, iş icraçısıdır Cassandra. Hal-hazırda O'Reilly ilə birlikdə Database Internals adlı kitab üzərində işləyir.

olan sistemlər üçün nəticəli ardıcıllıq (rus terminologiyasında - "son ardıcıllıq"), node qəzasından və ya şəbəkə parçalanmasından sonra aşağıdakı dilemmanı həll etməlisiniz: ya ardıcıllığı qurban verərək sorğuları yerinə yetirməyə davam edin, ya da onları yerinə yetirməkdən imtina edin və mövcudluğu qurban verin. Belə bir sistemdə kvorumlar, üst-üstə düşən qovşaqların alt çoxluqları və ən azı bir qovşağın ən son dəyəri ehtiva etməsini təmin etmək yaxşı bir kənar həll ola bilər. Siz ən son dəyərlərlə cavab verərkən uğursuzluqlardan və bəzi qovşaqlarla əlaqə itkisindən sağ çıxa bilərsiniz.

Halbuki hər şeyin öz qiyməti var. Kvorumun təkrarlanması sxemi artan saxlama xərcləri deməkdir: problem baş verdikdə kifayət qədər nüsxələrin mövcud olmasını təmin etmək üçün lazımsız məlumatlar birdən çox qovşaqda saxlanmalıdır. Belə çıxır ki, bütün məlumatları bütün replikalarda saxlamaq lazım deyil. Məlumatları yalnız qovşaqların bir hissəsində saxlasanız və uğursuzluqların idarə edilməsi ssenariləri üçün xüsusi qovşaqlardan (Transient Replica) istifadə etsəniz, yaddaşa yükü azalda bilərsiniz.

Hesabat zamanı nəzərdən keçirəcəyik Şahid replikaları, istifadə olunan replikasiya sxemi Spanner и mega mağaza, və Apache Cassandra bu konsepsiyanın həyata keçirilməsi çağırıb Keçici Replikasiya və Ucuz Kvorumlar.

Dmitri Vyukov - Goroutines ifşa

19 hidra başlığı. Proqramın böyük icmalı Dmitri Google-da C/C++ və Go - Address/Memory/ThreadSanitizer və Linux nüvəsi üçün oxşar alətlər üçün dinamik testlər üzərində işləyən tərtibatçıdır. Ölçəklənən goroutin planlaşdırıcısı, şəbəkə sorğulayıcısı və paralel zibil toplayıcısı Go-a töhfə verdi. O, multithreading üzrə mütəxəssisdir, onlarla yeni bloklanmayan alqoritmlərin müəllifidir və Qara kəmər Intel.

İndi bir az hesabatın özü haqqında. Go dili goroutines (yüngül iplər) və kanallar (FIFO növbələri) şəklində çox iş parçacığı üçün yerli dəstəyə malikdir. Bu mexanizmlər istifadəçilər üçün müasir çox yivli proqramlar yazmağı çox asan və zövqlü edir və bu, sehrli görünür. Anladığımız kimi, burada heç bir sehr yoxdur. Bu söhbətdə Dmitri Go planlayıcısının incəliklərini araşdıracaq və bu "sehrinin" həyata keçirilməsinin sirlərini göstərəcəkdir. Əvvəlcə o, planlaşdırıcının əsas komponentləri haqqında ümumi məlumat verəcək və onun necə işlədiyini sizə xəbər verəcəkdir. Bundan sonra, parkinq/parkın çıxarılması strategiyası və bloklama sistem zənglərinin idarə edilməsi kimi fərdi aspektləri daha yaxından nəzərdən keçirəcəyik. Nəhayət, Dmitri planlaşdırıcının mümkün təkmilləşdirilməsi haqqında bir az danışacaq.

Dmitri Buqayçenko - Ehtimal eskizləri və daha çoxu ilə paylanmış qrafik analizini sürətləndirmək

19 hidra başlığı. Proqramın böyük icmalı Dmitri universitet və elmi ictimaiyyətlə əlaqəni kəsmədən təxminən 9 il autsorsinqdə çalışdı. Odnoklassniki-də böyük məlumatların təhlili onun üçün nəzəri təlim və elmi əsasları real, tələb olunan məhsulların inkişafı ilə birləşdirmək üçün unikal şans oldu.

Paylanmış qrafiklərin təhlili çətin bir iş olmuşdur və belə də qalır: qonşu təpənin əlaqələri haqqında məlumat əldə etmək zərurəti yarandıqda, məlumatlar tez-tez maşınlar arasında ötürülməlidir ki, bu da icra müddətinin və şəbəkə infrastrukturunun yüklənməsinin artmasına səbəb olur. Bu söhbətdə, ehtimal məlumat strukturlarından və ya sosial şəbəkədəki dostluq qrafikinin simmetriyası kimi faktlardan istifadə etməklə əhəmiyyətli emal sürətlərini necə əldə edə biləcəyinizi görəcəyik. Bütün bunlar Apache Spark-da kod nümunələri ilə təsvir edilmişdir.

Denis Rıstsov - Keçici Replikasiya və Ucuz Kvorumlarla saxlama xərclərinizi azaldın

19 hidra başlığı. Proqramın böyük icmalı Denis - tərtibatçı Kosmos DB, ardıcıllıq modellərini, konsensus alqoritmlərini və paylanmış əməliyyatları yoxlamaq üzrə ekspert. Hazırda o, Microsoft-da işləyir, bundan əvvəl isə Amazon və Yandex-də paylanmış sistemlər üzərində işləyib.

Bu söhbətdə biz son bir neçə il ərzində icad edilmiş və şərti yeniləməni dəstəkləyən istənilən məlumat anbarının üstündə müştəri tərəfində tətbiq oluna bilən paylanmış əməliyyat protokollarına nəzər salacağıq (müqayisə et və təyin et). Nəticə odur ki, həyat iki fazalı öhdəliklə bitmir, əməliyyatlar istənilən verilənlər bazasına əlavə edilə bilər - tətbiq səviyyəsində, lakin fərqli protokolların (2PC, Percolator, RAMP) fərqli üstünlükləri var və bizə verilmir. pulsuz.

Aleksey Zinovyev - Bütün ML alqoritmləri onu paylanmış cənnətə çevirmir

19 hidra başlığı. Proqramın böyük icmalı Aleksey (zaleslaw) uzun müddət məruzəçi və digər konfranslarda proqram komitələrinin üzvüdür. EPAM Systems-də təlimçi kimi çalışır və 2012-ci ildən Hadoop/Spark və digər böyük data ilə dostluq edir.

Bu çıxışda Aleksey Apache Spark ML, Apache Mahout, Apache Flink ML ilə işləmək təcrübəsinə və Apache Ignite ML-nin yaradılması təcrübəsinə əsaslanaraq, paylanmış rejimdə icra üçün klassik maşın öyrənmə alqoritmlərinin uyğunlaşdırılması problemlərindən danışacaq. Aleksey bu çərçivələrdə paylanmış ML alqoritmlərinin tətbiqi haqqında da danışacaq.

Və nəhayət, Yandex verilənlər bazası haqqında Yandex-dən iki hesabat.

Vladislav Kuznetsov - Yandex verilənlər bazası - nasazlığa dözümlülüyü necə təmin edirik

19 hidra başlığı. Proqramın böyük icmalı Vladislav, paylanmış platformalar qrupunda Yandex-də bir tərtibatçıdır. Yandex verilənlər bazası sabitliyi itirmədən disklərin, serverlərin, rafların və məlumat mərkəzlərinin nasazlığına tab gətirə bilən üfüqi şəkildə miqyaslana bilən, geo-paylanmış, nasazlığa davamlı DBMS-dir. Səhvlərə dözümlülüyü təmin etmək üçün paylanmış konsensusa nail olmaq üçün mülkiyyət alqoritmi, həmçinin hesabatda ətraflı müzakirə olunan bir sıra texniki həllər istifadə olunur. Hesabat həm DBMS tərtibatçıları, həm də DBMS əsasında tətbiqi həllər hazırlayanlar üçün maraqlı ola bilər.

Semyon Çeçerinda - YDB-də paylanmış əməliyyatlar

19 hidra başlığı. Proqramın böyük icmalı Semyon, Yandex-də paylanmış platformalar qrupunun tərtibatçısıdır, YDB quraşdırmasının çoxlu icarəyə götürülməsi imkanları üzərində işləyir.

Yandex verilənlər bazası OLTP sorğuları üçün nəzərdə tutulmuşdur və əməliyyat sistemi üçün ACID tələblərinə uyğundur. Bu hesabatda biz YDB əməliyyat sisteminin əsasını təşkil edən əməliyyat planlaşdırma alqoritmini nəzərdən keçirəcəyik. Hansı qurumların əməliyyatlarda iştirak etdiyinə, əməliyyatlara qlobal nizamı kimin təyin etdiyinə, əməliyyatın atomikliyinə, etibarlılığına və ciddi izolyasiya səviyyəsinə necə nail olunduğuna baxaq. Nümunə kimi ümumi problemdən istifadə edərək, iki fazalı öhdəliklər və deterministik əməliyyatlardan istifadə edərək əməliyyatların həyata keçirilməsinə baxaq. Gəlin onların fərqlərini müzakirə edək.

Növbəti nədir?

Konfransın proqramı yeni məruzələrlə dolmağa davam edir. Xüsusilə bir hesabat gözləyirik Nikita Koval (ndkoval) JetBrains-dən və Oleq Anastasyev (m0nstermind) Odnoklassniki şirkətindən. Nikita Kotlin komandasında koroutinlər üçün alqoritmlər üzərində işləyir, Oleq isə Odnoklassniki platformasında yüksək yüklü sistemlər üçün arxitektura və həllər hazırlayır. Bundan əlavə, daha 1 şərti boş yer var, proqram komitəsi hazırda ona namizədlərlə işləyir.

Hydra konfransı 11-12 iyul tarixlərində Sankt-Peterburqda baş tutacaq. Biletlər mövcuddur rəsmi saytında satın alın. Onlayn biletlərin mövcudluğuna diqqət yetirin - əgər nədənsə bu günlərdə Sankt-Peterburqa gedə bilmirsinizsə.

Hydra-da görüşənədək!

Mənbə: www.habr.com

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