19 krye të hidrës. Një përmbledhje e gjerë e programit

11-12 korrik në Shën Petersburg do të mbahet konferenca Hydra, e dedikuar zhvillimit të sistemeve paralele dhe të shpërndara. Karakteristika e Hydrës është se ajo bashkon shkencëtarë të shkëlqyer (të cilët zakonisht mund të gjenden vetëm në konferenca shkencore ndërkombëtare) dhe inxhinierë të njohur në një program të madh që lidhet me shkencën dhe praktikën.

Hydra është një nga konferencat më të rëndësishme të viteve të fundit. Ajo është përgatitur me shumë kujdes, duke përzgjedhur folës dhe tema. Javën e kaluar, doli një intervistë në Habr me drejtorin e kompanisë JUG.ru Group, Aleksei Fedorov (23derevo).

Ne vazhduam tĂ« flasim pĂ«r tre pjesĂ«marrĂ«s tĂ« rĂ«ndĂ«sishĂ«m, themeluesit e teorisĂ« sĂ« sistemeve tĂ« shpĂ«rndara — Leslie Lamport, Maurice Herlihy dhe Michael Scott. ËshtĂ« koha tĂ« flasim mĂ« nĂ« detaje pĂ«r programin!

19 krye të hidrës. Një përmbledhje e gjerë e programit

Motivimi

Nëse mereni me programim, atëherë në një mënyrë ose në një tjetër përballeni me multithreading dhe llogaritjet e shpërndara. Specialistët në fushat përkatëse punojnë me to drejtpërdrejt, por shpërndarja përceptohet nënkuptimisht nga të gjitha anët: në çdo kompjuter me shumë bërthamë ose shërbim të shpërndarë ka diçka që kryen llogaritje në paralel.

Ekzistojnë shumë konferenca që zbulojnë aspekte të ndryshme të programimit aplikativ. Në anën tjetër të spektrit, kemi shkolla shkencore speciale, në format ligjëratash që zbulojnë një sasi të madhe të teorisë komplekse. Për shembull, paralelisht me Hydra në Shën Petersburg zhvillohet shkolla SPTDC. Në konferencën Hydra përpiqemi të bashkojmë praktikën e ashpër, shkencën dhe gjithçka që ndodh në kryqëzimin e tyre.

Mendoni pĂ«r kĂ«tĂ«: ne jetojmĂ« nĂ« njĂ« kohĂ« fantastike, kur Ă«shtĂ« e mundur tĂ« takojmĂ« personalisht themeluesit e fushĂ«s sĂ« shkencĂ«s dhe inxhinierisĂ« qĂ« ne praktikojmĂ«. FizikantĂ«t nuk do tĂ« takojnĂ« as Njutonin, as Einshteinin — treni ka ikur. Por pranĂ« nesh ende jetojnĂ« ata qĂ« krijuan bazat e teorisĂ« sĂ« sistemeve tĂ« shpĂ«rndara, inventuan gjuhĂ« tĂ« njohura programimi, dhe filluan tĂ« realizonin prototipe funksionale. KĂ«ta njerĂ«z nuk e lanĂ« punĂ«n e tyre nĂ« gjysmĂ«, por po merren aktualisht me probleme tĂ« rĂ«ndĂ«sishme nĂ« universitete dhe kompani tĂ« njohura ndĂ«rkombĂ«tarisht, dhe janĂ« burimet mĂ« tĂ« mĂ«dha tĂ« diturisĂ« dhe pĂ«rvojĂ«s tĂ« sotme.

Nga ana tjetër, mundësia për t'u takuar me ta zakonisht mbetet vetëm teorike: pak nga ne mund të monitorojmë vazhdimisht ngjarjet publike në ndonjë universitet Rochester, për të shkuar pastaj në SHBA dhe kthehen sërish për një ligjëratë nga Maikll Skuoti. Të gjithë pjesëmarrësit në Hydra do të ishin një investim të madh, pa përmendur sasinë e madhe të kohës që do të shpenzohej (ndonëse kjo tingëllon si një aventurë interesante).

Nga ana tjetĂ«r, ne kemi shumĂ« inxhinierĂ« top tĂ« cilĂ«t aktualisht po punojnĂ« mbi problemet e tanishme tĂ« sistemeve tĂ« shpĂ«rndara, dhe ata vĂ«rtet kanĂ« diçka pĂ«r tĂ« treguar. Por problemi Ă«shtĂ« — ata punojnĂ«, dhe koha e tyre Ă«shtĂ« e shtrenjtĂ«. Po, nĂ«se je punonjĂ«s nĂ« Microsoft, Google ose JetBrains, mundĂ«sia pĂ«r tĂ« takuar njĂ« nga folĂ«sit e njohur nĂ« njĂ« ngjarje tĂ« brendshme — rritet ndjeshĂ«m, ndĂ«rsa nĂ« tĂ« pĂ«rgjithshme — jo, nuk ndodh çdo ditĂ«.

KĂ«shtu konferenca Hydra pĂ«rmbush njĂ« detyrĂ« tĂ« rĂ«ndĂ«sishme, qĂ« shumica prej nesh nuk mund ta bĂ«jĂ« vetĂ« — bashkon nĂ« njĂ« vend dhe nĂ« njĂ« kohĂ« njerĂ«z, idetĂ« e tĂ« cilĂ«ve ose biseda me ta mund tĂ« ndryshojĂ« jetĂ«n tuaj. Pranoj se keqpĂ«rdorimi mund tĂ« mos i nevojitet tĂ« gjithĂ«ve nĂ« mĂ«nyrĂ« tĂ« barabartĂ«, ndonjĂ«herĂ« ndiheni tĂ« lumtur duke programuar CRUD nĂ« PHP pĂ«rgjithmonĂ«. Por pĂ«r ata qĂ« kanĂ« nevojĂ« — kjo Ă«shtĂ« shansi juaj.

Ka konferenca Hydra nĂ« Habr ka kaluar njĂ« kohĂ« e gjatĂ« qĂ« nga njoftimi i parĂ«. GjatĂ« kĂ«saj kohe, Ă«shtĂ« bĂ«rĂ« njĂ« punĂ« e madhe — dhe ja, kemi njĂ« listĂ« tĂ« pothuajse tĂ« gjitha prezantimeve. AsnjĂ« algoritĂ«m tĂ« ngadaltĂ« njĂ«kanalĂ«sh, vetĂ«m hardcore tĂ« pastĂ«r tĂ« shpĂ«rndarĂ«! Le tĂ« pĂ«rfundojmĂ« me fjalĂ« tĂ« pĂ«rgjithshme dhe tĂ« shohim se çfarĂ« kemi tani nĂ« duar.

Këtu janë

Këto seanca hapin dhe mbyllin ditët e konferencës. Zakonisht, qëllimi i seancës hapëse është të përcaktojë atmosferën dhe drejtimin e konferencës. Seanca mbyllëse përmbyll dhe shpjegon se si të jetojmë me njohuritë dhe aftësitë e fituara gjatë ditëve të konferencës. Fillimi dhe përfundimi: ajo që do të mbahet mend më mirë, dhe në përgjithësi, ka një rëndësi të lartë.

Cliff Click — Algoritmi i shpĂ«rndarĂ« K/V H2O

19 krye tĂ« hidrĂ«s. NjĂ« pĂ«rmbledhje e gjerĂ« e programit Cliff Ă«shtĂ« njĂ« legjendĂ« nĂ« botĂ«n e Java-s. NĂ« fund tĂ« viteve '90, pĂ«r tezĂ«n e tij tĂ« PhD, ai shkroi njĂ« punim me titull «Kombinimi i Analizave, Kombinimi i Optimizimeve», qĂ« pas njĂ« kohe u bĂ« baza pĂ«r HotSpot JVM Server Compiler. Pas dy vitesh ai tashmĂ« punonte nĂ« Sun Microsystems nĂ« JVM dhe i tregoi botĂ«s se JIT kishte tĂ« drejtĂ«n e ekzistencĂ«s. E gjithĂ« kjo histori e asaj qĂ« Java Ă«shtĂ« njĂ« nga runtime-t mĂ« tĂ« shpejtĂ« moderne me optimizime tĂ« mençura dhe tĂ« shpejta filloi pikĂ«risht me Cliff Click. NĂ« fillim, u mendua se, nĂ«se diçka ishte e disponueshme pĂ«r kompilerin statik — nuk kishte asnjĂ« arsye pĂ«r ta provuar tĂ« jitit. FalĂ« punĂ«s sĂ« Cliff dhe ekipit, tĂ« gjitha gjuhĂ«t e reja filluan tĂ« krijoheshin me idenĂ« e JIT-kompilimit si normĂ«. Pa dyshim, kjo ishte njĂ« punĂ« qĂ« nuk ishte pĂ«r njĂ« person tĂ« vetĂ«m, por Cliff luajti njĂ« rol shumĂ« tĂ« rĂ«ndĂ«sishĂ«m.

NĂ« keynote-in hapĂ«s, Cliff do tĂ« flasĂ« pĂ«r njĂ« tjetĂ«r iniciativĂ« tĂ« tijĂ«n — H20, njĂ« platformĂ« nĂ«-memory pĂ«r mĂ«simin e makinerisĂ« tĂ« shpĂ«rndarĂ« dhe tĂ« shkallĂ«zueshĂ«m pĂ«r pĂ«rdorim industrial. NĂ« veçanti — pĂ«r magazinimin e shpĂ«rndarĂ« tĂ« çiftĂ«ve "çelĂ«s-vlerĂ«" brenda saj. Ky Ă«shtĂ« njĂ« depo shumĂ« e shpejtĂ« me njĂ« mori veçorish interesante (lista e saktĂ« Ă«shtĂ« nĂ« pĂ«rshkrimin), tĂ« cilat lejojnĂ« pĂ«rdorimin e zgjidhjeve tĂ« tilla nĂ« matematikĂ«n e rrjedhave tĂ« tĂ« dhĂ«nave tĂ« mĂ«dha.

NjĂ« tjetĂ«r raport me tĂ« cilin do tĂ« flasĂ« Klif Ă«shtĂ« — PĂ«rvoja e Azul Hardware Transactional Memory. NjĂ« tjetĂ«r pjesĂ« e biografisĂ« sĂ« tij Ă«shtĂ« dhjetĂ« vjet pune nĂ« Azul, ku ai pĂ«rmirĂ«soi dhe rinovoi shumĂ« aspekte nĂ« harduer dhe stack-un e teknologjive Azul: kompilatorĂ« JIT, runtime, modeli i thread-eve, trajtimi i gabimeve, puna me stack-un, ndĂ«rprerjet harduerike, ngarkimi i klasave dhe kĂ«shtu me radhĂ« — e kuptuat.

Pjesa mĂ« interesante filloi kur ata krijuan harduerin pĂ«r biznesin e madh — njĂ« superkompjuter pĂ«r ekzekutimin e Java-s. Ishte njĂ« gjĂ« mjaft inovative, e dizajnuar pikĂ«risht pĂ«r Java-n, e cila ka kĂ«rkesa speciale — barrierat e memories pĂ«r tĂ« lexuar pĂ«r mbledhjen e mbeturinave me vonesĂ« tĂ« ulĂ«t, tabelat me kontroll kufijsh, thirrjet virtuale
 NjĂ« nga teknologjitĂ« mĂ« tĂ« kĂ«ndshme Ă«shtĂ« kujtesa transaksionale harduerike. I gjithĂ« L1 i çdo njĂ« nga 864 bĂ«rthamave mund tĂ« merrte pjesĂ« nĂ« regjistrimin transaksional, e cila Ă«shtĂ« veçanĂ«risht e rĂ«ndĂ«sishme pĂ«r punĂ«n me bllokadat nĂ« Java (bllokadat synchronized mund tĂ« punojnĂ« paralelisht, derisa tĂ« mos ketĂ« ndonjĂ« konflikt tĂ« vĂ«rtetĂ« pĂ«r memorien). Por ideja e bukur u pĂ«rball me realitetin e ashpĂ«r — dhe nĂ« kĂ«tĂ« prezantim, Cliff do tĂ« tregojĂ« pse HTM dhe STM nuk janĂ« shumĂ« tĂ« pĂ«rshtatshme pĂ«r nevojat praktike tĂ« llogaritjeve me shumĂ« kanale.

Michael Scott — Struktura dupleks

19 krye tĂ« hidrĂ«s. NjĂ« pĂ«rmbledhje e gjerĂ« e programit Majkl Skoti — profesor i ShkencĂ«s Kompjuterike nĂ« Universitetin e Rochester-it, me tĂ« cilin fati e lidh atĂ« pĂ«r 34 vjet, dhe nĂ« Universitetin Wisconsin-Madison, ka qenĂ« dekan pĂ«r pesĂ« vjet. Ai merret me kĂ«rkime nĂ« fushĂ«n e programimit paralel dhe tĂ« distribuar si dhe tĂ« dizajnit tĂ« gjuhĂ«ve dhe u mĂ«son studentĂ«ve kĂ«tĂ«.

I gjithĂ« bota e njeh Michael pĂ«r tekstin e tij «Programming Language Pragmatics», edicioni mĂ« i fundit i tĂ« cilit u publikua relativisht kohĂ«t e fundit — nĂ« vitin 2015. Puna e tij «Algorithms for scalable synchronization on shared-memory multiprocessors» mori çmimin Dijkstra si njĂ« prej mĂ« tĂ« njohurave nĂ« fushĂ«n e llogaritjeve tĂ« distribuar dhe ndodhet hapur nĂ« bibliotekĂ«n online tĂ« Universitetit Rochester. Gjithashtu mund ta njihni atĂ« si autorin e atij algoritmi tĂ« famshĂ«m tĂ« Michael-Scott nga «Simple, Fast, and Practical Non-Blocking and Blocking Concurrent Queue Algorithms».

NĂ« lidhje me botĂ«n e Java, ky Ă«shtĂ« njĂ« rast i veçantĂ«: sĂ« bashku me Doug Lea, ai zhvilloi ato algoritme jo-bllokuese dhe radhĂ«t sinqonje ku janĂ« ndĂ«rtuar bibliotekat Java. PikĂ«risht pĂ«r kĂ«tĂ« do tĂ« flitet nĂ« keynote «Dual data structures» — integrimi i kĂ«tyre strukturave nĂ« Java SE 6 lehoi pĂ«rmirĂ«simin e performancĂ«s me 10 herĂ« java.util.concurrent.ThreadPoolExecutor. NĂ«se jeni tĂ« interesuar mĂ« parĂ« pĂ«r kĂ«to «Dual data structures», ka njĂ« punĂ« pĂ«rkatĂ«se.

Maurice Herlihy — Blloqet dhe e ardhmja e kompjuterĂ«ve tĂ« shpĂ«rndarĂ«

19 krye tĂ« hidrĂ«s. NjĂ« pĂ«rmbledhje e gjerĂ« e programit Maurice Herlihy — mbajtĂ«s i dy çmimeve Dijkstra. E para — pĂ«r punĂ«n mbi «Sinchronizimi Pa Prerje» (Universiteti Brown), dhe e dyta, mĂ« e reja — «Memoria Transaksionale: MbĂ«shtetje Arkitekturore pĂ«r Struktura TData pa Bllokim» (Universiteti Virginia Tech). Çmimi Dijkstra jepet pĂ«r punĂ«, tĂ« cilat kanĂ« pasur rĂ«ndĂ«si dhe ndikim tĂ« dukshĂ«m pĂ«r tĂ« paktĂ«n dhjetĂ« vjet, dhe Ă«shtĂ« e qartĂ«, Maurice Ă«shtĂ« njĂ« nga specialistĂ«t mĂ« tĂ« njohur nĂ« fushĂ«. Aktualisht ai punon si profesor nĂ« Universitetin Brown dhe ka njĂ« numĂ«r arritjesh qĂ« do tĂ« zinin njĂ« paragraf tĂ« tĂ«rĂ«.

NĂ« kĂ«tĂ« konferencĂ« pĂ«rmbyllĂ«se, Maurice do tĂ« flasĂ« pĂ«r teorinĂ« dhe praktikĂ«n e sistemeve tĂ« shpĂ«rndara blockchain nga perspektiva e klasikes sĂ« llogaritjeve tĂ« shpĂ«rndara dhe si kjo e thjeshton njĂ« numĂ«r problematikash tĂ« lidhura. Ky Ă«shtĂ« njĂ« ligjĂ«ratĂ« ekskluzivisht mbi temĂ«n e konferencĂ«s — aspak pĂ«r trendin e minierave, por mĂ« shumĂ« pĂ«r atĂ« se si njohuritĂ« tona mund tĂ« pĂ«rdoren nĂ« mĂ«nyrĂ« tĂ« jashtĂ«zakonshme efektive dhe tĂ« pĂ«rshtatshme pĂ«r njĂ« sĂ«rĂ« problematikash tĂ« ndryshme.

Në korrik të vitit 2017, Maurice erdhi në Rusi për shkollën SPTDC, mori pjesë në takimin JUG.ru, dhe regjistrimi mund të shikohet në YouTube:

Luaj videon

Programi kryesor

MĂ« pas do tĂ« jetĂ« njĂ« pĂ«rmbledhje e vogĂ«l e referimeve qĂ« janĂ« pĂ«rfshirĂ« nĂ« program. Disa referime kĂ«tu janĂ« pĂ«rshkruar nĂ« detaje, disa — mĂ« shkurt. PĂ«rshkrimet e gjata iu japin kryesisht referimeve nĂ« anglisht, tĂ« cilat kĂ«rkojnĂ« lidhje nĂ« punime shkencore, terma nĂ« Wikipedia, dhe kĂ«shtu me radhĂ«. Lista e plotĂ« mund tĂ« shikohet nĂ« faqen e konferencĂ«s. Lista nĂ« faqe do tĂ« pĂ«rditĂ«sohet dhe do tĂ« plotĂ«sohet.

Leslie Lamport — P & P

19 krye të hidrës. Një përmbledhje e gjerë e programit Leslie Lamport është autori i punimeve thelbësore në llogaritë e shpërndara. «LaTeX» ndërtohet si «Lamport TeX». Ai e futi për herë të parë konceptin konsistencës së rregullt, dhe artikulli i tij «Si të Ndërtojmë një Kompjuter të Shumëproçesor që Ekzekuton Saktësisht Programet e Shumëproçesor» ka marrë çmimin Dijkstra.

Kjo është pjesa më e çuditshme e programit, sepse kjo madje nuk është një referim, por një seancë pyetje dhe përgjigjesh. Kur një pjesë e madhe e audiencës tashmë është e njohur (ose mund të njihet) me punimet e ndryshme të bazuara në «teorinë e Lamportit», artikujt dhe referimet e tij, është më se e rëndësishme të shpenzohet gjithë koha e mundshme për komunikim të drejtpërdrejtë.

Ideja Ă«shtĂ« e thjeshtĂ« — ju shikoni dy referime nĂ« YouTube: «Programimi Duhet tĂ« JetĂ« MĂ« ShumĂ« Se Kodim» dhe «NĂ«se nuk po shkruani njĂ« program, mos pĂ«rdorni njĂ« gjuhĂ« programimi» dhe pĂ«rgatitni tĂ« paktĂ«n njĂ« pyetje, ndĂ«rsa Leslie pĂ«rgjigjet.

E para nga këto dy video tashmë e kemi kthyer në një artikull të Habros.. Nëse nuk keni një orë kohë për të parë videon, mund ta lexoni shpejt këtë në formë teksti.

Për mirësi: në YouTube ka shumë më tepër video me Leslie Lamport. Për shembull, ka një kurs të shkëlqyer për TLA+. Versioni offline i të gjithë këtij kursi është në faqen kryesore të autorit, ndërsa ai e ka ngarkuar atë në YouTube për shikim më të lehtë në pajisjet mobile.

Martin Kleppmann — Sinkronizimi i tĂ« dhĂ«nave pĂ«rmes pajisjeve tĂ« pĂ«rdoruesve pĂ«r bashkĂ«punim tĂ« shpĂ«rndarĂ«

19 krye të hidrës. Një përmbledhje e gjerë e programit Martin Kleppmann është një hulumtues në Universitetin e Kembrixhit, që punon mbi CRDT dhe verifikimin formal të algoritmeve. Libri i Martin «Krijimi i Aplikacioneve të Intensitetit të të Dhënave», i publikuar në vitin 2017, ka qenë shumë i suksesshëm dhe ka hyrë në listat e bestsellerëve në fushën e ruajtjes dhe përpunimit të të dhënave. Kevin Scott, CTO në Microsoft, njëherë tha: «Ky libër duhet të jetë i detyrueshëm për inxhinierët e zhvillimit. Ky është një burim i rrallë që bashkon teori dhe praktikë, ndihmon zhvilluesit të dizajnojnë dhe zbatojnë më inteligjent infrastrukturën dhe sistemet e përpunimit të të dhënave». Diçka të ngjashme tha edhe krijuesi i Kafka-s dhe CTO i Confluent, Jay Kreps.

Para se të merrej me kërkimet akademike, Martin punoi në industri dhe u bë bashkëthemelues i dy startupeve të suksesshme:

  • Rapportive, e cila pĂ«rqendrohej nĂ« shfaqjen e profilit social tĂ« kontakteve nga email-i juaj, e cila u blerĂ« nga LinkedIn nĂ« vitin 2012;
  • Go Test It, njĂ« shĂ«rbim pĂ«r kontrollin automatik tĂ« faqeve tĂ« internetit nĂ« shfletues tĂ« ndryshĂ«m, i cili u ble nga RedGate nĂ« vitin 2009.

Në përgjithësi, Martin, ndonëse më pak i njohur se folësit tanë kryesorë, ka arritur të kontribuojë në zhvillimin e llogaritjeve të shpërndara dhe në industri.

NĂ« kĂ«tĂ« raport, Martin do tĂ« flasĂ« pĂ«r njĂ« temĂ« mĂ« afĂ«r hulumtimeve tĂ« tij akademike. NĂ« Google Docs dhe nĂ« softverĂ« tĂ« ngjashĂ«m pĂ«r redaktimin e pĂ«rbashkĂ«t tĂ« dokumenteve, «redaktimi i pĂ«rbashkĂ«t» do tĂ« thotĂ« detyra e replikimit: çdo pĂ«rdorues ka njĂ« replikĂ« tĂ« vet tĂ« dokumentit tĂ« pĂ«rbashkĂ«t, tĂ« cilĂ«n e modifikon, dhe tĂ« gjitha ndryshimet dĂ«rgohen nĂ« rrjet tĂ« pjesĂ«marrĂ«sve tĂ« tjerĂ«. Ndryshimet e dokumenteve offline çojnĂ« nĂ« njĂ« pĂ«rkohshmĂ«ri tĂ« pamundur tĂ« dokumentit nĂ« raport me pjesĂ«marrĂ«sit e tjerĂ«, dhe rishikimi kĂ«rkon zgjidhjen e konflikteve. PikĂ«risht pĂ«r kĂ«tĂ« janĂ« sistemet Tё DhĂ«nave Tё Replicuar Pa Konfikte (CRDT), qĂ« nĂ« thelb Ă«shtĂ« njĂ« koncept relativisht i ri, thelbi i tĂ« cilit Ă«shtĂ« formuluar vetĂ«m nĂ« vitin 2011. NĂ« kĂ«tĂ« raport diskutohet se çfarĂ« ka ndodhur qysh atĂ«herĂ« nĂ« botĂ«n e CRDT, çfarĂ« janĂ« arritjet mĂ« tĂ« fundit, si dhe diskutimi i qasjes ndaj krijimit tĂ« aplikacioneve me prioritet lokal dhe pĂ«rdorimi i bibliotekĂ«s open-source Automerge nĂ« veçanti.

Java javën e ardhshme do të publikojmë në Habra një intervistë të madhe me Martin, do të jetë interesante.

Pedro Ramalhete — Struktura tĂ« DhĂ«nash pa Pritje dhe Transaksione pa Pritje

19 krye tĂ« hidrĂ«s. NjĂ« pĂ«rmbledhje e gjerĂ« e programit Pedro punon nĂ« Cisco dhe zhvillon algoritme paralel pĂ«r rreth dhjetĂ« vjet, duke pĂ«rfshirĂ« mekanizmat e sinkronizimit, struktura tĂ« dhĂ«nash lock-free dhe wait-free dhe gjithçka qĂ« mund tĂ« imagjinoni pĂ«r kĂ«tĂ« temĂ«. Interesat e tij aktuale shkencore dhe inxhinierike janĂ« pĂ«rqendruar nĂ« Universal Constructions, Software Transactional Memory, Memorie tĂ« PĂ«rhershme dhe teknologji tĂ« tjera tĂ« ngjashme qĂ« lejojnĂ« realizimin e aplikacioneve korrekt, tĂ« shkallĂ«zuara dhe me qĂ«ndrueshmĂ«ri tĂ« lartĂ«. Gjithashtu, ai Ă«shtĂ« autori i njĂ« blogu tĂ« njohur nĂ« rrethana tĂ« ngushta. ÇmenduritĂ« e Paralelizmave.

Të dhënat paralel janë në thelb të shumicës së aplikacioneve shumë-fijuese, duke filluar nga përdorimi i radhëve të mesazheve mes aktorëve deri te strukturat e dhënash të indeksuara në depot key-value. Në Java JDK ato funksionojnë me sukses për shumë vjet, dhe po ashtu, me kalimin e kohës, përfshihen gjithnjë e më shumë në C++.

MĂ«nyra mĂ« e thjeshtĂ« pĂ«r tĂ« realizuar njĂ« strukturĂ« tĂ« dhĂ«nash paralele Ă«shtĂ« implementimi sekuencial (me njĂ« thread), ku metodat mbrohen nga mutex. Ky Ă«shtĂ« i arritshĂ«m pĂ«r çdo junior, por ka probleme tĂ« dukshme me shkallĂ«zimin dhe performancĂ«n. NĂ« tĂ« njĂ«jtĂ«n kohĂ«, strukturat e dhĂ«nash pa bllokim dhe ato pa pritur jo vetĂ«m qĂ« menaxhojnĂ« gabimet mĂ« mirĂ«, por gjithashtu kanĂ« njĂ« profil mĂ« tĂ« mirĂ« tĂ« performancĂ«s — megjithatĂ«, pĂ«r zhvillimin e tyre kĂ«rkohet ekspertizĂ« e thellĂ« dhe pĂ«rshtatje pĂ«r mĂ«nyrĂ«n specifike tĂ« pĂ«rdorimit. NjĂ« rresht i gabuar kodi mjafton pĂ«r ta prishur çdo gjĂ«.

Si të bëjmë që edhe një joekspert të mund të dizajnojë dhe realzojë këto struktura të dhënash? Dihet se çdo algoritëm sekuencial mund të bëhet i sigurt për thread duke përdorur ose një konstrukcion universal, ose memorie transaksionale. Këto mund të ulim pragun e hyrjes në zgjidhjen e kësaj sfide. Megjithatë, të dyja zgjidhjet zakonisht çojnë në implementim joefektiv. Pedro do të flasë për atë se si arritën të bëjnë këto konstrukcione më efikase dhe si mund t'i përdorim për algoritmet e tyre.

Heidi Howard — Çlirimi i konsensusit tĂ« shpĂ«rndarĂ«

19 krye tĂ« hidrĂ«s. NjĂ« pĂ«rmbledhje e gjerĂ« e programit Heidi Howard — si Martin, njĂ« kĂ«rkues i sistemeve tĂ« shpĂ«rndara nĂ« Universitetein e Kembrixhit. Ajo specializohet nĂ« konsistencĂ«, qĂ«ndrushmĂ«ri, performancĂ« dhe konsensus tĂ« shpĂ«rndarĂ«. Ajo Ă«shtĂ« mĂ« e njohur pĂ«r generalizimin e algoritmit Paxos tĂ« quajtur Flexible Paxos.

KujtojmĂ« se Paxos — njĂ« familje protokollesh pĂ«r zgjidhjen e problemit tĂ« konsensusit nĂ« njĂ« rrjet lĂ«vizĂ«sish tĂ« pasigurta, nĂ« bazĂ« tĂ« punimeve tĂ« Leslie Lamport. KĂ«shtu, disa nga folĂ«sit tanĂ« po punojnĂ« nĂ« probleme fillimisht tĂ« propozuara nga folĂ«s tĂ« tjerĂ« — dhe kjo Ă«shtĂ« e mrekullueshme.

MundĂ«sia pĂ«r tĂ« gjetur konsensus midis disa host-eve — pĂ«r adresimin, zgjedhjen e liderit, bllokimin ose koordinimin — Ă«shtĂ« njĂ« çështje themelore e sistemeve tĂ« shpĂ«rndara moderne. Paxos tani Ă«shtĂ« mĂ«nyra kryesore pĂ«r tĂ« zgjidhur problemet e gjetjes sĂ« konsensusit, dhe pĂ«rreth tij po bĂ«hen shumĂ« kĂ«rkime pĂ«r tĂ« zgjeruar dhe optimizuar algoritmin pĂ«r nevoja tĂ« ndryshme praktike.

Në këtë raport, ne do të rishikojmë bazën teorike të Paxos, duke lehtësuar kërkesat fillestare dhe duke përmbledhur algoritmin. Ne do të shohim se Paxos, në thelb, është vetëm një nga opsionet në një spekter të gjerë qasjesh për konsensus, dhe se piketat e tjera të spektrit janë gjithashtu jashtëzakonisht të dobishme për ndërtimin e sistemeve të shpërndara të mira.

Alex Petrov — ZvogĂ«loni kostot tuaja tĂ« ruajtjes me Replikimin Kalimtar dhe Kuorumet e Lira

19 krye tĂ« hidrĂ«s. NjĂ« pĂ«rmbledhje e gjerĂ« e programit Aleksi Ă«shtĂ« njĂ« specialist nĂ« bazat e tĂ« dhĂ«nave dhe sistemet e ruajtjes, dhe çka Ă«shtĂ« e rĂ«ndĂ«sishme pĂ«r ne — njĂ« kontribues nĂ« Cassandra. Ai aktualisht po punon me O’Reilly mbi librin Database Internals.

PĂ«r sistemet me konsistencĂ« tĂ« pĂ«rhershme (nĂ« terminologjinĂ« nĂ« gjuhĂ«n ruse — «kontrata e koherencĂ«s»), pas rĂ«nies sĂ« njĂ« nyjeje ose ndarjes sĂ« rrjetit, Ă«shtĂ« e nevojshme tĂ« zgjidhet dilemma e mĂ«poshtme: tĂ« vazhdojĂ« tĂ« pĂ«rmbushĂ« kĂ«rkesat, duke sakrifikuar koherencĂ«n, ose tĂ« refuzojĂ« pĂ«rmbushjen e tyre dhe tĂ« sakrifikojĂ« aksesin. NĂ« njĂ« sistem tĂ« tillĂ«, kuorumet, nĂ«ngrupet qĂ« mbivendosen tĂ« nyjeve dhe qĂ« garantojnĂ« qĂ« tĂ« paktĂ«n njĂ« nyje do tĂ« mbajĂ« vlerĂ«n mĂ« tĂ« fundit, mund tĂ« bĂ«hen njĂ« zgjidhje e mirĂ« kufitare. Mund tĂ« pĂ«rballosh dĂ«shtime dhe humbje tĂ« lidhjes me disa nyje, duke vazhduar tĂ« pĂ«rgjigjesh me vlerat mĂ« tĂ« freskĂ«ta.

Megjithatë, çdo gjë ka një çmim. Skemat e replikimit me kuorum nënkuptojnë një kosto më të lartë të ruajtjes: duhet të ruash të dhëna të tepërta në disa nyje në të njëjtën kohë, për të garantuar numrin e mjaftueshëm të kopjimeve të disponueshme në momentin e problemit. Duket se nuk është e nevojshme të ruash të gjitha të dhënat në të gjitha replikat. Mund të zvogëlohet ngarkesa në ruajtje duke ruajtur të dhënat vetëm në disa nyje, dhe për skenarët e përpunimit të dështimeve, të përdoren nyje speciale (Replikat Transit).

Gjatë prezantimit do të shqyrtojmë Replikat Dëshmitar, skemën e replikimit të përdorur në Spanner dhe Megastore, dhe implementimin e kësaj koncepte në Apache Cassandra nën emrat Replikimi i Përkohshëm & Kuorume të Lira.

Dmitri Vjovkov — Goroutines tĂ« ekspozuara

19 krye tĂ« hidrĂ«s. NjĂ« pĂ«rmbledhje e gjerĂ« e programit Dmitri Ă«shtĂ« njĂ« zhvillues nĂ« Google, duke punuar nĂ« testimin dinamik tĂ« C/C++ dhe Go — Address/Memory/ThreadSanitizer, dhe nĂ« vegla tĂ« ngjashme pĂ«r bĂ«rthamĂ«n Linux. Ka kontribuar nĂ« Go njĂ« planifikues tĂ« shkallĂ«zueshĂ«m tĂ« gorutinave, poller rrjeti dhe mbledhĂ«s paralel tĂ« mbetjeve. Ai Ă«shtĂ« ekspert nĂ« shumĂ«procese, autor i njĂ« duzine algoritmash tĂ« rinj pa bllokim dhe mbajtĂ«s i Brezi i Zi Intel.

Tani pak më shumë rreth paraqitjes. Në gjuhën Go ekziston mbështetje native për shumëfijeësi në formën e gorutinave (fije të lehta) dhe kanaleve (rruaza FIFO). Falë këtyre mekanizmave, përdoruesit kanë shumë lehtësi dhe kënaqësi në shkrimin e aplikacioneve moderne shumëfijeëshe, dhe duket si magji. Siç e dimë, nuk ka asnjë magji këtu. Në këtë prezantim, Dmitri do të thellohet në nuancat e funksionimit të planifikuesit Go dhe do të tregojë sekretet e zbatimit të kësaj "magjie". Fillimisht, ai do të ofrojë një pasqyrë të komponenteve kryesore të planifikuesit, duke treguar se si funksionon. Më pas, do të njihemi më afër me aspekte të veçanta si strategjitë e parkimit/çparkimit dhe trajtimin e thirrjeve sistemike që bllokojnë. Së fundmi, Dmitri do të flasë pak për përmirësimet e mundshme në planifikues.

Dmitri Bugaychenko — ShpejtojmĂ« analizĂ«n e shpĂ«rndarĂ« tĂ« grafĂ«ve duke pĂ«rdorur skicat probabiliste dhe jo vetĂ«m

19 krye të hidrës. Një përmbledhje e gjerë e programit Dmitri ka punuar për presque 9 vjet në outsourcing, pa humbur kontaktin me universitetin dhe ambjentin shkencor. Analiza e të dhënave të mëdha në Odnoklassniki i është dukur një mundësi unike për të kombinuar përgatitjen teorike dhe themelin shkencor me zhvillimin e produkteve reale dhe të kërkuara.

Analiza e shpërndarë e grafikëve ka qenë dhe mbetet një detyrë e vështirë: kur ndodh nevoja për të marrë informacion në lidhje me lidhjet e një maja fqinje, shpesh herë të dhënat duhet të kalohen midis makinave, gjë që e rrit kohën e ekzekutimit dhe ngarkesën në infrastrukturën rrjetore. Në këtë referat do të shohim si të arrihet një përmirësim të dukshëm në procesimin, duke përdorur struktura të dhënash probabiliste ose fakte si simetria e grafikëve të miqësive në rrjetet sociale. E gjithë kjo ilustrohet me shembuj kodi në Apache Spark.

Denis Ryscov — ZvogĂ«loni kostot tuaja tĂ« ruajtjes me Replikimin Kalimtar dhe Kuorumet e Lira

19 krye të hidrës. Një përmbledhje e gjerë e programit Denis është zhvillues Cosmos DB, ekspert në fushën e verifikimit të modeleve të konsistencës, algoritmeve të konsensusit dhe transaksioneve të shpërndara. Tani ai punon në Microsoft, dhe para kësaj ka punuar në sistemet e shpërndara në Amazon dhe Yandex.

NĂ« kĂ«tĂ« raport, ne do tĂ« njohim protokollet e transaksioneve tĂ« shpĂ«rndara, tĂ« shpikura gjatĂ« viteve tĂ« fundit, qĂ« mund tĂ« zbatohen nĂ« anĂ«n e klientit mbi çdo depo tĂ« dhĂ«nash qĂ« mbĂ«shtet pĂ«rditĂ«simin kushtor (compare and set). Thelbi Ă«shtĂ« se jeta nuk pĂ«rfundon me komitin dy-fazĂ«sh; transaksionet mund tĂ« shtohen mbi çdo bazĂ« tĂ« dhĂ«nash — nĂ« nivelin e aplikacioneve, por protokollet e ndryshme (2PC, Percolator, RAMP) kanĂ« tregues tĂ« ndryshĂ«m dhe nuk janĂ« falas pĂ«r ne.

Aleksei Zinovyev — Jo tĂ« gjithĂ« algoritmet e ML arrijnĂ« nĂ« parajsĂ«n e shpĂ«rndarĂ«

19 krye tĂ« hidrĂ«s. NjĂ« pĂ«rmbledhje e gjerĂ« e programit Aleksei (zaleslaw) — Ă«shtĂ« njĂ« nga folĂ«sit tanĂ« tĂ« vjetĂ«r dhe anĂ«tar i komiteteve programore nĂ« konferenca tĂ« tjera. Trajner praktik nĂ« kompaninĂ« EPAM Systems, dhe ka miqĂ«si me Hadoop/Spark dhe big data qĂ« nga viti 2012.

Në këtë raport, Aleksei do të flasë për problemet e përshtatjes së algoritmeve klasike të mësimit të makinerive për t'u realizuar në mënyrë të shpërndara, duke u bazuar në përvojën e tij me Apache Spark ML, Apache Mahout, Apache Flink ML dhe përvojën e krijimit të Apache Ignite ML. Gjithashtu, Aleksei do të flasë për zbatimin e algoritmeve të shpërndara të ML në këto framework.

Dhe pĂ«r tĂ« pĂ«rfunduar — dy raporte nga kompania Yandex mbi Yandex Database.

Vladislav Kuznetsov — Yandex Database — si ne sigurojmĂ« qĂ«ndrueshmĂ«rinĂ«

19 krye të hidrës. Një përmbledhje e gjerë e programit Vladislav është zhvillues në Yandex në grupin e platformave të shpërndara. Yandex Database është një DBMS georaspeditur, horizontalisht i shkallëzueshëm dhe me qëndrueshmëri, që përballon dështime të disqeve, serverëve, raftëve dhe qendrave të të dhënave pa prishur konsistencën. Për të siguruar qëndrueshmërinë, përdoret një algoritëm i brendshëm për arritjen e konsensusit të shpërndarë, si dhe një sërë zgjidhjesh teknike, të cilat do të shqyrtohen në raport. Raporti mund të jetë i interesant për zhvilluesit e DBMS-ve, si dhe për zhvilluesit e zgjidhjeve aplikative mbi bazën e DBMS-ve.

Semyon Checherinda — Transaksionet e shpĂ«rndara nĂ« YDB

19 krye të hidrës. Një përmbledhje e gjerë e programit Semyon është zhvillues në grupin e platformave të shpërndara në Yandex, punon mbi mundësinë e përdorimit me shumë qira të instalimit të YDB.

Baza e të dhënave Yandex është krijuar për kërkesa OLTP dhe përmbush kërkesat ACID për sistemin transaksional. Në raport do të shqyrtohet algoritmi i planifikimit të transaksioneve që qëndron në bazë të sistemit transaksional YDB. Do të shqyrtojmë se cilat entitete marrin pjesë në transaksione, kush cakton rendin global të transaksioneve, si arrihet atomikësia e transaksioneve, besueshmëria dhe niveli i rreptë i izolimit. Në shembullin e një problemi të zakonshëm, do të shqyrtojmë realizimet e transaksioneve duke përdorur dy faza të angazhimit dhe transaksione determinizuese. Do të diskutojmë ndryshimet midis tyre.

ÇfarĂ« ndodh mĂ« tej?

Programi i konferencës vazhdon të mbushet me referate të reja. Në veçanti, ne presim një referat nga Nikita Koval (ndkoval) nga JetBrains dhe Oleg Anastasyev (m0nstermind) nga kompania Odnoklassniki. Nikita merret me algoritmet për korutat në ekipin Kotlin, ndërsa Oleg zhvillon arkitekturën dhe zgjidhjet për sisteme të ngarkuara të larta në platformën e kompanisë Odnoklassniki. Për më tepër, ka një vend të kushtëzuar bosh, me kandidatët për të cilët komiteti programor po punon aktualisht.

Konferenca Hydra do tĂ« zhvillohet mĂ« 11-12 korrik nĂ« Sankt Petersburg. Biletat mund tĂ« bleni nĂ« faqen zyrtare. VĂ«mendje pĂ«r biletat Online — nĂ«se pĂ«r ndonjĂ« arsye nuk mund tĂ« arrini nĂ« ShĂ«n Petersburg nĂ« kĂ«to ditĂ«.

Do të takojmë në Hydra!

Burimi: habr.com

Bleni hostim tĂ« besueshĂ«m pĂ«r faqe me mbrojtje nga DDoS, serverĂ« VPS VDS đŸ”„ Bleni hostim tĂ« besueshĂ«m pĂ«r faqe me mbrojtje nga DDoS, serverĂ« VPS VDS | ProHoster