19 pead hüdrahommiku. Suur ülevaade programmist

11-12 juulil toimub Peterburis konverents Hydra, mis on pühendatud paralleelsete ja hajutatud süsteemide arendusele. Hydra eripära seisneb selles, et see toob kokku suurepärased teadlased (keda leidub tavaliselt ainult välismaistel teaduskonverentsidel) ja tuntud praktikute insenerid, luues selle kaudu suure programmi teaduse ja praktika ristumiskohal.

Hydra on üks meie kõige olulisemaid konverentse viimase paari aasta jooksul. Sellele eelnes väga tõsine ettevalmistus, kõnelejate ja ettekannete valik. Eelmisel nädalal selle kohta ilmus huvitav intervjuu JUG.ru Groupi direktori Aleksei Fedorovi (23derevo).

Meie oleme juba rääkinud ka three olulise osaleja, hajutatud süsteemide teooria rajaja — Leslie Lamport, Maurice Herlihy ja Michael Scott. On aeg rääkida kogu programmi üksikasjadest!

19 pead hüdrahommiku. Suur ülevaade programmist

Motivatsioon

Kui tegelete programmeerimisega, siis teatud määral puutute kokku mitme töötluse ja jagatud arvutustega. Vastava valdkonna spetsialistid töötavad nendega vahetult, kuid jagatus vaatepunktist on meiega igal pool: igas mitme tuuma arvutis või jagatud teenuses on midagi, mis teostab arvutusi samaaegselt.

On mitmeid konverentse, mis käsitlevad erinevaid rakenduste programeerimise aspekte. Teise äärmusesse jäävad spetsiaalsed teaduskoolid, mis loengute formaadis avavad suuri mahte keerulist teooriat. Näiteks samal ajal, kui Hydra toimub Peterburis, toimub SPTDC kool. Konverentsil Hydra püüdsime kokku tuua nii karmid praktikad kui ka teaduse ning kõik, mis nende ristumiskohal toimub.

Mõelge sellele: me elame imeliselt ajal, mil on võimalik elada kohtuda teadus- ja inseneerimisvaldkonna asutajatega, millega me tegeleme. Füüsikud ei saa kohtuda ei Newtont ega Einsteiniga — rong on läinud. Kuid meie kõrval elavad endiselt need, kes lõid ja arendasid välja jaotatud süsteemide teooria alused, lõid tuntud programmeerimiskeeled ja teostasid need esimeste funktsionaalsete prototüüpide näol. Need inimesed ei ole oma tööd pooleli jätnud, vaid tegelevad praegu aktuaalsete ülesannetega tuntud ülikoolides ja ettevõtetes ning on tänapäeval ühed suurimad teadmiste ja kogemuste allikad.

Teisest küljest jääb võimalus nendega kohtuda tavaliselt puhtalt teoreetiliseks: vähesed meist saavad pidevalt jälgida avalikke üritusi mõnes Rochesteri ülikoolis, et siis kiiresti USAsse sõita ja tagasi Michael Scotti loengusse tulla. Kõikide Hydra osalejate külastamine maksaks väikese varanduse, rääkimata raisatud ajast (kuigi see kõlab nagu huvitav väljakutse).

Teisest küljest on meil palju tippinsenere, kes töötavad praegu aktuaalsete jagatud süsteemide probleemide kallal ja neil on tõeliselt palju rääkida. Aga siin on probleem — nad töötavad, ja nende aeg on väärtuslik. Jah, kui oled Microsofti, Google'i või JetBrains'i töötaja, suurenevad võimalused, et kohtud mõne tuntud esinejaga sisemisel üritusel, aga üldiselt — see ei juhtu iga päev.

Seega täidab Hydra konverents olulist ülesannet, mida enamus meist ei suuda ise teha — toob samasse kohta ja samal ajal kokku inimesi, kelle ideed või kellega suhtlemine võivad muuta sinu elu. Ma tunnustan, et mitte kõigile ei ole vajalikud jagatud süsteemid, mingid keerulised põhiteemad. Sa võid terve elu programmeerida CRUD-e PHP-s ja jääda täiesti õnnelikuks. Aga kellele see on vajalik — see on teie võimalus.

Esimese Hydra konverentsi teadaandest on möödunud juba üsna palju aega. Selle aja jooksul on tehtud tohutult tööd — ja nüüd on meil peaaegu kõikide ettekannete nimekiri. Ei mingit igavat ühemõttelist algoritmi, ainult puhas jaotatud hardcore! Lõpetame üldiste sõnadega ja vaatame, mis meil nüüd käes on.

Peaesinejad

Peaesinejad avavad ja lõpetavad konverentsi päevi. Üldiselt avava peaesineja mõte on seada konverentsile üldine vaimsus ja suund. Lõpetav peaesineja teeb järeldused ja selgitab, kuidas elada konverentsi päevadel omandatud teadmiste ja oskustega. Algus ja lõpp: see, mis jääb kõige paremini meelde, ja omab üldiselt suuremat tähtsust.

Cliff Click — H2O jaotatud K/V algoritm

19 pead hüdrahommiku. Suur ülevaade programmist Cliff on Java maailma legend. 90ndate lõpupoole kirjutas ta oma PhD väitekirja jaoks töö nimega „Analüüside kombineerimine, optimeerimise kombineerimine“, mis arendas mõne aja pärast HotSpot JVM Server Compiler'i aluseks. Kahe aasta pärast töötas ta juba Sun Microsystems'is JVM-i juures ja näitas kogu maailmale, et JIT-l on õigust olla. Kogu see lugu Java kohta – kui ühe kiireima kaasaegse executeerimise ja nutikate ning kiirete optimeerimise tehnoloogiaga – algas soovist, mida tähendas Cliff Click. Alguses arvati, et kui midagi on saadaval staatilisele kompilaatorile, siis pole seda isegi mõtet JIT-ida. Tänu Cliffi ja tema meeskonna tööle hakkasid kõik uued keeled olema loodud JIT-kompilaatori ideega vaikimisi. Ilmselgelt ei olnud see töö ühe inimese jaoks, kuid Cliffi roll oli selles väga oluline.

Avakõnes räägib Cliff oma uue algatuse kohta – H20, mälupõhine platvorm jaotatud ning skaleeritava masinõppe jaoks tööstuslikul tasemel. Täpsemalt öeldes – selle sees olev jaotatud võtme-väärtuse ladustamine. See on väga kiire ladustamine paljude huvitavate omadustega (täpne nimekiri on olemas kirjeldusest), mis võimaldavad selliste lahenduste kasutamist suurandmete voogesituse matemaatikas.

Veel üks ettekande, millega Cliff üles astub – Azuli riistvara tehingumälu kogemus. Teine osa tema eluloost — kümme aastat tööd Azul'is, kus ta uuendas ja parandas palju igasugust riistvaras ja tehnoloogiatehnikas Azul: JIT-kompilaatorid, jooksuaja, lõimemudel, vigade töötlemine, virnastamine, riistvaralised katkestused, klasside laadimine ja nii edasi — noh, te saate aru.

Kõige huvitavam osa algas siis, kui nad lõid riistvara suurtele ettevõtetele — superarvuti Java käitamiseks. See oli üsna innovaatiline lahendus, mis oli spetsiaalselt loodud Java jaoks, millel on erilised nõudmised — madala pausiga prügikoristuseks lugemise mälu tõkked, piiritletud massiivid, virtuaalsed kutsed... Üks lahedamaid tehnoloogiaid on riistvaraline tehingumälu. Iga L1 864 tuumast sai osaleda tehingu salvestuses, mis on eriti oluline Java lukustustega töötamiseks (sünkroniseeritud plokid võivad töötada paralleelselt, seni kuni ei ole tegelikke mälu konflikte). Kuid ilus idee kukkus kokku karmis reaalsuses — ja selles ettekandes räägib Cliff, miks HTM ja STM ei sobi hästi praktiliste vajaduste jaoks mitme lõimega arvutamisel.

Michael Scott — Topeltstruktuurid

19 pead hüdrahommiku. Suur ülevaade programmist Michael Scott — professor arvutiteaduse erialal Rochesteri ülikoolis, kellega saatus on seotud juba 34 aastat, ja oma koduülikoolis Wisconsin–Madison oli ta dekaan viis aastat. Ta tegeleb paralleelse ja jaotatud programmeerimise ning keelte disaini uurimisega ja õpetab seda üliõpilastele.

Kogu maailm tunneb Michaelit tema õpikust «Programming Language Pragmatics», mille viimane väljaanne ilmus suhteliselt hiljuti — 2015. aastal. Tema töö «Algorithms for scalable synchronization on shared-memory multiprocessors» sai on saanud Dijkstra auhinna kuna see on üks tuntumaid töid jaotatud arvutusvaldkonnas ning on vabalt kättesaadav Rochesteri ülikooli veebiraamatukogus. Samuti võite teda tunda kui autori, kes on loonud Michael-Scottti algoritmi «Simple, Fast, and Practical Non-Blocking and Blocking Concurrent Queue Algorithms».

Mis puudutab Java maailma, siis siin on lugu eriline: koos Doug Leaga töötas ta välja need mitteblokeerivad algoritmid ja sünkroonsed järjekorrad, millel põhinevad Java raamatukogud. Just sellest räägib ka põhikõne «Dual data structures» — nende struktuuride rakendamine Java SE 6-s võimaldas saavutada kümnekordset jõudluse paranemist java.util.concurrent.ThreadPoolExecutor. Kui teid huvitab, mis need «Dual data structures» on, siis selle kohta on olemas vastav töö.

Maurice Herlihy — Plokiahelad ja jaotatud arvutamise tulevik

19 pead hüdrahommiku. Suur ülevaade programmist Maurice Herlihy — omanik kahele Deijkstra auhinnale. Esimene — töö eest, «Wait-Free Synchronization» (Brown University), ja teine, uuem — «Transactional Memory: Architectural Support for Lock-Free Data Structures» (Virginia Tech University). Deijkstra auhinda antakse tööde eest, mille tähtsus ja mõju on olnud märgatav vähemalt kümne aasta jooksul, ja selgelt on Maurice üks tuntumaid spetsialiste selles valdkonnas. Praegu töötab ta professorina Brown'i ülikoolis ja tal on palju saavutusi, et rääkida terve lõik.

Selle lõpetava võtmeesitluse käigus räägib Maurice plokiahelate jaotatud süsteemide teooriast ja praktikast klassikaliste jagatud arvutuste perspektiivi alt ning sellest, kuidas see lihtsustab mitmeid seotud probleeme. See ettekande teema on rangelt konverentsi teema — mitte maihaksete hype'i kohta, vaid pigem sellest, kuidas meie teadmisi saab hämmastavalt tõhusalt ja sobivalt kasutada mitmesuguste ülesannete lahendamiseks.

Juulis 2017 külastas Maurice juba Venemaad SPTDC koolis, osales JUG.ru koosolekul ja salvestust saab vaadata YouTube'is:

Vaata videot

Põhiprogramm

Järgmisena on lühike ülevaade programmis sisalduvatest ettekannetest. Osa ettekandeid on siin detailselt kirjeldatud, osa aga lühemalt. Pikad kirjeldused on enamasti ingliskeelsetele ettekannetele, mis vajavad viiteid teadusartiklitele, termineid Vikipeedias ja nii edasi. Täielikku nimekirja saab näha konverentsi kodulehelt. Nimekiri veebilehel uuendatakse ja täiendatakse.

Leslie Lamport — Küsimused ja vastused

19 pead hüdrahommiku. Suur ülevaade programmist Leslie Lamport on jaotatud arvutuste aluste tööde autor. «LaTeX» tähendab «Lamport TeX». Just tema tutvustas esmakordselt juba 1979. aastal mõistet järjekindlast kooskõlastatusest, ja tema artikkel «Kuidas teha mitu protsessorit, mis õigesti täidab mitu ülesannet» sai Dijkstra auhinna.

See on programmi kõige ebatavalisem formaat, kuna see pole isegi ettekande vormis, vaid küsimuste ja vastuste sessioon. Kui suur osa publikust on juba tuttav (või võib tutvuda) kõikvõimalike töödega, mis põhinevad «Lempordi teoorial», tema enda artiklite ja ettekannetega, on väga oluline kulutada kogu saadaval aeg otseseks suhtlemiseks.

Idee on lihtne — vaatate YouTube'ist kahte ettekannet: «Programmeering peaks olema rohkem kui kodeerimine» ja «Kui te ei kirjuta programmi, ärge kasutage programmeerimiskeelt» ja valmistate ette vähemalt ühe küsimuse, millele Leslie vastab.

Esimene neist kahest videost oleme juba muundanud põhjalikuks artikliks. Kui teil ei ole tunni jagu aega video vaatamiseks, saate seda kiiresti lugeda tekstivormingus.

Teatamiseks: YouTube'is on palju rohkem videoid Leslie Lamport'ist. Näiteks on seal suurepärane course on TLA+. Kogu selle kursuse offline-versioon on saadaval autori kodulehelt, ja YouTube'is on see mugavamaks vaatamiseks mobiilseadmetes üles laaditud.

Martin Kleppmann — Andmete sünkroniseerimine kasutajaseadmete vahel jaotatud koostöö jaoks

19 pead hüdrahommiku. Suur ülevaade programmist Martin Kleppmann on Cambridge'i ülikooli teadlane, kes töötab CRDT-de ja algoritmide formaalse verifikatsiooni kallal. Martini raamat „Data-intensive rakenduste projekteerimine“, mis ilmus 2017. aastal, osutus väga edukaks ja jõudis andmete salvestamise ja töötlemise valdkonna bestsellerite nimekirja. Kevin Scott, Microsofti CTO, korrutas: „See raamat peab olema iga arendaja jaoks kohustuslik. See on haruldane ressurss, mis ühendab teooria ja praktika, aidates arendajatel targemalt disainida ja rakendada infrastruktuuri ja andmete töötlemise süsteeme.“ Midagi sarnast ütles ka Kafka looja ja Confluenti CTO, Jay Kreps.

Enne akadeemiliste uurimistöödega tegelemist töötas Martin tööstuses ja oli kahel edukal idufirmal kaasasutaja:

  • Rapportive, mis keskendus sotsiaalsete profiilide kuvamisele teie e-kirjadest, mille LinkedIn ostis 2012. aastal;
  • Go Test It, teenus veebilehtede automaatseks testimiseks erinevates brauserites, mille RedGate ostis 2009. aastal.

Üldiselt, kuigi Martin on vähem tuntud kui meie peaesinejad, on ta juba suutnud panustada nii hajutatud arvutamise arendamisse kui ka tööstusse.

Selles ettekandes räägib Martin teemal, mis on lähemal tema akadeemilistele uuringutele. Google Docs ja sarnastes koostööredigeerimise tarkvarades tähistab "koostöörakendus" replika ülesannet: iga kasutajal on oma koopiad ühisest dokumentist, mida nad seejärel muudavad, ja kõik muudatused saadetakse võrgu kaudu teistele osalejatele. Dokuementide muudatused, mis toimuvad offline, viivad ajutise ebakõlani dokumentide vahel teiste osalejatega, mille taastamine vajab konfliktide lahendamist. Just selleks on olemas Konfliktivabad replitud andmetüübid (CRDT) on põhimõtteliselt üsna uus kontseptsioon, mille sisustamine toimus alles 2011. aastal. Selles ettekandes arutatakse, mis on juhtunud CRDT maailmas alates sellest ajast, millised on viimased saavutused ning käsitletakse kohaliku esmaklassi rakenduste loomise lähenemisviisi ja avatud lähtekoodiga raamatukogu kasutamist. Automerge eriti.

järgmisel nädalal avaldame Habr's suures intervjuu Martiniga, see on kindlasti huvitav.

Pedro Ramalhete — Ootamatud andmestruktuurid ja ootamatud tehingud

19 pead hüdrahommiku. Suur ülevaade programmist Pedro töötab Cisco's ja on viimased kümme aastat töötanud paralleelsete algoritmide arendamisega, sealhulgas sünkroniseerimismehhanismide, lukustamisvabade ja ootamatute andmestruktuuride loomisega ning kõigega, mida selle teemaga seoses ette kujutada võib. Tema praegused teaduslikud ja inseneritegevuse huvid keskenduvad universaalsetele konstruktsioonidele, tarkvaralisele tehingumälule, püsivale mälule ja sarnastele tehnoloogiatele, mis võimaldavad rakendada korrektseid, skaleeritavaid ja tõrkevabu rakendusi. Samuti on ta laialdaselt tuntud blogi Concurrency Freaks.

Enamiku mitmeosaliste rakenduste tööks kasutatakse paralleelseid andmestruktuure, alates sõnumijärjekordade kasutamisest näitlejate vahel kuni indekseeritud andmestruktuurideni võtme-väärtuse salvestistes. Java JDK-s on need edukalt töötanud juba aastaid ja C++-s lisatakse neid järk-järgult.

Lihtsaim viis paralleelse andmestruktuuri rakendamiseks on järjestikune (üheosaline) rakendamine, kus meetodid on kaitstud muteksitega. See on kergesti kergesti kergesti kergesti olnud, kuid sellega on ilmne skaleeritavuse ja jõudluse probleem. Samal ajal suudavad lukustumise ja ootamisevabad andmestruktuurid mitte ainult paremini vigu käsitleda, vaid neil on ka soodsam jõudluse profiil — siiski nõuab nende välja töötamine sügavat ekspertiisi ja konkreetse rakenduse kohandamist. Üks vale koodirida võib kõik rikkuda.

Kuidas tagada, et isegi mitteekspert suudaks selliseid andmestruktuure kavandada ja rakendada? On teada, et iga järjestikune algoritm on võimalik muuta mitmeosaliseks, kasutades kas üldist konstruktsiooni, või tehingumälu. Need võivad vähendada probleemi lahendamise läve. Kuid mõlemad lahendused viivad reeglina ebaefektiivse rakendamiseni. Pedro räägib, kuidas nad suutsid need konstruktsioonid efektiivsemaks muuta ja kuidas neid saab oma algoritmides kasutada.

Heidi Howard — Vabastav jaotatud konsensus

19 pead hüdrahommiku. Suur ülevaade programmist Heidi Howard on, nagu ka Martin, jaotatud süsteemide uurija Cambridge'i ülikoolis. Tema spetsialiteet on järjepidevus, tõrketaluvus, jõudlus ja jaotatud konsensus. Ta on kõige tuntum Paxos algoritmi generaliseerimise, mida nimetatakse Paindlik Paxos.

Tuletame meelde, et Paxos — protokollide perekond, mis lahendab konsensuse ülesande usaldamatute arvutuste võrgus, põhinedes Leslie Lamporti töödele. Seega töötavad mõned meie esinejad algselt teiste meie esinejate pakutud probleemide kallal — ja see on suurepärane.

Konsensuse leidmine mitme hosti vahel — aadressimise, liidri valimise, blokeerimise või koordineerimise jaoks — on kaasaegsete hajutatud süsteemide põhiküsimus. Paxos on praegu peamine meetod konsensuse leidmiseks ning sellega seondub palju teadusuuringute eesmärgiga laiendada ja optimeerida algoritmi erinevate praktiliste vajaduste jaoks.

Selles ettekandes vaatame üle Paxose teoreetilise aluse, lõdvendades algseid nõudmisi ja üldistades algoritmi. Näeme, et Paxos on tegelikult vaid üks variant laias konsensuse lähenemiste spektris ning et spektri teised punktid on samuti väga kasulikud heade hajutatud süsteemide loomisel.

Alex Petrov — Vähendage oma salvestuskulusid ajutise replikatsiooni ja odavate enamuste abil

19 pead hüdrahommiku. Suur ülevaade programmist Aleks on andmebaaside ja salvestussüsteemide spetsialist, ning mis kõige tähtsam — kommitter CassandraO’Reillyga töötab ta praegu raamatu Database Internals kallal.

Hajutatud süsteemide jaoks eventual consistency (eestikeelses terminoloogias — „lõplikus kooskõlas“), pärast sõlme kadumist või võrgu jagunemist tuleb lahendada järgmine dilemma: kas jätkata päringute täitmist, ohverdades kooskõlastatuse, või keelata nende täitmine ja ohverdada kättesaadavus. Sellises süsteemis võivad kvoorumid, kattuvad sõlmede alamhulgad, mis tagavad, et vähemalt üks sõlm sisaldab viimast väärtust, olla head piirilahendused. Saame taluda tõrkeid ja kaotada ühenduse mõne sõlmega, jätkates vastamist kõige värskemate väärtustega.

Kuid kõikidel asjadel on oma hind. Kvoorumiplaanide replikatsioon tähendab suurenenud salvestuskulusid: peab hoidma üleliigseid andmeid mitmel sõlmel korraga, et tagada piisav arv kergesti kättesaadavaid koopiaid probleemide ilmnemisel. Selgub, et kõik andmed võib mitte hoida kõigis replikatsioonides. Saame säilitada salvestuskoormust, hoides andmeid ainult osa sõlmedes ja kasutada tõrke töötlemise stsenaariumides spetsiaalseid sõlmi (Transient Replica).

Ettekande käigus arutame Witness Replicas, replikatsiooni skeem, mida kasutatakse Spanner ja Megastore, ja selle kontseptsiooni rakendamine Apache Cassandra nimede all Ülemineku replikatsioon ja odavad kvoorumid.

Dmitri Vjjukov — Gorutiinid eksponeeritud

19 pead hüdrahommiku. Suur ülevaade programmist Dmitri on Google'is arendaja, kes töötab C/C++ ja Go dünaamilise testimise, Address/Memory/ThreadSanitizer ja sarnaste tööriistade kallal Linuxi tuumas. Ta on Go-sse kaasanud skaleeritava gorutiinide planeerija, võrgu küsija ja paralleelse prügi eemaldaja. Ta on mitmeerakonna ekspert, tosin mitteblokeeriva algoritmi autor ja omab must vöö Intelis.

Nüüd räägime natuke ettekandest. Go keeles on natiivne toetus mitme lõime toetamiseks, kasutades gorutiine (kerges niidis) ja kanaleid (FIFO järjekorrad). Tänu neile mehhanismidele on kaasaegsete mitme lõimega rakenduste kirjutamine kasutajatele lihtne ja meeldiv ning see näeb välja nagu maagia. Kuidas me teame, pole siin mingit maagiat. Selles ettekandes süüvib Dmitri Go ajakava töö detailidesse ja näitab selle "maagia" teostamist. Alguses annab ta ülevaate ajakava põhikomponentidest ja selgitab, kuidas see toimib. Edasi uurime lähemalt selliseid aspekte nagu parklate/saatmise strateegia ja blokaadide süsteemsete väljakutsete käitlemine. Lõpuks räägib Dmitri ka mõnedest võimalikest täiustustest ajakavaga.

Dmitri Bugaičenko — Kiirendame jaotatud graafide analüüsi tõenäosuslike skeetšide abil ja mitte ainult

19 pead hüdrahommiku. Suur ülevaade programmist Dmitri on töötanud peaaegu 9 aastat välisteenuste valdkonnas, säilitades samal ajal sideme ülikooli ja teadusmaailmaga. Suurte andmete analüüs Kooliklassides on talle pakkunud ainulaadse võimaluse ühendada teoreetilised teadmised ja teaduslik alus reaalses, nõutud toodete arendamises.

Jagatud graafide analüüs on olnud ja jääb keeruliseks ülesandeks: kui tekib vajadus saada teavet naaberveru sidemete kohta, tuleb sageli andmeid masinate vahel edastada, mis suurendab töötlusaega ja koormust võrguinfrastruktuurile. Selles ettekandes näeme, kuidas saab oluliselt kiirendada töötlust, kasutades tõenäosuslikke andmestruktuure või fakte, nagu sotsiaalvõrgustikes esineva sõprade graafi sümbioos. Kõike seda illustreeritakse koodinäidetega Apache Sparkis.

Denis Rytsov — Vähendage oma salvestuskulusid ajutise replikatsiooni ja odavate enamuste abil

19 pead hüdrahommiku. Suur ülevaade programmist Denis on arendaja Cosmos DB, konsistentsimudelite kontrollimise ekspert, konsensusalgoritmide ja jagatud tehingute alal. Praegu töötab ta Microsoftis, enne seda tegeles jagatud süsteemidega Amazonis ja Yandexis.

Selles ettekandes tutvume viimase paarikümne aasta jooksul välja mõeldud hajutatud tehingute protokollidega, mida on võimalik kliendi pool kasutusele võtta mis tahes andmebaasis, mis toetab tingimuslikku uuendamist (compare and set). Oluline on mõista, et elu ei lõpe kahefaasilise kinnitamisega, tehinguid on võimalik lisada mis tahes andmebaasi — rakendustasandil, kuid erinevatel protokollidel (2PC, Percolator, RAMP) on erinevad kauplemistehingud ja need ei tule meile tasuta.

Aleksei Zinovjev — Mitte kõik ML-algoritmid ei jõua hajutatud rikkausse

19 pead hüdrahommiku. Suur ülevaade programmist Aleksei (zaleslaw) — meie pikaajaline esineja ja programmikomiteede liige teistel konverentsidel. Praktikakoolitaja ettevõttes EPAM Systems ja on Hadoopi/Sparkiga ning muu suurandmetega sõbrnud alates 2012. aastast.

Selles ettekandes räägib Aleksei klassikaliste masinõppe algoritmide kohandamise probleemidest hajutatud režiimides töötamiseks oma kogemuste põhjal Apache Spark ML, Apache Mahouti, Apache Flinki ML ja Apache Ignite ML loomisest. Samuti räägib Aleksei nende raamistikus rakendatud hajutatud ML-algoritmidest.

Ja lõpetuseks — kaks ettekannet Yandexilt Yandex Database'i kohta.

Vladislav Kuznetsov — Yandex Database — kuidas me tagame tõrketaluvuse

19 pead hüdrahommiku. Suur ülevaade programmist Vladislav on arendaja Yandexis ja töötab jaotatud platvormide grupis. Yandex Database on horisontaalselt skaleeritav geograafiliselt hajutatud tõrketaluv andmebaas, mis talub ketaste, serverite, riiulite ja andmekeskuste rikkeid ilma järjepidevust rikkuvate probleemideta. Tõrketaluvuse tagamiseks kasutatakse proprietaarset jaotatud konsensuse saavutamise algoritmi ja mitmeid tehnilisi lahendusi, mida arutatakse ettekandes. Ettekanne võib huvitada nii andmebaasi arendajaid kui ka rakenduste arendajaid, mis põhinevad andmebaasil.

Semyon Checherinda — Jagatud tehingud YDB-s

19 pead hüdrahommiku. Suur ülevaade programmist Semyon on arendaja Yandexi jaotatud platvormide grupis, töötades YDB paigalduste mitme kliendi kasutamise võimaluste kallal.

Yandex Database on OLTP-päringute jaoks ja vastab ACID nõuetele tehingute süsteemis. Ajas arutelus käsitleme tehingute planeerimise algoritmi, mis on YDB tehingutesüsteemi aluseks. Uurime, millised üksused osalevad tehingutes, kes määrab tehingutele ülemaailmse järjekorra, kuidas saavutatakse tehingute aatomilisus, usaldusväärsus ja range isolatsiooni tase. Eseme põhjal, mis on levinud ülesanne, vaatame tehingute rakendusi, kasutades kahefasilist kinnitamist ja deterministlikke tehinguid. Arutame nende erinevusi.

Mis edasi?

Konverentsi programm täieneb uusimate ettekannetega. Eelkõige ootame ettekannet Nikita Koval (ndkoval) JetBrains'ist ja Oleg Anastasyev (m0nstermind) Odnoklassniki ettevõttest. Nikita uurib korutinide algoritme Kotlin'i meeskonnas ja Oleg arendab arhitektuuri ning lahendusi kõrge koormuse süsteemide jaoks Odnoklassniki platvormil. Lisaks on veel 1 tinglikult tühi slot, mille kandidaatidega tõmbab programmikomitee praegu töötama.

Hydra konverents toimub 11.-12. juulil Peterburis. Pileteid saab osta ametlikul veebisaidil. Tuletame meelde Online-piletite saadavust — kui te mingil põhjusel ei saa Peterburi tulla.

Kohtume Hydras!

Allikas: habr.com

Osta usaldusväärne veebihosting DDoS kaitsega, VPS VDS serverid 🔥 Osta usaldusväärne veebihosting DDoS kaitsega, VPS VDS serverid | ProHoster