19 mitu ya hydra. Chidule chachikulu cha pulogalamuyi
Msonkhano udzachitika pa July 11-12 ku St Hydra, odzipereka ku chitukuko cha machitidwe ofanana ndi ogawidwa. Chinyengo cha Hydra ndikuti chimagwirizanitsa asayansi ozizira (omwe nthawi zambiri amapezeka pamisonkhano yasayansi yakunja) ndi akatswiri odziwika bwino kukhala pulogalamu imodzi yayikulu pamzere wa sayansi ndi machitidwe.
Hydra ndi imodzi mwamisonkhano yathu yofunika kwambiri m'zaka zingapo zapitazi. Zinatsogoleredwa ndi kukonzekera kwakukulu, kusankha okamba nkhani ndi malipoti. Sabata yatha za izi interview ya habro inatuluka ndi director wa JUG.ru Gulu, Alexey Fedorov (23 gawo).
ife zanenedwa kale pafupifupi ophunzira atatu ofunikira, omwe anayambitsa chiphunzitso cha machitidwe ogawidwa - Leslie Lamport, Maurice Herlihy ndi Michael Scott. Yakwana nthawi yoti tikambirane mwatsatanetsatane za pulogalamu yonse!
Pali misonkhano yambiri yomwe imakhudza mbali zosiyanasiyana zamapulogalamu ogwiritsira ntchito. Kumbali ina ya sipekitiramu, tili ndi masukulu apadera asayansi omwe amawulula ziphunzitso zambiri zovuta m'makalasi. Mwachitsanzo, mofanana ndi Hydra ku St. Petersburg pali Sukulu ya SPTDC. Pamsonkhano wa Hydra, tidayesetsa kusonkhanitsa machitidwe ankhanza, sayansi, ndi chilichonse pamzere wawo.
Ganizilani izi: tikukhala mu nthawi yodabwitsa pamene mutha kukumana ndi anthu omwe adayambitsa gawo la sayansi ndi uinjiniya lomwe timaphunzira. Asayansi sangakumane ndi Newton kapena Einstein - sitimayo yachoka. Koma pafupi ndi ife tikukhalabe amene analenga maziko a chiphunzitso cha machitidwe anagawira, anatulukira zilankhulo zodziwika bwino mapulogalamu, ndipo kwa nthawi yoyamba ophatikizidwa izi zonse prototypes ntchito. Anthu awa sanasiye ntchito zawo pang'onopang'ono, pakali pano akugwira ntchito zovuta m'mayunivesite otchuka padziko lonse lapansi ndi makampani, ndipo ndi magwero akuluakulu a chidziwitso ndi zochitika lero.
Kumbali inayi, mwayi wokumana nawo nthawi zambiri umakhala wongopeka chabe: ochepa aife amatha kuyang'anira zochitika zapagulu ku yunivesite ina ya Rochester, ndikuthamangira ku USA ndikubwerera kukakamba ndi Michael Scott. Kuyendera mamembala onse a Hydra kungawononge ndalama zochepa, osawerengera phompho la nthawi yotayika (ngakhale zikumveka ngati kufunafuna kosangalatsa).
Kumbali inayi, tili ndi mainjiniya ambiri apamwamba omwe akugwira ntchito yolimbikitsira zovuta pamakina ogawidwa pakali pano, ndipo ali ndi zambiri zoti anene. Koma apa pali vuto - iwo ntchito, ndipo nthawi yawo ndi yofunika. Inde, ngati ndinu wogwira ntchito ku Microsoft, Google kapena JetBrains, mwayi wokumana ndi m'modzi mwa okamba nkhani pazochitika zamkati ukuwonjezeka kwambiri, koma kawirikawiri, ayi, izi sizichitika tsiku lililonse.
Mwanjira imeneyi, Msonkhano wa Hydra umakwaniritsa ntchito yofunika yomwe ambiri aife sitingathe kuchita tokha - pamalo amodzi komanso nthawi imodzi, imasonkhanitsa anthu omwe malingaliro awo kapena kuyanjana kwawo kungasinthe moyo wanu. Ndikuvomereza kuti si aliyense amene amafunikira machitidwe ogawidwa kapena zinthu zina zovuta. Mutha kukonza ma CRUD mu PHP kwa moyo wanu wonse ndikukhala osangalala. Koma amene angafune, uwu ndi mwayi wanu.
Mfundo zazikuluzikulu zimayamba ndi kutha masiku a msonkhano. KaΕ΅irikaΕ΅iri mfundo yaikulu yotsegulira ndiyo kukhazikitsa mzimu wonse ndi chitsogozo cha msonkhanowo. Mawu omalizira amajambula mzere ndikufotokozera momwe tingakhalire ndi chidziwitso ndi luso lomwe tapeza pa msonkhano. Chiyambi ndi mapeto: zomwe zimakumbukiridwa bwino, ndipo kawirikawiri, zawonjezeka kwambiri.
Cliff ndi nthano m'dziko la Java. Chakumapeto kwa zaka za m'ma 90, chifukwa cha chiphunzitso chake cha PhD, adalemba pepala lotchedwa "Kuphatikiza Kusanthula, Kuphatikizira Kukonzekera", yomwe patapita nthawi inakhala maziko a HotSpot JVM Server Compiler. Zaka ziwiri pambuyo pake, anali akugwira ntchito kale ku Sun Microsystems pa JVM ndipo adawonetsa dziko lonse kuti JIT ili ndi ufulu wokhalapo. Nkhani yonseyi yokhudzana ndi momwe Java ilili imodzi mwamasewera othamanga kwambiri amakono okhala ndi kukhathamiritsa kwanzeru komanso kwachangu kwambiri idachokera ku Cliff Click. Poyambirira, ankakhulupirira kuti ngati chinachake chikupezeka kwa static compiler, simuyenera kuyesa jit. Chifukwa cha ntchito ya Cliff ndi timu, zilankhulo zonse zatsopano zidayamba kupangidwa ndi lingaliro la JIT kuphatikiza mwachisawawa. Inde, iyi sinali ntchito ya munthu mmodzi, koma Cliff adagwira ntchito yofunika kwambiri.
M'mawu otsegulira, Cliff alankhula za ntchito yake ina - H20, nsanja yosungiramo makina ophunzirira makina ogawa komanso owopsa pamafakitale. Kapenanso ndendende, za kusungidwa kogawidwa kwa makiyi amtengo wapatali mkati mwake. Uku ndikusungirako mwachangu kwambiri komwe kuli ndi zinthu zambiri zosangalatsa (mndandanda weniweniwo uli mkati kufotokoza), zomwe zimalola kugwiritsa ntchito njira zofananira pamasamu akusamutsa deta yayikulu.
Lipoti lina lomwe Cliff apereka ndi - Zochitika za Azul Hardware Transactional Memory. Mbali ina ya mbiri yake - zaka khumi ntchito ku Azul, komwe adasintha ndikusintha zinthu zambiri muzinthu zamtundu wa Azul ndi ukadaulo: ophatikiza a JIT, nthawi yothamanga, mtundu wa ulusi, kuwongolera zolakwika, kuwongolera ma stack, kusokoneza kwa hardware, kutsitsa kalasi, ndi zina zotero - chabwino, mumapeza lingaliro.
Gawo losangalatsa kwambiri lidayamba pomwe adapanga zida zamabizinesi akulu - kompyuta yayikulu kuyendetsa Java. Chinali chinthu chatsopano, chopangidwa makamaka kwa Java, chomwe chili ndi zofunikira zapadera - werengani zolepheretsa kukumbukira zotayira pang'onopang'ono, kufufuza malire, mafoni enieni ... Imodzi mwa matekinoloje ozizira kwambiri ndi hardware transactional memory. L1 yonse yamtundu uliwonse wa 864 imatha kutenga nawo gawo pakulemba, zomwe ndizofunikira kwambiri pogwira ntchito ndi maloko ku Java (ma blocks olumikizidwa amatha kugwira ntchito limodzi malinga ngati palibe mkangano weniweni wamakumbukiro). Koma lingaliro lokongolalo lidaphwanyidwa ndi zowona zowawa - ndipo munkhani iyi Cliff akuwuzani chifukwa chomwe HTM ndi STM sizoyenera kwambiri pazofunikira zamakompyuta amitundu yambiri.
Michael Scott - Pulofesa wa Sayansi Yamakompyuta ku Yunivesite ya Rochester, yemwe adamulumikizana naye zaka 34 kale, ndipo kunyumba kwawo ku University of Wisconsin-Madison, anali woyang'anira kwa zaka zisanu. Iye amafufuza ndi kuphunzitsa ophunzira za kufanana ndi kugawa mapulogalamu ndi chinenero kapangidwe.
Ponena za dziko la Java, iyi ndi nkhani yapadera: pamodzi ndi Doug Lea, adapanga ma aligorivimu osatsekereza ndi mizere yolumikizana yomwe malaibulale a Java amagwira ntchito. Izi ndi zomwe mawu ofunikira a "Dual data structures" adzakhale - kukhazikitsidwa kwazinthu izi mu Java SE 6 kwasintha magwiridwe antchito ka 10. java.util.concurrent.ThreadPoolExecutor. Ngati mukudzifunsa pasadakhale kuti "Dual data structures" ndi chiyani, ndiye kuti pali zambiri za izo ntchito zogwirizana.
Maurice Herlihy - wopambana Mphotho ziwiri za Dijkstra. Yoyamba ndi yogwira ntchito "Kudikirira Kwaulere" (Brown University), ndipo yachiwiri, yaposachedwa kwambiri - "Transactional Memory: Zomangamanga Zothandizira Zomangamanga Zopanda Lock-Free Data" (Virginia Tech University). Mphotho ya Dijkstra imazindikira ntchito yomwe kufunikira kwake komanso mphamvu zake zakhala zikuwonekera kwa zaka zosachepera khumi, ndipo Maurice mwachidziwikire ndi m'modzi mwa akatswiri odziwika bwino pantchitoyi. Panopa amagwira ntchito ngati pulofesa ku Brown University ndipo ali ndi mndandanda wautali wazomwe akwaniritsa.
M'mawu omaliza awa, Maurice alankhula za chiphunzitso ndi machitidwe a blockchain omwe amagawira machitidwe kuchokera pamalingaliro akale a makompyuta omwe amagawidwa komanso momwe amachepetsera zovuta zambiri. Ili ndi lipoti lapadera pa mutu wa msonkhano - osati za migodi, koma za momwe chidziwitso chathu chingagwiritsire ntchito modabwitsa komanso moyenera mogwirizana ndi ntchito zosiyanasiyana.
Mu Julayi 2017, Maurice adabwera kale ku Russia kusukulu ya SPTDC, adachita nawo msonkhano wa JUG.ru, ndipo zojambulidwa zitha kuwonedwa pa YouTube:
Pulogalamu yayikulu
Kenako padzakhala chidule chachidule cha malipoti ophatikizidwa mu pulogalamuyi. Malipoti ena akufotokozedwa mwatsatanetsatane apa, ena mwachidule. Kufotokozera kwautali kumapita makamaka ku malipoti a chilankhulo cha Chingerezi omwe amafunikira maulalo a mapepala asayansi, mawu pa Wikipedia, ndi zina zotero. Mndandanda wathunthu ulipo onani patsamba la msonkhano. Mndandanda womwe uli patsamba lino udzasinthidwa ndikuwonjezeredwa.
Ichi ndi gawo lachilendo kwambiri la pulogalamuyo, chifukwa si lipoti, koma gawo la mafunso ndi mayankho. Pamene gawo lalikulu la omvera likuzoloΕ΅era kale (kapena likhoza kudziwika) ndi mitundu yonse ya ntchito zochokera ku "lingaliro la Lamport", zolemba zake ndi malipoti ake, ndizofunika kwambiri kugwiritsa ntchito nthawi yonse yopezeka pakulankhulana mwachindunji.
Yoyamba mwa mavidiyo awiriwa tili nawo kale inasanduka nkhani ya habro. Ngati mulibe ola la nthawi yowonera kanemayo, mutha kuwerenga zonse mwachangu m'mawu.
Chidziwitso: Pali makanema ambiri a Leslie Lamport pa YouTube. Mwachitsanzo, pali chachikulu TLA + maphunziro. Mtundu wapaintaneti wamaphunziro onsewa ukupezeka pa tsamba lofikira la wolemba, ndipo adayiyika pa YouTube kuti muwone mosavuta pazida zam'manja.
Martin Kleppmann ndi wofufuza pa yunivesite ya Cambridge akugwira ntchito pa CRDT ndi kutsimikizira kovomerezeka kwa ma algorithms. Buku la Martin "Kupanga Mapulogalamu Ogwiritsa Ntchito Zambiri", yofalitsidwa mu 2017, idakhala yopambana kwambiri ndipo idalowa pamndandanda wazogulitsa kwambiri pankhani yosungira ndi kukonza deta. Kevin Scott, CTO ku Microsoft, kamodzi ananena: βBuku ili liyenera kukhala lofunikira kwa akatswiri opanga mapulogalamu. Ichi ndi chida chosowa chomwe chimaphatikiza malingaliro ndi machitidwe kuti athandize opanga mapulogalamu kukhala anzeru popanga ndi kukhazikitsa zida ndi ma data. " Wopanga Kafka ndi CTO wa Confluent, Jay Kreps, adanenanso chimodzimodzi.
Asanalowe mu kafukufuku wamaphunziro, Martin adagwira ntchito m'makampani ndipo adayambitsa zoyambira ziwiri zopambana:
Mwachidziwitso, odzipereka kuti awonetse mbiri ya anthu omwe amalumikizana nawo kuchokera ku imelo yanu, yomwe LinkedIn idagula mu 2012;
Go Test It, ntchito yoyesera mawebusayiti pamasamba osiyanasiyana, omwe RedGate adagula mu 2009.
Heidi Howard ndi, monga Martin, wofufuza machitidwe ku yunivesite ya Cambridge. Zopadera zake ndizokhazikika, kulekerera zolakwika, magwiridwe antchito komanso kugawirana. Amadziwika kwambiri chifukwa cha kuphatikizika kwake kwa algorithm ya Paxos yotchedwa Flexible Paxos.
Kumbukirani kuti Paxos ndi banja la ma protocol kuti athetse vuto la kuvomerezana pa intaneti ya makompyuta osadalirika, kutengera ntchito ya Leslie Lamport. Chifukwa chake, ena mwa okamba athu akugwira ntchito pamavuto omwe adanenedwa poyambirira ndi okamba athu ena - ndipo izi nzodabwitsa.
Kutha kupeza mgwirizano pakati pa osungira angapo - poyankhulira, kusankha atsogoleri, kutsekereza, kapena kugwirizanitsa - ndi nkhani yofunika kwambiri pamachitidwe amakono ogawidwa. Paxos tsopano ndiyo njira yayikulu yothetsera mavuto ogwirizana, ndipo pali kafukufuku wambiri omwe akuchitika mozungulira kuti akulitse ndi kukhathamiritsa ma aligorivimu pazosowa zosiyanasiyana.
Alex ndi katswiri wamakina osungira ndi makina osungira, ndipo chofunikira kwambiri kwa ife, odzipereka Cassandra. Pano akugwira ntchito pa bukhu, Database Internals, ndi O'Reilly.
Kwa machitidwe ndi kukhazikika komaliza (m'mawu achi Russia - "kusagwirizana komaliza"), pambuyo pa kuwonongeka kwa node kapena kugawanika kwa netiweki, muyenera kuthana ndi vuto ili: pitilizani kuchita zopempha, kudzipereka kosasinthasintha, kapena kukana kuzikwaniritsa ndikudzipereka. M'dongosolo loterolo, ma quorum, magawo ang'onoang'ono a node ndikuwonetsetsa kuti mfundo imodzi ili ndi mtengo waposachedwa kwambiri, ikhoza kukhala yankho labwino kwambiri. Mutha kupulumuka zolephereka ndi kutayika kwa kulumikizana ndi ma node ena ndikuyankhabe ndi zikhalidwe zaposachedwa.
Komabe, chilichonse chili ndi mtengo wake. Ndondomeko yobwerezabwereza quorum imatanthawuza kuwonjezereka kwa ndalama zosungirako: deta yowonjezereka iyenera kusungidwa pa mfundo zingapo nthawi imodzi kuti zitsimikizire kuti pali makope okwanira pamene vuto lichitika. Zikuoneka kuti simuyenera kusunga deta zonse pa replicas onse. Mukhoza kuchepetsa katundu pa yosungirako ngati kusunga deta kokha pa mbali ya mfundo, ndi ntchito mfundo zapadera (Transient Replica) kwa kulephera kusamalira zochitika.
Dmitry ndi wopanga ku Google akugwira ntchito yoyesa mwamphamvu C/C++ ndi Go - Address/Memory/ThreadSanitizer, ndi zida zofananira za Linux kernel. Zathandizira ku Go a scalable goroutine scheduler, network poller, ndi ofanana nawo otolera zinyalala. Iye ndi katswiri pa multithreading, mlembi wa khumi ndi awiri ma algorithms atsopano osatsekereza ndipo ndi mwini wake wa Lamba Wakuda Intel.
Tsopano pang'ono za lipoti lokha. Chiyankhulo cha Go chili ndi chithandizo cha komweko pakuwerengera zambiri monga ma goroutines (ulusi wopepuka) ndi ma tchanelo (mizere ya FIFO). Njirazi zimapangitsa kuti zikhale zosavuta komanso zosangalatsa kwa ogwiritsa ntchito kulemba mapulogalamu amakono amitundu yambiri, ndipo amawoneka ngati matsenga. Monga tikumvetsetsa, palibe matsenga pano. M'nkhani iyi, Dmitry adzafufuza zovuta za Go scheduler ndikuwonetsa zinsinsi zakugwiritsa ntchito "matsenga" awa. Choyamba, adzapereka mwachidule zigawo zazikulu za ndondomeko ndikukuuzani momwe zimagwirira ntchito. Kenako, tiyang'ana mwatsatanetsatane mbali zonse monga njira yoyimitsa magalimoto / kuyimitsa magalimoto komanso kuyendetsa mafoni oletsa kuyimitsa. Pomaliza, wotchedwa Dmitry kulankhula pang'ono za kusintha zotheka kwa scheduler.
Dmitry adagwira ntchito yogulitsa ntchito kwa zaka pafupifupi 9 osataya kulumikizana ndi yunivesite komanso gulu lasayansi. Kusanthula kwakukulu kwa data ku Odnoklassniki kunakhala kwa iye mwayi wapadera wophatikiza maphunziro aukadaulo ndi maziko asayansi ndi chitukuko cha zinthu zenizeni, zomwe zimafunikira.
Kugawidwa kwa ma graph kwakhala ndipo kumakhalabe ntchito yovuta: pakafunika kudziwa zambiri za kulumikizana kwa vertex yoyandikana nayo, deta nthawi zambiri imayenera kusamutsidwa pakati pa makina, zomwe zimapangitsa kuti nthawi yowonjezereka iwonongeke komanso kunyamula katundu pa intaneti. Munkhani iyi, tiwona momwe tingapezere liwiro lalikulu pogwiritsira ntchito ma data a probabilistic kapena zowona monga ma symmetry a graph yaubwenzi pamalo ochezera. Zonsezi zikuwonetsedwa ndi zitsanzo zamakhodi ku Apache Spark.
Denis - wopanga Cosmos DB, Katswiri wofufuza zitsanzo zotsatizana, ma aligorivimu ogwirizana, ndi kugawidwa kwa magawo. Panopa amagwira ntchito ku Microsoft, ndipo zisanachitike adagwira ntchito ku Amazon ndi Yandex.
M'nkhani iyi, tiwona njira zogawira zomwe zapangidwa zaka zingapo zapitazi, zomwe zitha kukhazikitsidwa kumbali ya kasitomala pamwamba pa sitolo iliyonse ya data yomwe imathandizira kusintha kokhazikika (yerekezerani ndi kukhazikitsa). Chofunikira ndichakuti moyo sumatha ndi kudzipereka kwa magawo awiri, zogulitsa zitha kuwonjezeredwa pamwamba pa nkhokwe iliyonse - pamlingo wofunsira, koma ma protocol osiyanasiyana (2PC, Percolator, RAMP) ali ndi ma tradeoffs osiyanasiyana ndipo sanapatsidwe kwa ife. kwaulere.
Alexei (zaleslaw) ndi wokamba nkhani kwanthawi yayitali komanso membala wa makomiti apulogalamu pamisonkhano ina. Wophunzitsa ku EPAM Systems, ndipo wakhala abwenzi ndi Hadoop/Spark ndi data ina yayikulu kuyambira 2012.
Munkhani iyi, Alexey alankhula za zovuta zosinthira makina ophunzirira makina akale kuti azitha kugawidwa molingana ndi zomwe adakumana nazo akugwira ntchito ndi Apache Spark ML, Apache Mahout, Apache Flink ML komanso chidziwitso chopanga Apache Ignite ML. Alexey adzalankhulanso za kukhazikitsidwa kwa ma aligorivimu a ML omwe adagawidwa pamadongosolo awa.
Ndipo potsiriza, malipoti awiri ochokera ku Yandex okhudza Yandex Database.
Vladislav ndi wopanga ku Yandex mu gulu logawidwa la nsanja. Yandex Database ndi horizontally scalable, geo-distributed, DBMS yolekerera zolakwika zomwe zingathe kupirira kulephera kwa ma disks, ma seva, ma racks ndi malo osungira deta popanda kutaya kusinthasintha. Kuonetsetsa kulekerera zolakwika, algorithm ya eni eni kuti akwaniritse mgwirizano wogawidwa amagwiritsidwa ntchito, komanso njira zingapo zaukadaulo, zomwe zimakambidwa mwatsatanetsatane mu lipotilo. Lipotilo likhoza kukhala losangalatsa kwa onse opanga DBMS ndi opanga mayankho ogwiritsira ntchito pogwiritsa ntchito DBMS.
Pulogalamu ya msonkhano ikupitirizabe kudzazidwa ndi malipoti atsopano. Makamaka, tikuyembekezera lipoti kuchokera Nikita Koval (ndkoval) kuchokera ku JetBrains ndi Oleg Anastasyev (m0nstermind) kuchokera ku kampani ya Odnoklassniki. Nikita amagwira ntchito pa ma aligorivimu a coroutines mu gulu la Kotlin, ndipo Oleg akupanga zomanga ndi zothetsera machitidwe olemetsa kwambiri papulatifomu ya Odnoklassniki. Kuphatikiza apo, pali kagawo kamodzi kopanda kanthu, komiti ya pulogalamuyo ikugwira ntchito ndi omwe akufuna pakali pano.
Msonkhano wa Hydra udzachitika pa July 11-12 ku St. Matikiti alipo kugula patsamba lovomerezeka. Chonde samalani za kupezeka kwa matikiti a pa intaneti - ngati pazifukwa zina simungathe kufika ku St. Petersburg masiku ano.