{"id":35091,"date":"2019-10-31T22:02:18","date_gmt":"2019-10-31T19:02:18","guid":{"rendered":"https:\/\/prohoster.info\/blog\/19-golov-gidry-bolshoj-obzor-programmy\/"},"modified":"2019-10-31T22:02:18","modified_gmt":"2019-10-31T19:02:18","slug":"19-golov-gidry-bolshoj-obzor-programmy","status":"publish","type":"post","link":"https:\/\/prohoster.info\/et\/blog\/administrirovanie\/19-golov-gidry-bolshoj-obzor-programmy","title":{"rendered":"19 h\u00fcdra pead. Suur \u00fclevaade programmist","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>11-12 juuli toimub Peterburis konverents <noindex><a rel=\"nofollow\" href=\"https:\/\/hydraconf.ru\/?utm_source=habr&amp;utm_medium=453832\">Hydra<\/a><\/noindex>, mis on p\u00fchendatud paralleelsete ja jaotatud s\u00fcsteemide arendamisele. Hydra erip\u00e4ra on see, et see toob kokku suurep\u00e4rased teadlased (keda tavaliselt leidub ainult v\u00e4lismaistel teaduskonverentsidel) ja tuntud praktikud insenerid, luues suure programmi teaduse ja praktika piiril.<\/p>\n<p><\/p>\n<p>Hydra on \u00fcks meie k\u00f5ige olulisemaid konverentse viimase paarik\u00fcmne aasta jooksul. Sellele eelnes v\u00e4ga t\u00f5sine ettevalmistus, esinejate ja ettekannete valik. Eelmisel n\u00e4dalal ilmus <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/jugru\/blog\/453952\/\">hubro-intervjuu<\/a><\/noindex> ettev\u00f5tte JUG.ru Group direktoriga, Aleksei Fedoroviga (<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/users\/23derevo\/\" class=\"user_link\">23derevo<\/a><\/noindex>). <\/p>\n<p><\/p>\n<p>Meie <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/jugru\/blog\/445730\/\">oleme juba r\u00e4\u00e4kinud<\/a><\/noindex> kolme olulise osaleja, jaotatud s\u00fcsteemide teooria alusepanija \u2014 Leslie Lamporti, Maurice Herlihy ja Mike Scottiga. On aeg r\u00e4\u00e4kida kogu programmist l\u00e4hemalt!<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"19 h\u00fcdra pead. Suur \u00fclevaade programmist\" src=\"\/wp-content\/uploads\/2019\/06\/55b262908f46159cbd3638f00772215c.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<h2 id=\"motivaciya\">Motivatsioon<\/h2>\n<p><\/p>\n<p>Kui tegelete programmeerimisega, siis paratamatult puutute kokku mitme l\u00f5ime ja jaotatud arvutustega. Vastava ala spetsialistid t\u00f6\u00f6tavad nendega otse, ent jaotatus vaatab meile mitmel pool n\u00e4kku: igas mitme tuumalises arvutis v\u00f5i jaotatud teenuses leidub midagi, mis teostab arvutusi paralleelselt.<\/p>\n<p><\/p>\n<p>On mitmeid konverentse, mis k\u00e4sitlevad erinevaid rakendusprogrammimise aspekte. Teiselt poolt on meil spetsiaalsed teaduskoolid, mis loengute formaadis k\u00e4sitlevad tohutul hulgal keerulist teooriat. N\u00e4iteks toimub koos Hydraga Peterburis <noindex><a rel=\"nofollow\" href=\"https:\/\/sptdc.ru\/?utm_source=habr&amp;utm_medium=453832\">SPTDC kool<\/a><\/noindex>. <strong>Konverentsil Hydra p\u00fc\u00fcdsime kokku tuua nii ranget praktikat, teadust kui ka k\u00f5ike, mis nende vahepeal asub.<\/strong> <\/p>\n<p><\/p>\n<p>M\u00f5elge sellele: elame imeliselt ajal, mil on v\u00f5imalik isiklikult kohtuda teaduse ja inseneritehnika aluste loojatega, millega me tegeleme. F\u00fc\u00fcsikud ei kohtuks ei Newtoni ega Einsteini \u2014 rong on l\u00e4inud. Kuid meie k\u00f5rval elavad endiselt need, kes l\u00f5id jaotatud s\u00fcsteemide teooria alused, m\u00f5tlesid v\u00e4lja populaarsed programmeerimiskeeled ja viidi esmakordselt ellu t\u00f6\u00f6tavad protot\u00fc\u00fcbid. Need inimesed ei ole oma t\u00f6\u00f6d pooleli j\u00e4tnud, nad tegelevad praegu aktuaalsete \u00fclesannetega tuntud \u00fclikoolides ja ettev\u00f5tetes ning on t\u00e4nase p\u00e4eva k\u00f5ige suuremad teadmiste ja kogemuste allikad. <\/p>\n<p><\/p>\n<p>Teiselt poolt j\u00e4\u00e4b nende kohtumine tavaliselt puhtalt teoreetiliseks: harva suudab keegi meist pidevalt j\u00e4lgida avalikke \u00fcritusi m\u00f5nes Rochesteri \u00fclikoolis, et seej\u00e4rel USAsse kiirustada ja tagasi loengule Michael Scottile. Kohtumine k\u00f5igi Hydra osalejatega oleks kulukas, r\u00e4\u00e4kimata kulutatud ajast (kuigi see k\u00f5lab nagu huvitav \u00fclesanne).<\/p>\n<p><\/p>\n<p>Teiselt poolt on meil palju tippinseneride, kes t\u00f6\u00f6tavad praegu aktuaalsete jaotuss\u00fcsteemide probleemide kallal, ja neil on kindlasti midagi r\u00e4\u00e4kida. Kuid probleem on \u2014 nad <em>kasutavad<\/em>, ja nende aeg on kallis. Jah, kui sa oled Microsofti, Google'i v\u00f5i JetBrainsi t\u00f6\u00f6taja, suureneb t\u00f5en\u00e4osus, et kohtad \u00fchte tuntud esinejat sise\u00fcritusel \u2014 aga \u00fcldiselt \u2014 ei juhtu see iga p\u00e4ev.<\/p>\n<p><\/p>\n<p>Seega t\u00e4idab Hydra konverents olulist \u00fclesannet, mida enamik meist ise teha ei saa \u2014 \u00fchendab \u00fches kohas ja samal ajal inimesi, kelle ideed v\u00f5i suhtlemine v\u00f5ivad teie elu muuta. Ma tunnistan, et mitte k\u00f5ik ei vaja jaotuss\u00fcsteeme, mingeid keerulisi fundamentaalseid asju. V\u00f5ib elada elu l\u00f5puni PHP-s CRUD-e programmeerides ja olla t\u00e4iesti \u00f5nnelik. Kuid kellele need on vajalikud \u2014 see on teie v\u00f5imalus.<\/p>\n<p><\/p>\n<p>Esimesest Hydra konverentsi teadaandest Habr\u00e9 on m\u00f6\u00f6dunud juba piisavalt palju aega. Selle aja jooksul on tehtud tohutult t\u00f6\u00f6d \u2014 ja n\u00fc\u00fcd on meil peaaegu k\u00f5ikide ettekannete nimekiri. Ei mingit v\u00e4sinud \u00fcheahelalisi algoritme, ainult puhas jaotatud hardcore! L\u00f5petame \u00fcldiste s\u00f5nadega ja vaatame, mis meil n\u00fc\u00fcd k\u00e4es on.<\/p>\n<p><\/p>\n<h2 id=\"keynouty\">Keynote'id<\/h2>\n<p><\/p>\n<p>Keynote'id avavad ja l\u00f5petavad konverentsip\u00e4evi. Tavaliselt avava keynote'i m\u00f5te on seada konverentsi \u00fcldine vaim ja suund. L\u00f5ppev keynote t\u00f5mbab joone alla ja selgitab, kuidas me peame elama konverentsi p\u00e4evadel omandatud teadmiste ja oskustega. Algus ja l\u00f5pp: see, mis j\u00e4\u00e4b paremini meelde, ja \u00fcldiselt on sellel suur t\u00e4hendus.<\/p>\n<p><\/p>\n<h3 id=\"cliff-click--the-h2o-distributed-kv-algorithmhttpshydraconfru2019talks1urihjc39wzahcg3lbxbtqutm_sourcehabrutm_medium453832\">Cliff Click \u2014 <noindex><a rel=\"nofollow\" href=\"https:\/\/hydraconf.ru\/2019\/talks\/1urihjc39wzahcg3lbxbtq\/?utm_source=habr&amp;utm_medium=453832\">H2O jaotatud K\/V algoritm<\/a><\/noindex><\/h3>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"19 h\u00fcdra pead. Suur \u00fclevaade programmist\" src=\"\/wp-content\/uploads\/2019\/06\/2a1b4f1e305a3c4f32dc88e84cfe504f.jpeg\" style=\"display:block;margin: 0 auto;\" \/> Cliff on Java-maailma legend. 90ndate l\u00f5pus kirjutas ta oma doktorit\u00f6\u00f6d nimega <noindex>\u201eAnal\u00fc\u00fcside kombineerimine, optimeerimise kombineerimine\u201c<\/noindex>, mis hiljem sai aluseks HotSpot JVM Server Compiler. Kaks aastat hiljem t\u00f6\u00f6tas ta juba Sun Microsystemsis JVM-i kallal ja n\u00e4itas kogu maailmale, et JIT-l on litsents eksisteerida. Kogu see lugu, et Java on \u00fcks kiiremaid kaasaegseid jooksut\u00f6id koos k\u00f5ige nutikamate ja kiiremate optimeerimisega, tulenebki Cliff Clickist. Alguses arvati, et kui midagi on staatiliselt kompilaatorile k\u00e4ttesaadav, pole m\u00f5tet isegi JIT-i proovida. Cliffi ja tema meeskonna t\u00f6\u00f6 t\u00f5ttu hakkasid k\u00f5ik uued keeled tekkima JIT-kompilatsiooni idee \u00fcmber vaikimisi. See oli kindlasti t\u00f6\u00f6, mis ei olnud \u00fcksi inimese teha, kuid Cliff m\u00e4ngis selles v\u00e4ga olulist rolli.<\/p>\n<p><\/p>\n<p>Cliff r\u00e4\u00e4gib oma avamisk\u00f5nes oma teisest ettev\u00f5tmisest \u2014 <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/h2oai\/h2o-3\">H20<\/a><\/noindex>, m\u00e4lus olev platvorm jaotatud ja skaleeritava masina\u00f5ppe jaoks t\u00f6\u00f6stuslikuks kasutamiseks. T\u00e4psemalt \u2014 jaotatud \u201ev\u00f5ti-v\u00e4\u00e4rtus\u201d laopidamine selle sees. See on v\u00e4ga kiire laohoidla, millel on palju huvitavaid omadusi (t\u00e4pne loend on <noindex><a rel=\"nofollow\" href=\"https:\/\/hydraconf.ru\/2019\/talks\/1urihjc39wzahcg3lbxbtq\/?utm_source=habr&amp;utm_medium=453832\">kirjeldus<\/a><\/noindex>), mis v\u00f5imaldavad selliste lahenduste kasutamist suurandmete voogedastuse matemaatikas.<\/p>\n<p><\/p>\n<p>Veel \u00fcks ettekande, millega Cliff esineb \u2014 <noindex><a rel=\"nofollow\" href=\"https:\/\/hydraconf.ru\/2019\/talks\/2jix5mst7iduyp9linqhfj\/?utm_source=habr&amp;utm_medium=453832\">The Azul Hardware Transactional Memory experience<\/a><\/noindex>. Teine osa tema biograafiast \u2014 k\u00fcmme aastat <noindex>t\u00f6\u00f6d Azul<\/noindex>, kus ta uuendas ja parandas palju asju Azuli riistvara ja tehnoloogiate virnas: JIT-kompilaatorid, jooksut\u00f6\u00f6d, l\u00f5ngamudel, veahaldus, t\u00f6\u00f6tlus roboti, klasside laadimine jne \u2014 noh, te saite aru.<\/p>\n<p><\/p>\n<p>K\u00f5ige huvitavam osa algas siis, kui nad tegid \u00e4ririistvara \u2014 superarvuti Java k\u00e4itamiseks. See oli \u00fcsna innovatiivne asi, mis oli spetsiaalselt Java jaoks kohandatud, millel olid erilised n\u00f5udmised \u2014 m\u00e4lubarj\u00e4\u00e4rid madala viivitusega pr\u00fcgikoristamiseks, piiritletud massiivid, virtuaalsed kutsed\u2026 \u00dcks \u00e4gedamaid tehnoloogiaid on riistvaraline tehinguline m\u00e4lu. Iga L1 mis tahes 864 tuumas v\u00f5is osaleda tehingu kirjutamises, mis on eriti oluline Java lukustusprobleemide lahendamiseks (s\u00fcnkroniseeritud plokid v\u00f5ivad t\u00f6\u00f6tada paralleelselt seni, kuni ei esine tegelikku m\u00e4lukonflikti). Kuid ilus idee purunes karmi reaalsuse t\u00f5ttu \u2014 ja selles ettekandes r\u00e4\u00e4gib Cliff, miks HTM ja STM ei sobi v\u00e4ga h\u00e4sti mitme l\u00f5imearvutuse praktiliste vajaduste jaoks.<\/p>\n<p><\/p>\n<h3 id=\"michael-scott--dual-data-structureshttpshydraconfru2019talkslnhqpq8cz5kzgjmhlqpicutm_sourcehabrutm_medium453832\">Michael Scott \u2014 <noindex><a rel=\"nofollow\" href=\"https:\/\/hydraconf.ru\/2019\/talks\/lnhqpq8cz5kzgjmhlqpic\/?utm_source=habr&amp;utm_medium=453832\">Kaksikordne andmestruktuuride spetsialist<\/a><\/noindex><\/h3>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"19 h\u00fcdra pead. Suur \u00fclevaade programmist\" src=\"\/wp-content\/uploads\/2019\/06\/5270050098dc1230d469e60362b6930a.jpeg\" style=\"display:block;margin: 0 auto;\" \/> <noindex><a rel=\"nofollow\" href=\"https:\/\/en.wikipedia.org\/wiki\/Michael_L._Scott\">Michael Scott<\/a><\/noindex> \u2014 professor Computer Science Rochesteri \u00dclikoolis, kellega saatus \u00fchendab teda <noindex>juba 34 aastat<\/noindex>, samas kui tema kodu\u00fclikoolis Wisconsin\u2013Madison oli ta dekaan viie aasta jooksul. Ta tegeleb uurimist\u00f6\u00f6dega parallelse ja jaotatud programmeerimise alal ning \u00f5petab seda tudengitele.<\/p>\n<p><\/p>\n<p>Kogu maailm tunneb Michaelit t\u00e4nu \u00f5pikule <noindex><a rel=\"nofollow\" href=\"https:\/\/www.amazon.com\/Programming-Language-Pragmatics-Michael-Scott\/dp\/0124104096\/ref=sr_1_1?crid=265ZYWXFSUF4&amp;keywords=programming+language+pragmatics&amp;qid=1558916067&amp;s=gateway&amp;sprefix=Programming+Language+Pragmatics%2Caps%2C324&amp;sr=8-1\">\u00abProgramming Language Pragmatics\u00bb<\/a><\/noindex>, mille viimane v\u00e4ljaanne ilmus suhteliselt hiljuti \u2014 2015. aastal. Tema t\u00f6\u00f6 <noindex><a rel=\"nofollow\" href=\"http:\/\/web.mit.edu\/6.173\/www\/currentsemester\/readings\/R06-scalable-synchronization-1991.pdf\">\u00abAlgorithms for scalable synchronization on shared-memory multiprocessors\u00bb<\/a><\/noindex> saanud <noindex><a rel=\"nofollow\" href=\"https:\/\/ru.wikipedia.org\/wiki\/%D0%9F%D1%80%D0%B5%D0%BC%D0%B8%D1%8F_%D0%94%D0%B5%D0%B9%D0%BA%D1%81%D1%82%D1%80%D1%8B\">on Dijkstra auhind<\/a><\/noindex> \u00fche tuntuma t\u00f6\u00f6na jaotatud arvutuste valdkonnas ning <noindex><a rel=\"nofollow\" href=\"https:\/\/www.cs.rochester.edu\/u\/scott\/papers\/1991_TOCS_synch.pdf\">on vabalt saadaval<\/a><\/noindex> Rochesteri \u00dclikooli veebiraamatukogus. Samuti v\u00f5ite teada teda kui selle Michael-Scott algoritmi autori, mis on <noindex><a rel=\"nofollow\" href=\"https:\/\/www.cs.rochester.edu\/u\/scott\/papers\/1996_PODC_queues.pdf\">\u00abSimple, Fast, and Practical Non-Blocking and Blocking Concurrent Queue Algorithms\u00bb<\/a><\/noindex>.<\/p>\n<p><\/p>\n<p>Mis puutub Java maailma, siis siin on olukord eriline: koos Doug Leaga disainis ta need mittes\u00fcnkroonitud algoritmid ja s\u00fcnkroonitud j\u00e4rjekorrad, millel t\u00f6\u00f6tavad Java raamatukogud. Just sellest r\u00e4\u00e4gitakse alapealkirjas \u00abKaksikordne andmestruktuur\u00bb \u2014 nende struktuuride integreerimine Java SE 6-s lubas saavutada k\u00fcmnekordse t\u00f5usu j\u00f5udluses <code>java.util.concurrent.ThreadPoolExecutor<\/code>. Kui olete varem huvitatud, millised need on \u00abKaksikordne andmestruktuur\u00bb, siis selle kohta on olemas <noindex><a rel=\"nofollow\" href=\"https:\/\/www.cs.rochester.edu\/research\/synchronization\/pseudocode\/duals.html\">vastav uurimist\u00f6\u00f6<\/a><\/noindex>. <\/p>\n<p><\/p>\n<h3 id=\"maurice-herlihy--blockchains-and-the-future-of-distributed-computinghttpshydraconfru2019talks6ayncxk5m9q7g6dn80b7bcutm_sourcehabrutm_medium453832\">Maurice Herlihy \u2014 <noindex><a rel=\"nofollow\" href=\"https:\/\/hydraconf.ru\/2019\/talks\/6ayncxk5m9q7g6dn80b7bc\/?utm_source=habr&amp;utm_medium=453832\">Blokaadid ja jaotatud arvutamise tulevik<\/a><\/noindex><\/h3>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"19 h\u00fcdra pead. Suur \u00fclevaade programmist\" src=\"\/wp-content\/uploads\/2019\/06\/807a70783be0a9825a85eca0e73b6a70.jpeg\" style=\"display:block;margin: 0 auto;\" \/> <noindex><a rel=\"nofollow\" href=\"https:\/\/en.wikipedia.org\/wiki\/Maurice_Herlihy\">Maurice Herlihy<\/a><\/noindex> \u2014 Dijkstra auhinna saaja. Esimene \u2014 t\u00f6\u00f6 eest <noindex><a rel=\"nofollow\" href=\"https:\/\/cs.brown.edu\/~mph\/Herlihy91\/p124-herlihy.pdf\">\u201eWait-Free Synchronization\u201d<\/a><\/noindex> (Brown University), ja teine, uuem \u2014 <noindex><a rel=\"nofollow\" href=\"http:\/\/courses.cs.vt.edu\/cs5204\/fall09-kafura\/Papers\/TransactionalMemory\/Architecture-Support.pdf\">\u201eTransactional Memory: Architectural Support for Lock-Free Data Structures\u201d<\/a><\/noindex> (Virginia Tech University). Dijkstra auhind antakse t\u00f6\u00f6de eest, mille t\u00e4htsus ja m\u00f5ju on olnud n\u00e4htavad v\u00e4hemalt k\u00fcmme aastat, ja on ilmne, et Maurice on \u00fcks tuntumaid spetsialiste alal. Praegu t\u00f6\u00f6tab ta professorina Brown \u00dclikoolis ja tal on palju saavutusi, mis mahuksid tervele l\u00f5igule.<\/p>\n<p><\/p>\n<p>Selles l\u00f5ppk\u00f5nes r\u00e4\u00e4gib Maurice plokiahelate jaotatud s\u00fcsteemide teooriast ja praktikast klassikalise jaotatud arvutamise vaatepunktist ning kuidas see lihtsustab paljusid seotud probleeme. See ettekande teema puutub rangelt konverentsi teemasse \u2014 see ei ole p\u00f5hjalik kaevandamish\u00fcpe, vaid pigem see, kuidas meie teadmisi saab \u00fcllatavalt t\u00f5husalt ja asjakohaselt kasutada v\u00e4ga erinevaid \u00fclesandeid silmas pidades.<\/p>\n<p><\/p>\n<p>Juulis 2017 k\u00fclastas Maurice juba Venemaad SPTDC koolis, osales JUG.ru koosolekul ning salvestust on v\u00f5imalik vaadata YouTube'is:<\/p>\n<p>\n<center><div class=\"youtube-placeholder\" data-id=\"S3Fx-7avfs4\" onclick=\"loadVideo(this)\">\r\n        <img decoding=\"async\" src=\"https:\/\/img.youtube.com\/vi\/S3Fx-7avfs4\/hqdefault.jpg\" alt=\"M\u00e4ngi videot\" loading=\"lazy\" width=\"480\" height=\"360\" style=\"width:100%;height:auto;\">\r\n        <div class=\"play-button\"><\/div>\r\n    <\/div><\/center><\/p>\n<h2 id=\"osnovnaya-programma\">Peamine programm<\/h2>\n<p><\/p>\n<p>Edasi saab olema v\u00e4ike \u00fclevaade ettekannetest, mis on programmi kaasatud. Osa ettekannetest on siin detailselt kirjeldatud, osa - l\u00fchemalt. Pikad kirjeldused on peamiselt ingliskeelsete ettekannete omad, mis vajavad viiteid teadust\u00f6\u00f6dele, termineid Vikipeedias ja nii edasi. T\u00e4ielikku nimekirja saab <noindex><a rel=\"nofollow\" href=\"https:\/\/hydraconf.ru\/#schedule\">n\u00e4ha konverentsi veebilehelt<\/a><\/noindex>. Nimekiri veebilehel uuendatakse ja t\u00e4iendatakse. <\/p>\n<p><\/p>\n<h3 id=\"leslie-lamport--q--ahttpshydraconfru2019talks6evatt1mvwvpnwfxxveivwutm_sourcehabrutm_medium453832\">Leslie Lamport \u2014 <noindex><a rel=\"nofollow\" href=\"https:\/\/hydraconf.ru\/2019\/talks\/6evatt1mvwvpnwfxxveivw\/?utm_source=habr&amp;utm_medium=453832\">K\u00fcsimused ja vastused<\/a><\/noindex><\/h3>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"19 h\u00fcdra pead. Suur \u00fclevaade programmist\" src=\"\/wp-content\/uploads\/2019\/06\/4c6d5928be31af95cd3e2a7812e86854.jpeg\" style=\"display:block;margin: 0 auto;\" \/> Leslie Lamport on uute aluste rajaja hajutatud arvutustes. <noindex><a rel=\"nofollow\" href=\"https:\/\/en.wikipedia.org\/wiki\/LaTeX\">\u00abLaTeX\u00bb<\/a><\/noindex> t\u00e4hendab \u00abLamport TeX\u00bb. Just tema tutvustas esmakordselt 1979. aastal m\u00f5istet <noindex><a rel=\"nofollow\" href=\"http:\/\/lamport.azurewebsites.net\/pubs\/multi.pdf\">j\u00e4rjepidevast j\u00e4rjekorrast<\/a><\/noindex>, ning tema artikkel <noindex><a rel=\"nofollow\" href=\"http:\/\/lamport.azurewebsites.net\/pubs\/time-clocks.pdf\">\u201eKuidas ehitada mitme protsessoriga arvutit, mis \u00f5igesti t\u00e4idab mitme protsessi programme\u201c<\/a><\/noindex> saadi Dijkstra auhind.<\/p>\n<p><\/p>\n<p>See on programmiformaadilt k\u00f5ige ebatavalisem osa, kuna see pole isegi ettekanne, vaid k\u00fcsimuste ja vastuste sessioon. Kui enamik publikust on juba tuttavad (v\u00f5i saavad tutvuda) erinevate t\u00f6\u00f6dega, mis p\u00f5hinevad \u201eLamporti teoorial\u201d, tema enda artiklite ja ettekannetega, on v\u00e4ga oluline kulutada kogu saadaval olev aeg otse suhtlemiseks.<\/p>\n<p><\/p>\n<p>Idee on lihtne - vaatate YouTube'is kahte ettekannet: <noindex><a rel=\"nofollow\" href=\"https:\/\/youtu.be\/6QsTfL-uXd8\">\u201eProgrammeerimine peaks olema rohkem kui kodeerimine\u201d<\/a><\/noindex> ja <noindex><a rel=\"nofollow\" href=\"https:\/\/www.heidelberg-laureate-forum.org\/blog\/video\/lecture-monday-september-24-2018-leslie-lamport\/\">\u00abKui sa ei kirjuta programmi, siis \u00e4ra kasuta programmeerimiskeelt\u00bb<\/a><\/noindex> ja valmistate ette v\u00e4hemalt \u00fche k\u00fcsimuse, millele Leslie vastab.<\/p>\n<p><\/p>\n<p>Esimene neist kahest videost on me juba <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/jugru\/blog\/454898\/\">muutnud hublugemiseks<\/a><\/noindex>. Kui teil pole videot vaadata tund aega, saate seda kiiresti lugeda tekstina.<\/p>\n<p><\/p>\n<p>M\u00e4rkus: YouTube'is on palju rohkem videoid Leslie Lamportiga. N\u00e4iteks on olemas suurep\u00e4rane <noindex><a rel=\"nofollow\" href=\"https:\/\/www.youtube.com\/watch?v=p54W-XOIEF8&amp;list=PLWAv2Etpa7AOAwkreYImYt0gIpOdWQevD\">TLA+ kursuse<\/a><\/noindex>. K\u00f5ik selle kursuse offline-versioon on autori <noindex><a rel=\"nofollow\" href=\"http:\/\/lamport.azurewebsites.net\/video\/videos.html\">esilehelt<\/a><\/noindex>, ja YouTube'is on see mugavama vaate jaoks mobiilseadmetes \u00fcles laaditud.<\/p>\n<p><\/p>\n<h3 id=\"martin-kleppmann--syncing-data-across-user-devices-for-distributed-collaborationhttpshydraconfru2019talks6i4lkw8pwjnadgff5ylr11utm_sourcehabrutm_medium453832\">Martin Kleppmann \u2014 <noindex><a rel=\"nofollow\" href=\"https:\/\/hydraconf.ru\/2019\/talks\/6i4lkw8pwjnadgff5ylr11\/?utm_source=habr&amp;utm_medium=453832\">Andmete s\u00fcnkroonimine kasutajaseadmete vahel jaotatud koost\u00f6\u00f6 jaoks<\/a><\/noindex><\/h3>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"19 h\u00fcdra pead. Suur \u00fclevaade programmist\" src=\"\/wp-content\/uploads\/2019\/06\/09af25ab1ce915ba13ec6ee1013878f6.jpeg\" style=\"display:block;margin: 0 auto;\" \/> Martin Kleppmann on Cambridge'i \u00fclikooli teadlane, kes t\u00f6\u00f6tab CRDT ja algoritmide formaalse t\u00f5endamise kallal. Marti raamat <noindex>\u201eAndmete intensiivsete rakenduste projekteerimine\u201d<\/noindex>, mis ilmus 2017. aastal, osutus v\u00e4ga edukaks ja j\u00f5udis andmete salvestamise ja t\u00f6\u00f6tlemise valdkonna bestsellerite nimekirja. Kevin Scott, Microsofti CTO, <noindex><a rel=\"nofollow\" href=\"https:\/\/martin.kleppmann.com\/2017\/03\/27\/designing-data-intensive-applications.html\">\u00fctles kunagi<\/a><\/noindex>: \u201eSee raamat peaks olema kohustuslik insener-arendajatele. See on haruldane ressurss, mis \u00fchendab teooria ja praktika, aidates arendajatel targemalt projekteerida ja ellu viia infrastruktuuri ja andmet\u00f6\u00f6tluss\u00fcsteeme.\u201d Midagi sarnast \u00fctles ka Kafka looja ja Confluenti CTO Jay Kreps.<\/p>\n<p><\/p>\n<p>Enne kui Martin hakkas tegelema akadeemiliste uurimist\u00f6\u00f6dega, t\u00f6\u00f6tas ta t\u00f6\u00f6stuses ja oli kahe eduka idufirma kaasasutaja.<\/p>\n<p><\/p>\n<ul>\n<li>Rapportive, mis oli p\u00fchendatud teie e-posti kontaktide sotsiaalsete profiilide kuvamisele, mille LinkedIn ostis 2012. aastal;<\/li>\n<li>Go Test It, teenus veebilehtede automaatseks testimiseks erinevates brauserites, mille RedGate ostis 2009. aastal.<\/li>\n<\/ul>\n<p><\/p>\n<p>\u00dcldiselt on Martin, kuigi v\u00e4hem tuntud kui meie peaesinejad, suutnud panustada nii hajutatud arvutuste arendusse kui ka t\u00f6\u00f6stusesse.<\/p>\n<p><\/p>\n<p>Selles ettekandes r\u00e4\u00e4gib Martin teemast, mis on rohkem seotud tema akadeemiliste uurimist\u00f6\u00f6dega. Google Docsis ja sarnastes tarkvarades, mis v\u00f5imaldavad koost\u00f6\u00f6d dokumentide redigeerimisel, t\u00e4hendab \u201ekoost\u00f6\u00f6 redigeerimine\u201d replikatsiooni \u00fclesannet: igal kasutajal on oma replik \u00fchises dokumendis, mida nad seej\u00e4rel muudavad, ja k\u00f5ik muudatused saadetakse \u00fcle v\u00f5rgu teistele osalejatele. Dokumentide muudatused offline-re\u017eiimis toovad kaasa ajutise j\u00e4rjepidevuse puudumise dokumendi suhtes teiste osalejate seas ning uuesti s\u00fcnkroonimine n\u00f5uab konfliktide lahendamist. Just selleks on olemas <noindex><a rel=\"nofollow\" href=\"https:\/\/en.wikipedia.org\/wiki\/Conflict-free_replicated_data_type\">Konflikti-vabad replitseeritud andmet\u00fc\u00fcbid<\/a><\/noindex> (CRDT), mis on sisuliselt \u00fcsna uus asi, mille sisu formuleeriti vaid 2011. aastal. Selles ettekandes arutatakse, mida on alates sellest ajast CRDT maailmas toimunud, millised on k\u00f5ige hiljutisemad saavutused, arutatakse l\u00e4henemist kohalikele rakendustele ja avatud l\u00e4htekoodiga teegi <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/automerge\/automerge\">Automerge<\/a><\/noindex> eriti kasutamise \u00fcle.<\/p>\n<p><\/p>\n<blockquote><p>J\u00e4rgmisel n\u00e4dalal avaldame Habbres suure intervjuu Martiniga, see on huvitav.<\/p><\/blockquote>\n<p><\/p>\n<h3 id=\"pedro-ramalhete--wait-free-data-structures-and-wait-free-transactionshttpshydraconfru2019talks1jwmdzkmjcalsclwavttxkutm_sourcehabrutm_medium453832\">Pedro Ramalhete \u2014 <noindex><a rel=\"nofollow\" href=\"https:\/\/hydraconf.ru\/2019\/talks\/1jwmdzkmjcalsclwavttxk\/?utm_source=habr&amp;utm_medium=453832\">Ooteta andmestruktuurid ja ooteta tehingud.<\/a><\/noindex><\/h3>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"19 h\u00fcdra pead. Suur \u00fclevaade programmist\" src=\"\/wp-content\/uploads\/2019\/06\/be9b98f5ab95d0f6646dfcb4cee38978.jpeg\" style=\"display:block;margin: 0 auto;\" \/> Pedro t\u00f6\u00f6tab Cisco's ja on viimased k\u00fcmme aastat arendanud paralleelseid algoritme, sealhulgas s\u00fcnkroniseerimise mehhanisme, lukustamata ja ooteta andmestruktuure ning k\u00f5ike, mida saate sellel teemal ette kujutada. Tema praegused teadus- ja insenerihuvide kipuvad olema Universaalsete Konstruktsioonide, Tarkvaralise Tehingulise M\u00e4luga, P\u00fcsiva M\u00e4luga ja sarnaste tehnoloogiatega, mis v\u00f5imaldavad ellu viia korrektseid, skaleeritavaid ja talitlush\u00e4ireteta rakendusi. Ja veel on ta autor laialdaselt tuntud kitsastes ringkondades blogis <noindex><a rel=\"nofollow\" href=\"http:\/\/concurrencyfreaks.blogspot.com\/\">Concurrency Freaks<\/a><\/noindex>.<\/p>\n<p><\/p>\n<p>Enamik multitegutsevaid rakendusi t\u00f6\u00f6tab praegu paralleelsete andmestruktuuridega, alates s\u00f5numij\u00e4rjekordade kasutamisest aktorite vahel kuni indeksitud andmestruktuurideni v\u00f5tme-v\u00e4\u00e4rtuse salvestustes. Java JDK-s t\u00f6\u00f6tavad need edukalt juba mitu aastat ja C++-s lisanduvad need j\u00e4rk-j\u00e4rgult.<\/p>\n<p><\/p>\n<p>K\u00f5ige lihtsam viis paralleelse andmestruktuuri rakendamiseks on j\u00e4rjestikune (\u00fchethreads) versioon, kus meetodid on kaitstud muteeksidega. See on k\u00f5igile algajatele kergesti k\u00e4ttesaadav, kuid tal on ilmseid probleeme skaleerimise ja j\u00f5udlusega. Samal ajal suudavad lukustamata ja ootevabad andmestruktuurid mitte ainult paremini tegeleda vigadega, vaid neil on ka efektiivsem j\u00f5udlusprofiil \u2014 siiski on nende arendamiseks vajalik s\u00fcgav ekspertiis ja kohandamine konkreetse rakenduse jaoks. \u00dcks vale koodireade v\u00f5ib k\u00f5ike rikkuda.<\/p>\n<p><\/p>\n<p>Kuidas teha nii, et isegi mitteekspert saaks selliseid andmestruktuure disainida ja rakendada? On teada, et iga j\u00e4rjestikuse algoritmi saab muuta l\u00f5imeteadlikuks kas <noindex><a rel=\"nofollow\" href=\"https:\/\/hal.inria.fr\/hal-01397265v1\/document\">\u00fcldise konstruktsiooni<\/a><\/noindex>, v\u00f5i tehingum\u00e4lu abil. \u00dcks neist v\u00f5imalustest v\u00f5ib v\u00e4hendada takistust selle probleemi lahendamiseks. Kuid m\u00f5lemad lahendused viivad tavaliselt ebaefektiivse rakenduse loomiseni. Pedro r\u00e4\u00e4gib sellest, kuidas neil \u00f5nnestus need konstruktsioonid t\u00f5husamaks muuta ja kuidas neid enda algoritmides kasutada.<\/p>\n<p><\/p>\n<h3 id=\"heidi-howard---liberating-distributed-consensushttpshydraconfru2019talks5z2xknkq9mozvqzhhgfoeiutm_sourcehabrutm_medium453832\">Heidi Howard \u2014 <noindex><a rel=\"nofollow\" href=\"https:\/\/hydraconf.ru\/2019\/talks\/5z2xknkq9mozvqzhhgfoei\/?utm_source=habr&amp;utm_medium=453832\">Vabastav jaotatud konsensus<\/a><\/noindex><\/h3>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"19 h\u00fcdra pead. Suur \u00fclevaade programmist\" src=\"\/wp-content\/uploads\/2019\/06\/09dd05684fde1015a87818f0b6804680.jpeg\" style=\"display:block;margin: 0 auto;\" \/> Heidi Howard, nagu ka Martin, on jaotatud s\u00fcsteemide uurija Cambridge'i \u00fclikoolis. Tema eriala on j\u00e4rjepidevus, t\u00f5rkekindlus, j\u00f5udlus ja jaotatud konsensus. Ta on k\u00f5ige tuntum Paxose algoritmi \u00fcldistamise j\u00e4rgi, mida tuntakse kui <noindex><a rel=\"nofollow\" href=\"https:\/\/fpaxos.github.io\/\">Paindlik Paxos<\/a><\/noindex>. <\/p>\n<p><\/p>\n<p>peamine <noindex><a rel=\"nofollow\" href=\"https:\/\/en.wikipedia.org\/wiki\/Paxos_(computer_science)\">Paxos<\/a><\/noindex> \u2014 protokollide perekond, mis lahendab konsensuse probleemi ebausaldusv\u00e4\u00e4rsete arvutite v\u00f5rgus, mis p\u00f5hineb Leslie Lamporti t\u00f6\u00f6del. Seega t\u00f6\u00f6tavad m\u00f5ned meie esinejad \u00fclesannete kallal, mille algselt pakkusid teised meie esinejad \u2014 ja see on imeline.<\/p>\n<p><\/p>\n<p>Mitme hosti vahel konsensi leidmine - aadresside, liidri valimise, blokeerimise v\u00f5i koordineerimise osas - on kaasaegsete jaotatud s\u00fcsteemide p\u00f5hiline k\u00fcsimus. Paxos on praegu peamine meetod konsensuse leidmise probleemide lahendamiseks ning selle \u00fcmber k\u00e4ib palju uurimist\u00f6\u00f6d, mille eesm\u00e4rk on laiendada ja optimeerida algoritmi erinevate praktiliste vajaduste rahuldamiseks. <\/p>\n<p><\/p>\n<p>Selles ettekandes vaatame \u00fcle Paxose teoreetilise aluse, leevendades algseid n\u00f5udeid ja \u00fcldistades algoritmi. N\u00e4eme, et Paxos on tegelikult vaid \u00fcks variant tohutu konsensuse l\u00e4henemisviiside spektris ning et selle spektri teised punktid on samuti \u00e4\u00e4rmiselt kasulikud hea jaotatud s\u00fcsteemi ehitamiseks.<\/p>\n<p><\/p>\n<h3 id=\"alex-petrov--reduce-your-storage-costs-with-transient-replication-and-cheap-quorumshttpshydraconfru2019talks6eb39udg8bxsgmimkexd6jutm_sourcehabrutm_medium453832\">Alex Petrov - <noindex><a rel=\"nofollow\" href=\"https:\/\/hydraconf.ru\/2019\/talks\/6eb39udg8bxsgmimkexd6j\/?utm_source=habr&amp;utm_medium=453832\">V\u00e4hendage oma salvestusmaksumusi ajutise replikatsiooni ja odavate kvootidega<\/a><\/noindex><\/h3>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"19 h\u00fcdra pead. Suur \u00fclevaade programmist\" src=\"\/wp-content\/uploads\/2019\/06\/178a1db3cf49b5ff73a0c9101ab3845c.jpeg\" style=\"display:block;margin: 0 auto;\" \/> Alex on andmebaaside ja salvestuss\u00fcsteemide ekspert ning meie jaoks on oluline, et ta on committer <noindex><a rel=\"nofollow\" href=\"https:\/\/en.wikipedia.org\/wiki\/Apache_Cassandra\">Cassandra<\/a><\/noindex>. Koos O'Reillyga t\u00f6\u00f6tab ta praegu raamatu Database Internals kallal.<\/p>\n<p><\/p>\n<p>S\u00fcsteemide jaoks <noindex><a rel=\"nofollow\" href=\"https:\/\/en.wikipedia.org\/wiki\/Eventual_consistency\">eventual consistency<\/a><\/noindex> (vene keeles - \"l\u00f5ppkokkuv\u00f5ttes j\u00e4rjepidevus\"), p\u00e4rast s\u00f5lme kokku kukkumist v\u00f5i v\u00f5rgu jagunemist, tuleb lahendada j\u00e4rgmine dilemma: kas j\u00e4tkata p\u00e4ringute t\u00e4itmist, ohverdades j\u00e4rjepidevuse, v\u00f5i keelduda nende t\u00e4itmisest ja ohverdada k\u00e4ttesaadavus. Sellises s\u00fcsteemis v\u00f5ivad kvootidega kattuvad alamkogud, mis tagavad, et v\u00e4hemalt \u00fches s\u00f5lmes on k\u00f5ige uuem v\u00e4\u00e4rtus, olla hea piirangulahendus. Saame taluda t\u00f5rkeid ja \u00fchenduse kadumist teatud s\u00f5lmede puhul, j\u00e4tkates samal ajal k\u00f5ige v\u00e4rskemate v\u00e4\u00e4rtuste vastamist.<\/p>\n<p><\/p>\n<p>Kuid iga asi tuleb oma hinna eest. Kvootide replikatsiooniskeem t\u00e4hendab suurenenud salvestamiskulusid: on vajalik hoida liikmesriikides liigset teavet, et tagada piisava hulga kergesti k\u00e4tte saadavaid koopiaid probleemi tekkimisel. Selgub, et pole vajalik hoida k\u00f5iki andmeid k\u00f5igis replikates. Andmete hoidmist on v\u00f5imalik v\u00e4hendada, kui hoida neid vaid osades s\u00f5lmedes ning t\u00f5rkeolukordade k\u00e4sitlemiseks kasutada spetsiaalseid s\u00f5lmi (ajutine replikatsioon).<\/p>\n<p><\/p>\n<p>Ettekande k\u00e4igus arutame <noindex><a rel=\"nofollow\" href=\"http:\/\/citeseerx.ist.psu.edu\/viewdoc\/download?doi=10.1.1.146.3429&amp;rep=rep1&amp;type=pdf\">tunnistajareplikaid<\/a><\/noindex>, replikatsiooniskeemi, mida kasutatakse <noindex><a rel=\"nofollow\" href=\"https:\/\/en.wikipedia.org\/wiki\/Spanner_(database)\">Spanner<\/a><\/noindex> ja <noindex><a rel=\"nofollow\" href=\"http:\/\/cidrdb.org\/cidr2011\/Papers\/CIDR11_Paper32.pdf\">Megastore<\/a><\/noindex>, ja selle kontseptsiooni rakendust Apache Cassandra's nime all <noindex><a rel=\"nofollow\" href=\"https:\/\/jira.apache.org\/jira\/browse\/CASSANDRA-14404?subTaskView=all\">Ajutine replikatsioon ja odavad kvoodid<\/a><\/noindex>.<\/p>\n<p><\/p>\n<h3 id=\"dmitriy-vyukov---goroutines-exposedhttpshydraconfru2019talks7336ginp0kke7n4yxxjvldutm_sourcehabrutm_medium453832\">Dmitry Vyukov - <noindex><a rel=\"nofollow\" href=\"https:\/\/hydraconf.ru\/2019\/talks\/7336ginp0kke7n4yxxjvld\/?utm_source=habr&amp;utm_medium=453832\">Goroutines exposed<\/a><\/noindex><\/h3>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"19 h\u00fcdra pead. Suur \u00fclevaade programmist\" src=\"\/wp-content\/uploads\/2019\/06\/94ce38f8cc366bbd2ee53b9636e4650d.jpeg\" style=\"display:block;margin: 0 auto;\" \/> Dmitri on Google'is t\u00f6\u00f6tav arendaja, kes tegeleb C\/C++ ja Go d\u00fcnaamilise testimisega - Address\/Memory\/ThreadSanitizer ning sarnaste t\u00f6\u00f6riistadega Linuxi tuumas. Ta on andnud panuse Go-sse skaleeritava goroutine'i plaani, v\u00f5rgupolleri ja paralleelse pr\u00fcgikoristaja loomisel. Ta on ekspert mitme tahkete operatsioonide vallas, on loonud tosin uut mittes\u00fcnkroonitud algoritmi ja on omanik <noindex><a rel=\"nofollow\" href=\"https:\/\/software.intel.com\/en-us\/blackbelt\">must v\u00f6\u00f6<\/a><\/noindex> Intel.<\/p>\n<p><\/p>\n<p>N\u00fc\u00fcd veidi doklaadi enda kohta. Keeles Go on olemas sisemine tugi mitme tahke protsesside jaoks goroutine'ide (kergete niitide) ja kanalite (FIFO j\u00e4rjekordade) vormis. T\u00e4nu nendele mehhanismidele on kasutajatel v\u00e4ga lihtne ja mugav kirjutada kaasaegseid mitme tahke rakendusi ning see tundub nagu maagia. Nagu me m\u00f5istame, pole siin mingit maagiat. Selles ettekandes sukeldub Dmitri Go plaani \u00fcksikasjadesse ja n\u00e4itab selle \"maagia\" rakendamise saladusi. Alustuseks annab ta \u00fclevaate plaani p\u00f5hikomponentidest, r\u00e4\u00e4gib, kuidas see t\u00f6\u00f6tab. Edasi uurime l\u00e4hemalt individuaalseid aspekte, nagu parkimise ja vabastamise strateegiad ning blokeerivate s\u00fcsteemikutsungite t\u00f6\u00f6tlemine. L\u00f5puks r\u00e4\u00e4gib Dmitri veidi v\u00f5imalike t\u00e4iustuste kohta plaanis.<\/p>\n<p><\/p>\n<h3 id=\"dmitriy-bugaychenko---uskoryaem-raspredelennyy-analiz-grafov-s-pomoschyu-veroyatnostnyh-sketchey-i-ne-tolkohttpshydraconfru2019talks1po7b00j6m4vst3df7aqtoutm_sourcehabrutm_medium453832\">Dmitri Bugait\u0161enko - <noindex><a rel=\"nofollow\" href=\"https:\/\/hydraconf.ru\/2019\/talks\/1po7b00j6m4vst3df7aqto\/?utm_source=habr&amp;utm_medium=453832\">Kiirendame jaotatud graafide anal\u00fc\u00fcsi t\u00f5en\u00e4osuslike skehhide abil ja muul viisil<\/a><\/noindex><\/h3>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"19 h\u00fcdra pead. Suur \u00fclevaade programmist\" src=\"\/wp-content\/uploads\/2019\/06\/f963ef8ac1a37011aa387016dc938b3c.jpeg\" style=\"display:block;margin: 0 auto;\" \/> Dmitri on t\u00f6\u00f6tanud peaaegu 9 aastat allhankes, s\u00e4ilitades samal ajal kontakti \u00fclikooli ja teadusmaailmaga. Suurte andmete anal\u00fc\u00fcs Oduklassikates oli tema jaoks ainulaadne v\u00f5imalus liita teoreetilised teadmised ja teaduslik alus reaalses ja n\u00f5utud toote arendamisse.<\/p>\n<p><\/p>\n<p>Jaotatud graafide anal\u00fc\u00fcs on olnud ja j\u00e4\u00e4b keeruliseks \u00fclesandeks: kui on vajalik teave naabervertu s\u00f5lmede suhete kohta, tuleb sageli andmeid edastada masinate vahel, mis suurendab t\u00e4itmise aega ja koormust v\u00f5rguinfrastruktuurile. Selles ettekandes n\u00e4eme, kuidas saab olulist t\u00f6\u00f6tlemise kiirus kasu t\u00f5en\u00e4osuslikest andmestruktuuridest v\u00f5i faktidest, nagu sotsiaalv\u00f5rgustiku s\u00f5prade graafi s\u00fcmmeetria. K\u00f5ike seda illustreeritakse koodi n\u00e4idetega Apache Spark'is.<\/p>\n<p><\/p>\n<h3 id=\"denis-ryscov--reduce-your-storage-costs-with-transient-replication-and-cheap-quorumshttpshydraconfru2019talks5e3yibth8vha0jbyoywpm6utm_sourcehabrutm_medium453832\">Denis R\u00f5tsov - <noindex><a rel=\"nofollow\" href=\"https:\/\/hydraconf.ru\/2019\/talks\/5e3yibth8vha0jbyoywpm6\/?utm_source=habr&amp;utm_medium=453832\">V\u00e4hendage oma salvestusmaksumusi ajutise replikatsiooni ja odavate kvootidega<\/a><\/noindex><\/h3>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"19 h\u00fcdra pead. Suur \u00fclevaade programmist\" src=\"\/wp-content\/uploads\/2019\/06\/700bfb1a35280932f654a9c34413e2d4.jpeg\" style=\"display:block;margin: 0 auto;\" \/> Denis on arendaja <noindex><a rel=\"nofollow\" href=\"https:\/\/en.wikipedia.org\/wiki\/Cosmos_DB\">Cosmos DB<\/a><\/noindex>, ekspert mudelite j\u00e4rjepidevuse kontrollimises, konsensusalgoritmides ja jaotatud tehingutes. Praegu t\u00f6\u00f6tab ta Microsoftis, enne seda t\u00f6\u00f6tas jaotatud s\u00fcsteemide alal Amazonis ja Yandexis.<\/p>\n<p><\/p>\n<p>Selles ettekandes tutvume viimastel aastatel v\u00e4lja t\u00f6\u00f6tatud jaotatud tehingute protokollidega, mida saab kliendipoolt rakendada mis tahes andmebaasi peal, mis toetab tingimuslikku uuendamist (compare and set). Oluline on, et elu ei l\u00f5ppe kahefaasilise kinnitamisega; tehinguid saab lisada mis tahes andmebaaside kohale \u2014 rakendustasandil, kuid erinevatel protokollidel (2PC, Percolator, RAMP) on erinevad kaubanduslikud kompromissid ja need ei ole tasuta.<\/p>\n<p><\/p>\n<h3 id=\"aleksey-zinovev--ne-vse-ml-algoritmy-popadayut-v-raspredelennyy-rayhttpshydraconfru2019talks3jd0bgsoa0qtcijgblidjsutm_sourcehabrutm_medium453832\">Aleksandr Zinovjev \u2014 <noindex><a rel=\"nofollow\" href=\"https:\/\/hydraconf.ru\/2019\/talks\/3jd0bgsoa0qtcijgblidjs\/?utm_source=habr&amp;utm_medium=453832\">Kaugel k\u00f5ik masin\u00f5ppe algoritmid j\u00f5uavad jaotatud paradiisi<\/a><\/noindex><\/h3>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"19 h\u00fcdra pead. Suur \u00fclevaade programmist\" src=\"\/wp-content\/uploads\/2019\/06\/eb412d59dec5dcc4a04f603b32d12575.jpeg\" style=\"display:block;margin: 0 auto;\" \/> Aleksandr (<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/users\/zaleslaw\/\" class=\"user_link\">zaleslaw<\/a><\/noindex>) \u2014 meie pikaajaline esineja ja programmikomiteede liige teistel konverentsidel. Praktiseeriv koolitaja ettev\u00f5ttes EPAM Systems ja Hadoop \/ Sparkiga ja muude big data lahendustega tegeleb ta alates 2012. aastast.<\/p>\n<p><\/p>\n<p>Selles ettekandes r\u00e4\u00e4gib Aleksandr klassikaliste masin\u00f5ppe algoritmide kohandamise probleemidest jaotatud re\u017eiimides rakendamise kohta, tuginedes oma kogemustele Apache Spark ML, Apache Mahout, Apache Flink ML ja Apache Ignite ML loomisel. Samuti r\u00e4\u00e4gib Aleksandr nendes raamistikudes jaotatud masin\u00f5ppe algoritmide rakendamisest.<\/p>\n<p><\/p>\n<p>Ja l\u00f5puks \u2014 kaks ettekannet Yandexilt teemal Yandex Database.<\/p>\n<p><\/p>\n<h3 id=\"vladislav-kuznecov--yandex-database--kak-my-obespechivaem-otkazoustoychivosthttpshydraconfru2019talksmuxomfgqembsb3st7i3ciutm_sourcehabrutm_medium453832\">Vladislav Kuznetsov \u2014 <noindex><a rel=\"nofollow\" href=\"https:\/\/hydraconf.ru\/2019\/talks\/muxomfgqembsb3st7i3ci\/?utm_source=habr&amp;utm_medium=453832\">Yandex Database \u2014 kuidas me tagame talitlush\u00e4irete taluvuse<\/a><\/noindex><\/h3>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"19 h\u00fcdra pead. Suur \u00fclevaade programmist\" src=\"\/wp-content\/uploads\/2019\/06\/3bdb3bec0ec0eb71db373e85afad6260.jpeg\" style=\"display:block;margin: 0 auto;\" \/> Vladislav on arendaja Yandexis jaotatud platvormide grupis. Yandex Database on horisontaalselt skaleeritav geograafia ja talitlush\u00e4iretega suhtlusandmebaas, mis talub ketaste, serverite, riiulite ja andmekeskuste rikkeid ilma j\u00e4rjepidevust rikkumata. Talitlush\u00e4irete taluvuse tagamiseks kasutatakse oma konsensuse saavutamise algoritmi, samuti rida tehnilisi lahendusi, mis on k\u00f5ikeh\u00f5lmavad ettekandes. See ettekande v\u00f5ib huvi pakkuda nii andmebaasi arendajatele kui ka andmebaasi alusel rakenduste arendajatele.<br clear=\"all\">\n<\/p>\n<p><\/p>\n<h3 id=\"semen-checherinda--raspredelennye-tranzakcii-v-ydbhttpshydraconfru2019talks3ubxfwi4ikpxdjcdqswjihutm_sourcehabrutm_medium453832\">Semen Checherinda \u2014 <noindex><a rel=\"nofollow\" href=\"https:\/\/hydraconf.ru\/2019\/talks\/3ubxfwi4ikpxdjcdqswjih\/?utm_source=habr&amp;utm_medium=453832\">Jaotatud tehingud YDB-s<\/a><\/noindex><\/h3>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"19 h\u00fcdra pead. Suur \u00fclevaade programmist\" src=\"\/wp-content\/uploads\/2019\/06\/0cf2b40fcabfba1a774f00c9f245b8f1.jpeg\" style=\"display:block;margin: 0 auto;\" \/> Semen on arendaja Yandexi jaotatud platvormide grupis, kes t\u00f6\u00f6tab YDB installeerimise mitme kasutaja kasutamise v\u00f5imaluste nimel.<\/p>\n<p><\/p>\n<p>Yandex Database on loodud OLTP-p\u00e4ringute jaoks ja vastab ACID n\u00f5uetele tehingus\u00fcsteemile. Ettekandes k\u00e4sitleme tehingute planeerimise algoritmi, mis on YDB tehingus\u00fcsteemi aluseks. Uurime, millised \u00fcksused osalevad tehingutes, kes m\u00e4\u00e4rab tehingutele globaalse j\u00e4rjekorra, kuidas saavutatakse tehingute atomraalsus, usaldusv\u00e4\u00e4rsus ja range isoleerimise tase. Tutvustame tehingute rakendusi kaheastmelise kinnituse ja m\u00e4\u00e4ratletud tehingute kaudu, kasutades laialdaselt levinud probleemi n\u00e4idet. Arutame nende erinevusi.<\/p>\n<p><\/p>\n<h2 id=\"chto-dalshe\">Mis edasi?<\/h2>\n<p><\/p>\n<p>Konverentsi kava j\u00e4tkab uute ettekannetega t\u00e4itmist. Eriti ootame ettekannet <strong>Nikita Kovalilt<\/strong> (<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/users\/ndkoval\/\" class=\"user_link\">ndkoval<\/a><\/noindex>) JetBrains'ist ja <strong>Oleg Anastasjevi<\/strong> (<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/users\/m0nstermind\/\" class=\"user_link\">m0nstermind<\/a><\/noindex>) firmast Odnoklassniki. Nikita tegeleb korutineid k\u00e4sitlevate algoritmidega Kotlin'i meeskonnas, samas kui Oleg arendab arhitektuuri ja lahendusi suure koormuse s\u00fcsteemide jaoks Odnoklassniki platvormil. Lisaks on veel 1 tinglikult t\u00fchi koht, mille kandidaatidega t\u00f6\u00f6tab praegu programmikomitee.<\/p>\n<p><\/p>\n<p>Konverents Hydra toimub 11.-12. juulil Peterburis. Pileteid saab <noindex>osta ametlikult veebisaidilt<\/noindex>. Juhime t\u00e4helepanu Online-piletite olemasolule \u2014 kui te ei saa mingil p\u00f5hjusel Peterburi sel p\u00e4evadel reaalajas kohale tulla.<\/p>\n<p><\/p>\n<p>Kohtume Hydral!<\/p>\n<p>Allikas: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/jugru\/blog\/453832\/\">habr.com<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>11-12 \u0438\u044e\u043b\u044f \u0432 \u0421\u0430\u043d\u043a\u0442-\u041f\u0435\u0442\u0435\u0440\u0431\u0443\u0440\u0433\u0435 \u0441\u043e\u0441\u0442\u043e\u0438\u0442\u0441\u044f \u043a\u043e\u043d\u0444\u0435\u0440\u0435\u043d\u0446\u0438\u044f Hydra, \u043f\u043e\u0441\u0432\u044f\u0449\u0435\u043d\u043d\u0430\u044f \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0435 \u043f\u0430\u0440\u0430\u043b\u043b\u0435\u043b\u044c\u043d\u044b\u0445 \u0438 \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u044b\u0445 \u0441\u0438\u0441\u0442\u0435\u043c. \u0424\u0438\u0448\u043a\u0430 \u0413\u0438\u0434\u0440\u044b \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e \u043e\u043d\u0430 \u043e\u0431\u044a\u0435\u0434\u0438\u043d\u044f\u0435\u0442 \u043a\u0440\u0443\u0442\u044b\u0445 \u0443\u0447\u0451\u043d\u044b\u0445 (\u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043e\u0431\u044b\u0447\u043d\u043e \u043c\u043e\u0436\u043d\u043e \u043d\u0430\u0439\u0442\u0438 \u0442\u043e\u043b\u044c\u043a\u043e \u043d\u0430 \u0437\u0430\u0440\u0443\u0431\u0435\u0436\u043d\u044b\u0445 \u043d\u0430\u0443\u0447\u043d\u044b\u0445 \u043a\u043e\u043d\u0444\u0435\u0440\u0435\u043d\u0446\u0438\u044f\u0445) \u0438 \u0438\u0437\u0432\u0435\u0441\u0442\u043d\u044b\u0445 \u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0443\u044e\u0449\u0438\u0445 \u0438\u043d\u0436\u0435\u043d\u0435\u0440\u043e\u0432, \u0432 \u043e\u0434\u043d\u0443 \u0431\u043e\u043b\u044c\u0448\u0443\u044e \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0443 \u043d\u0430 \u0441\u0442\u044b\u043a\u0435 \u043d\u0430\u0443\u043a\u0438 \u0438 \u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0438. Hydra \u2014 \u043e\u0434\u043d\u0430 \u0438\u0437 \u0441\u0430\u043c\u044b\u0445 \u0432\u0430\u0436\u043d\u044b\u0445 \u043d\u0430\u0448\u0438\u0445 \u043a\u043e\u043d\u0444\u0435\u0440\u0435\u043d\u0446\u0438\u0439 \u0437\u0430 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0435 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":26388,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-35091","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.1.1 - aioseo.com -->\n\t<meta name=\"description\" content=\"11-12 \u0438\u044e\u043b\u044f \u0432 \u0421\u0430\u043d\u043a\u0442-\u041f\u0435\u0442\u0435\u0440\u0431\u0443\u0440\u0433\u0435 \u0441\u043e\u0441\u0442\u043e\u0438\u0442\u0441\u044f \u043a\u043e\u043d\u0444\u0435\u0440\u0435\u043d\u0446\u0438\u044f Hydra, \u043f\u043e\u0441\u0432\u044f\u0449\u0435\u043d\u043d\u0430\u044f \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0435 \u043f\u0430\u0440\u0430\u043b\u043b\u0435\u043b\u044c\u043d\u044b\u0445 \u0438 \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u044b\u0445.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/et\/blog\/administrirovanie\/19-golov-gidry-bolshoj-obzor-programmy\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.1.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"et_EE\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd4719 \u0433\u043e\u043b\u043e\u0432 \u0433\u0438\u0434\u0440\u044b. \u0411\u043e\u043b\u044c\u0448\u043e\u0439 \u043e\u0431\u0437\u043e\u0440 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"11-12 \u0438\u044e\u043b\u044f \u0432 \u0421\u0430\u043d\u043a\u0442-\u041f\u0435\u0442\u0435\u0440\u0431\u0443\u0440\u0433\u0435 \u0441\u043e\u0441\u0442\u043e\u0438\u0442\u0441\u044f \u043a\u043e\u043d\u0444\u0435\u0440\u0435\u043d\u0446\u0438\u044f Hydra, \u043f\u043e\u0441\u0432\u044f\u0449\u0435\u043d\u043d\u0430\u044f \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0435 \u043f\u0430\u0440\u0430\u043b\u043b\u0435\u043b\u044c\u043d\u044b\u0445 \u0438 \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u044b\u0445.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/et\/blog\/administrirovanie\/19-golov-gidry-bolshoj-obzor-programmy\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2019-10-31T19:02:18+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2019-10-31T19:02:18+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd4719 Hydra pead. Suur programmivaade | ProHoster","description":"11.-12. juulil Peterburis toimub konverents Hydra, mis on p\u00fchendatud paralleelsete ja jaotatud s\u00fcsteemide arendamisele.","canonical_url":"https:\/\/prohoster.info\/et\/blog\/administrirovanie\/19-golov-gidry-bolshoj-obzor-programmy","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"et_EE","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd4719 \u0433\u043e\u043b\u043e\u0432 \u0433\u0438\u0434\u0440\u044b. \u0411\u043e\u043b\u044c\u0448\u043e\u0439 \u043e\u0431\u0437\u043e\u0440 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b | ProHoster","og:description":"11-12 \u0438\u044e\u043b\u044f \u0432 \u0421\u0430\u043d\u043a\u0442-\u041f\u0435\u0442\u0435\u0440\u0431\u0443\u0440\u0433\u0435 \u0441\u043e\u0441\u0442\u043e\u0438\u0442\u0441\u044f \u043a\u043e\u043d\u0444\u0435\u0440\u0435\u043d\u0446\u0438\u044f Hydra, \u043f\u043e\u0441\u0432\u044f\u0449\u0435\u043d\u043d\u0430\u044f \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0435 \u043f\u0430\u0440\u0430\u043b\u043b\u0435\u043b\u044c\u043d\u044b\u0445 \u0438 \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u044b\u0445.","og:url":"https:\/\/prohoster.info\/et\/blog\/administrirovanie\/19-golov-gidry-bolshoj-obzor-programmy","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2019-10-31T19:02:18+00:00","article:modified_time":"2019-10-31T19:02:18+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"35091","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":"2026-01-21 21:48:19","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-03-01 02:10:27","updated":"2026-01-21 21:48:19","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/posts\/35091","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/comments?post=35091"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/posts\/35091\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/media\/26388"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/media?parent=35091"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/categories?post=35091"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/tags?post=35091"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}