11-12 korrik në Shën Petersburg do të mbahet konferenca , 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, me drejtorin e kompanisë JUG.ru Group, Aleksei Fedorov ().
Ne 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!

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 . 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 â
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 , 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 â , 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Ă« ), 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Ă« â . NjĂ« tjetĂ«r pjesĂ« e biografisĂ« sĂ« tij Ă«shtĂ« dhjetĂ« vjet , 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 â
â profesor i ShkencĂ«s Kompjuterike nĂ« Universitetin e Rochester-it, me tĂ« cilin fati e lidh atĂ« , 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 , edicioni mĂ« i fundit i tĂ« cilit u publikua relativisht kohĂ«t e fundit â nĂ« vitin 2015. Puna e tij mori si njĂ« prej mĂ« tĂ« njohurave nĂ« fushĂ«n e llogaritjeve tĂ« distribuar dhe nĂ« bibliotekĂ«n online tĂ« Universitetit Rochester. Gjithashtu mund ta njihni atĂ« si autorin e atij algoritmi tĂ« famshĂ«m tĂ« Michael-Scott nga .
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Ă« .
Maurice Herlihy â
â mbajtĂ«s i dy çmimeve Dijkstra. E para â pĂ«r punĂ«n mbi (Universiteti Brown), dhe e dyta, mĂ« e reja â (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:

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Ă« . Lista nĂ« faqe do tĂ« pĂ«rditĂ«sohet dhe do tĂ« plotĂ«sohet.
Leslie Lamport â
Leslie Lamport është autori i punimeve thelbësore në llogaritë e shpërndara. ndërtohet si «Lamport TeX». Ai e futi për herë të parë konceptin , dhe artikulli i tij 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: dhe dhe pĂ«rgatitni tĂ« paktĂ«n njĂ« pyetje, ndĂ«rsa Leslie pĂ«rgjigjet.
E para nga këto dy video tashmë e kemi . 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 . Versioni offline i të gjithë këtij kursi është në , ndërsa ai e ka ngarkuar atë në YouTube për shikim më të lehtë në pajisjet mobile.
Martin Kleppmann â
Martin Kleppmann është një hulumtues në Universitetin e Kembrixhit, që punon mbi CRDT dhe verifikimin formal të algoritmeve. Libri i Martin , 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, : «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 (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 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 â
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. .
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 , 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 â
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 .
KujtojmĂ« se â 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 â
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Ă« . Ai aktualisht po punon me OâReilly mbi librin Database Internals.
PĂ«r sistemet me (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ë , skemën e replikimit të përdorur në dhe , dhe implementimin e kësaj koncepte në Apache Cassandra nën emrat .
Dmitri Vjovkov â
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 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 â
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 â
Denis është zhvillues , 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 â
Aleksei () â Ă«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 â
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 â
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 () nga JetBrains dhe Oleg Anastasyev () 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Ă« . 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
