19 hydrahuvuden. Bra översikt över programmet

En konferens kommer att äga rum den 11-12 juli i St. Petersburg hydra, dedikerad till utvecklingen av parallella och distribuerade system. Tricket med Hydra är att det förenar coola vetenskapsmän (som vanligtvis bara kan hittas på utländska vetenskapliga konferenser) och kända praktiserande ingenjörer till ett stort program i skärningspunkten mellan vetenskap och praktik.

Hydra är en av våra viktigaste konferenser under de senaste åren. Det föregicks av mycket seriösa förberedelser, val av talare och rapporter. Förra veckan om detta habro intervju kom ut med direktören för JUG.ru Group, Alexey Fedorov (23derevo).

Vi redan berättat om tre viktiga deltagare, grundarna av teorin om distribuerade system - Leslie Lamport, Maurice Herlihy och Michael Scott. Det är dags att prata mer i detalj om hela programmet!

19 hydrahuvuden. Bra översikt över programmet

Motivation

Om du är involverad i programmering, så har du på ett eller annat sätt att göra med multithreading och distribuerad datoranvändning. Experter inom de relevanta områdena arbetar direkt med dem, men underförstått tittar distributionen på oss från alla håll: i alla flerkärniga datorer eller distribuerade tjänster finns det något som utför beräkningar parallellt.

Det finns många konferenser som täcker olika aspekter av applikationsprogrammering. På andra sidan spektrumet har vi specialiserade vetenskapliga skolor som avslöjar stora mängder komplex teori i föreläsningsformat. Till exempel, parallellt med Hydra i St Petersburg finns SPTDC skola. På Hydra-konferensen försökte vi föra samman hård praxis, vetenskap och allt i deras skärningspunkt.

Tänk på detta: vi lever i en fantastisk tid när du personligen kan träffa grundarna av det vetenskaps- och teknikområde som vi studerar. Fysiker kommer inte att träffa varken Newton eller Einstein – tåget har gått. Men bredvid oss ​​bor fortfarande de som skapade grunden för teorin om distribuerade system, uppfann populära programmeringsspråk och för första gången förkroppsligade allt detta i fungerande prototyper. Dessa personer slutade inte sina jobb halvvägs, de arbetar just nu med angelägna frågor på världskända universitet och företag, och är de största källorna till kunskap och erfarenhet idag.

Å andra sidan förblir möjligheten att träffa dem vanligtvis rent teoretisk: få av oss kan ständigt övervaka offentliga evenemang vid något University of Rochester, och sedan rusa till USA och tillbaka för en föreläsning med Michael Scott. Att besöka alla Hydra-medlemmar skulle kosta en mindre förmögenhet, om inte avgrunden av bortkastad tid räknas (även om det låter som ett intressant uppdrag).

Å andra sidan har vi många toppingenjörer som jobbar med pressande problem i distribuerade system just nu, och de har definitivt mycket att berätta. Men här är problemet - de работают, och deras tid är värdefull. Ja, om du är anställd hos Microsoft, Google eller JetBrains ökar sannolikheten att träffa en av de kända högtalarna vid ett internt evenemang kraftigt, men i allmänhet, nej, detta händer inte varje dag.

På så sätt åstadkommer Hydrakonferensen en viktig uppgift som de flesta av oss inte kan göra på egen hand - på ett ställe och på en gång samlar den människor vars idéer eller interaktioner med vilka kan förändra ditt liv. Jag medger att alla inte behöver distribuerade system eller några komplexa grundläggande saker. Du kan programmera CRUDs i PHP för resten av ditt liv och förbli helt nöjd. Men den som behöver det, det här är din chans.

Det har gått ganska lång tid sedan det första tillkännagivandet av Hydrakonferensen på Habré. Under den här tiden har mycket arbete gjorts – och nu har vi en lista på nästan alla rapporter. Inga tröga entrådiga algoritmer, bara ren distribuerad hardcore! Låt oss avsluta med allmänna ord och se vad vi har på handen nu.

Keynotes

Keynotes börjar och avslutar konferensens dagar. Vanligtvis är poängen med en inledande keynote att bestämma den allmänna andan och riktningen för konferensen. Den avslutande keynoten drar en linje och förklarar hur vi kan leva med de kunskaper och färdigheter som förvärvats under konferensen. Början och slutet: vad som minns bäst, och i allmänhet, har ökat betydelse.

Cliff Klicka Den H2O distribuerade K/V-algoritmen

19 hydrahuvuden. Bra översikt över programmet Cliff är en legend i Java-världen. I slutet av 90-talet skrev han en uppsats med titeln för sin doktorsavhandling "Kombinera analyser, kombinera optimeringar", som en tid senare blev grunden för HotSpot JVM Server Compiler. Två år senare arbetade han redan på Sun Microsystems på JVM och visade för hela världen att JIT har rätt att existera. Hela den här historien om hur Java är en av de snabbaste moderna körtiderna med de smartaste och snabbaste optimeringarna kom från Cliff Click. I början trodde man att om något är tillgängligt för en statisk kompilator, behöver du inte ens försöka tjata om det. Tack vare Cliffs och teamets arbete började alla nya språk skapas med idén om JIT-kompilering som standard. Naturligtvis var detta inte ett enmansjobb, men Cliff spelade en mycket viktig roll i det.

I den inledande keynoten kommer Cliff att prata om sin andra strävan - H20, en in-memory-plattform för distribuerad och skalbar maskininlärning för industriella applikationer. Eller mer exakt, om den distribuerade lagringen av nyckel-värdepar inuti den. Detta är en mycket snabb förvaring med många intressanta egenskaper (den exakta listan finns i beskrivning), som tillåter användning av liknande lösningar i matematiken för streaming av stora data.

En annan rapport som Cliff kommer att ge är - Azul Hardware Transactional Memory-upplevelse. En annan del av hans biografi - tio år jobba på Azul, där han uppdaterade och förbättrade många saker i Azuls hårdvaru- och teknologistacken: JIT-kompilatorer, runtime, trådmodell, felhantering, stackhantering, hårdvaruavbrott, klassladdning och så vidare och så vidare - ja, du får aning.

Det mest intressanta började när de gjorde hårdvara för ett stort företag - en superdator för att köra Java. Det var en ganska innovativ sak, skräddarsydd specifikt för Java, som har speciella krav - läsminnesbarriärer för skräpinsamling i låg paus, arrayer med gränskontroll, virtuella samtal... En av de coolaste teknologierna är transaktionsminne för hårdvara. Hela L1 av vilken som helst av de 864 kärnorna skulle kunna delta i transaktionsskrivning, vilket är särskilt viktigt för att arbeta med lås i Java (synkroniserade block kan fungera parallellt så länge det inte finns någon riktig minneskonflikt). Men den vackra idén krossades av den hårda verkligheten - och i det här föredraget kommer Cliff att berätta varför HTM och STM inte är särskilt väl lämpade för de praktiska behoven av flertrådig datoranvändning.

Michael Scott - Dubbla datastrukturer

19 hydrahuvuden. Bra översikt över programmet Michael Scott - Professor i datavetenskap vid University of Rochester, som ödet förband honom med redan 34 år gammal, och vid sitt hem University of Wisconsin–Madison var han dekanus i fem år. Han forskar och undervisar studenter om parallell och distribuerad programmering och språkdesign.

Hela världen känner Michael tack vare läroboken "Programmeringsspråkpragmatik", vars senaste upplaga publicerades relativt nyligen - 2015. Hans jobb "Algoritmer för skalbar synkronisering på multiprocessorer med delat minne" mottagen Dijkstra-priset som en av de mest kända inom området distribuerad datoranvändning och ljuger öppet vid University of Rochester Online Library. Du kanske också känner honom som författaren till själva Michael-Scott-algoritmen från "Enkla, snabba och praktiska icke-blockerande och blockerande algoritmer för samtidiga köer".

När det gäller Java-världen är detta ett specialfall: tillsammans med Doug Lea utvecklade han de icke-blockerande algoritmerna och synkrona köerna som Java-bibliotek fungerar på. Det är precis vad keynoten "Dual data structures" kommer att handla om - introduktionen av dessa strukturer i Java SE 6 har förbättrat prestandan med 10 gånger java.util.concurrent.ThreadPoolExecutor. Om du i förväg undrar vad dessa "dubbla datastrukturer" är, så finns det information om det relaterat arbete.

Maurice Herlihy - Blockkedjor och framtiden för distribuerad datoranvändning

19 hydrahuvuden. Bra översikt över programmet Maurice Herlihy - vinnare av två Dijkstra-priser. Den första är för arbete på "Väntefri synkronisering" (Brown University), och den andra, nyare - "Transaktionsminne: arkitektoniskt stöd för låsfria datastrukturer" (Virginia Tech University). Dijkstra-priset uppmärksammar arbete vars betydelse och inverkan har varit synlig i minst tio år, och Maurice är helt klart en av de mest kända experterna på området. Han arbetar för närvarande som professor vid Brown University och har en stycke lång lista över prestationer.

I denna avslutande keynote kommer Maurice att prata om teorin och praktiken av blockkedjedistribuerade system ur synvinkeln av klassikerna inom distribuerad datoranvändning och hur det förenklar många relaterade problem. Det här är en rapport som uteslutande handlar om konferensens ämne – inte alls om gruvhype, utan snarare om hur vår kunskap kan användas fantastiskt effektivt och ändamålsenligt i förhållande till en mängd olika uppgifter.

I juli 2017 kom Maurice redan till Ryssland för att gå på SPTDC-skolan, deltog i JUG.ru-träffen och inspelningen kan ses på YouTube:

Huvudprogram

Därefter kommer en kort översikt över de rapporter som ingår i programmet. Några av rapporterna beskrivs här i detalj, andra mer kortfattat. Långa beskrivningar gick främst till engelskspråkiga rapporter som krävde länkar till vetenskapliga artiklar, termer på Wikipedia och så vidare. Hela listan finns tillgänglig se på konferensens hemsida. Listan på hemsidan kommer att uppdateras och kompletteras.

Leslie Lamport - Q & A

19 hydrahuvuden. Bra översikt över programmet Leslie Lamport är författare till framstående verk inom distribuerad datoranvändning. "Latex" står för "Lamport TeX". Det var han som först, redan 1979, introducerade konceptet konsekvent konsistens, och hans artikel "Hur man gör en multiprocessordator som korrekt kör multiprocessprogram" fick Dijkstra-priset.

Detta är den mest ovanliga delen av programmet när det gäller format, eftersom det inte ens är en rapport, utan en frågestund. När en betydande del av publiken redan är bekant med (eller kan bli bekant) med alla möjliga verk baserade på "Lamports teori", hans egna artiklar och rapporter, är det viktigare att lägga all tillgänglig tid på direkt kommunikation.

Tanken är enkel – du tittar på två reportage på YouTube: "Programmering borde vara mer än kodning" и "Om du inte skriver ett program, använd inte ett programmeringsspråk" och förbered minst en fråga, och Leslie svarar.

Den första av dessa två videor har vi redan förvandlats till en habroartikel. Om du inte har en timmes tid att se videon kan du snabbt läsa allt i textform.

Obs: Det finns många fler Leslie Lamport-videor på YouTube. Till exempel finns det en utmärkt TLA+ kurs. En offlineversion av hela denna kurs finns tillgänglig på författarens hemsida, och han laddade upp den till YouTube för enklare visning på mobila enheter.

Martin Kleppmann - Synkronisera data mellan användarenheter för distribuerat samarbete

19 hydrahuvuden. Bra översikt över programmet Martin Kleppmann är en forskare vid University of Cambridge och arbetar med CRDT och formell verifiering av algoritmer. Martins bok "Designa dataintensiva applikationer", som publicerades 2017, visade sig vara mycket framgångsrik och hamnade på bästsäljarlistor inom området datalagring och bearbetning. Kevin Scott, CTO på Microsoft, sade en gång: “Den här boken borde vara ett måste för mjukvaruingenjörer. Detta är en sällsynt resurs som kombinerar teori och praktik för att hjälpa utvecklare smartare att designa och implementera infrastruktur och datasystem." Skaparen av Kafka och CTO för Confluent, Jay Kreps, sa något liknande.

Innan han gick in i akademisk forskning arbetade Martin inom industrin och var med och grundade två framgångsrika start-ups:

  • Rapportiv, dedikerad till att visa den sociala profilen för kontakter från din e-post, som LinkedIn köpte 2012;
  • Go Test It, en tjänst för automatisk testning av webbplatser i olika webbläsare, som RedGate köpte 2009.

I allmänhet har Martin, även om han är mindre känd än våra keynotes, redan kunnat ge ett visst bidrag till utvecklingen av distribuerad datoranvändning och till branschen.

I detta föredrag kommer Martin att prata om ett ämne som ligger närmare hans akademiska forskning. I Google Dokument och liknande samredigeringssoffor avser "samarbetsredigering" en replikeringsuppgift: varje användare har sin egen replik av det delade dokumentet, som de sedan ändrar, och alla ändringar skickas över nätverket till resten av deltagare. Ändringar av dokument offline leder till tillfällig inkonsekvens av dokumentet i förhållande till andra deltagare, och omsynkronisering kräver konflikthantering. Det är precis vad de finns för Konfliktfria replikerade datatyper (CRDT) är faktiskt en ganska ny sak, vars kärna formulerades först 2011. Det här föredraget diskuterar vad som har hänt sedan dess i CRDT-världen, vilka de senaste framstegen är, tillvägagångssättet för att skapa lokala först-applikationer i allmänhet och användningen av ett bibliotek med öppen källkod Automerge särskilt.

Nästa vecka publicerar vi en lång intervju med Martin på Habré, det ska bli intressant.

Pedro Ramalhete - Väntefria datastrukturer och väntefria transaktioner

19 hydrahuvuden. Bra översikt över programmet Pedro arbetar på Cisco och har utvecklat parallella algoritmer under de senaste tio åren eller så, inklusive synkroniseringsmekanismer, lås- och väntefria datastrukturer och allt du kan tänka dig om detta ämne. Hans nuvarande forsknings- och ingenjörsintressen fokuserar på Universal Constructions, Software Transactional Memory, Persistent Memory och liknande teknologier som möjliggör korrekta, skalbara och feltoleranta applikationer. Han är också författare till en blogg som är vida känd i snäva kretsar Concurrency Freaks.

De flesta flertrådade applikationer körs nu på parallella datastrukturer, från användningen av meddelandeköer mellan aktörer till indexerade datastrukturer i nyckel-värdeslager. De har arbetat framgångsrikt i Java JDK i många år, och de läggs sakta till i C++.

Det enklaste sättet att implementera en parallell datastruktur är en sekventiell (entrådig) ​​implementering där metoder skyddas av mutexes. Detta är tillgängligt för alla juni, men har uppenbara problem med skalning och prestanda. Samtidigt klarar låsfria och väntefria datastrukturer inte bara bättre fel, utan har också en bättre prestandaprofil – deras utveckling kräver dock djup expertis och anpassning till en specifik applikation. En felaktig kodrad räcker för att bryta allt.

Hur kan vi göra det så att även en icke-expert kan designa och implementera sådana datastrukturer? Det är känt att vilken sekventiell algoritm som helst kan göras trådsäker med antingen universell utformning, eller transaktionsminne. För det första kan de sänka inträdesbarriären för att lösa detta problem. Båda lösningarna leder dock vanligtvis till ineffektiv implementering. Pedro kommer att prata om hur de lyckades göra dessa designs mer effektiva och hur du kan använda dem för dina algoritmer.

Heidi Howard - Befriar distribuerad konsensus

19 hydrahuvuden. Bra översikt över programmet Heidi Howard är, precis som Martin, en distribuerad systemforskare vid University of Cambridge. Hennes specialiteter är konsekvens, feltolerans, prestation och distribuerad konsensus. Hon är mest känd för sin generalisering av Paxos-algoritmen som kallas Flexibel Paxos.

Minns att Paxos är en familj av protokoll för att lösa problemet med konsensus i ett nätverk av opålitliga datorer, baserat på Leslie Lamports arbete. Således arbetar några av våra talare med problem som ursprungligen föreslogs av våra andra talare - och det här är underbart.

Möjligheten att hitta konsensus bland flera värdar – för adressering, ledareval, blockering eller samordning – är en grundläggande fråga i moderna distribuerade system. Paxos är nu det främsta sättet att lösa konsensusproblem, och det pågår mycket forskning kring det för att utöka och optimera algoritmen för olika praktiska behov.

I det här föredraget kommer vi att återkomma till den teoretiska grunden för Paxos, mildra de ursprungliga kraven och generalisera algoritmen. Vi kommer att se att Paxos i grunden bara är ett alternativ bland ett stort antal konsensusmetoder, och att andra punkter på spektrumet också är mycket användbara för att bygga bra distribuerade system.

Alex Petrov — Minska dina lagringskostnader med Transient Replication och Cheap Quorums

19 hydrahuvuden. Bra översikt över programmet Alex är en specialist på databas och lagringssystem, och ännu viktigare för oss, en engagerad inom Cassandra. Han arbetar för närvarande på en bok, Database Internals, med O'Reilly.

För system med eventuell konsistens (i rysk terminologi - "ultimativ konsistens"), efter att en nod kraschar eller en nätverksdelning måste du lösa följande dilemma: antingen fortsätta att utföra förfrågningar, offra konsistens eller vägra att utföra dem och offra tillgängligheten. I ett sådant system kan kvorum, överlappande delmängder av noder och säkerställande av att minst en nod innehåller det senaste värdet, vara en bra kantlösning. Du kan överleva fel och förlust av anslutning till vissa noder samtidigt som du fortsätter att svara med de senaste värdena.

Allt har dock sitt pris. Ett kvorumreplikeringsschema innebär ökade lagringskostnader: redundant data måste lagras på flera noder samtidigt för att säkerställa att det finns tillräckligt med kopior tillgängliga när ett problem uppstår. Det visar sig att du inte behöver lagra all data på alla replikerna. Du kan minska belastningen på lagringen om du lagrar data endast på en del av noderna och använder speciella noder (Transient Replica) för felhanteringsscenarier.

Under rapportens gång kommer vi att överväga Vittne kopior, replikeringsschemat som används i Spanner и mega butik, och implementeringen av detta koncept i Apache Cassandra kallas Övergående replikering och billiga kvorum.

Dmitry Vyukov - Goroutiner exponerade

19 hydrahuvuden. Bra översikt över programmet Dmitry är en utvecklare på Google som arbetar med dynamiska tester för C/C++ och Go - Address/Memory/ThreadSanitizer och liknande verktyg för Linux-kärnan. Bidragit till Go en skalbar goroutine-schemaläggare, en nätverkspolare och en parallell sophämtare. Han är expert på multithreading, författare till ett dussin nya icke-blockerande algoritmer och är ägare till Svart bälte Intel.

Nu lite om själva rapporten. Go-språket har inbyggt stöd för multithreading i form av goroutiner (lätta trådar) och kanaler (FIFO-köer). Dessa mekanismer gör det väldigt enkelt och roligt för användare att skriva moderna flertrådiga applikationer, och det ser ut som magi. Som vi förstår finns det ingen magi här. I det här föredraget kommer Dmitry att fördjupa sig i Go-schemaläggarens krångligheter och visa hemligheterna med att implementera denna "magi". Först kommer han att ge en översikt över huvudkomponenterna i schemaläggaren och berätta hur det fungerar. Därefter kommer vi att titta närmare på individuella aspekter som strategin för parkering/avparkering och hantering av blockeringssystemanrop. Slutligen kommer Dmitry att prata lite om möjliga förbättringar av schemaläggaren.

Dmitry Bugaichenko - Påskynda distribuerad grafanalys med probabilistiska skisser och mer

19 hydrahuvuden. Bra översikt över programmet Dmitry arbetade med outsourcing i nästan 9 år utan att tappa kontakten med universitetet och det vetenskapliga samfundet. Big data-analys i Odnoklassniki blev för honom en unik chans att kombinera teoretisk utbildning och vetenskaplig grund med utveckling av riktiga efterfrågade produkter.

Distribuerad grafanalys har varit och förblir en svår uppgift: när det blir nödvändigt att få information om anslutningarna till ett angränsande vertex måste data ofta överföras mellan maskiner, vilket leder till ökad exekveringstid och belastning på nätverksinfrastrukturen. I det här föredraget kommer vi att se hur du kan få betydande bearbetningshastigheter genom att använda probabilistiska datastrukturer eller fakta som vänskapsdiagrammets symmetri i ett socialt nätverk. Allt detta illustreras med kodexempel i Apache Spark.

Denis Rystsov - Minska dina lagringskostnader med Transient Replication och Cheap Quorums

19 hydrahuvuden. Bra översikt över programmet Denis - utvecklare Cosmos DB, en expert på att kontrollera konsistensmodeller, konsensusalgoritmer och distribuerade transaktioner. Han arbetar för närvarande på Microsoft, och innan dess arbetade han med distribuerade system på Amazon och Yandex.

I det här föredraget ska vi ta en titt på de distribuerade transaktionsprotokollen som har uppfunnits under de senaste åren, som kan implementeras på klientsidan ovanpå vilket datalager som helst som stöder villkorlig uppdatering (jämför och ställ in). Summan av kardemumman är att livet inte slutar med en två-fas commit, transaktioner kan läggas till ovanpå alla databaser - på applikationsnivå, men olika protokoll (2PC, Percolator, RAMP) har olika avvägningar och ges inte till oss gratis.

Alexey Zinoviev - Det är inte alla ML-algoritmer som når det distribuerade himmelriket

19 hydrahuvuden. Bra översikt över programmet Alexei (zaleslaw) är mångårig talare och medlem i programkommittéer vid andra konferenser. Praktiserande tränare på EPAM Systems och har varit vän med Hadoop/Spark och annan big data sedan 2012.

I det här föredraget kommer Alexey att prata om problemen med att anpassa klassiska maskininlärningsalgoritmer för exekvering i distribuerat läge baserat på hans erfarenhet av att arbeta med Apache Spark ML, Apache Mahout, Apache Flink ML och erfarenheten av att skapa Apache Ignite ML. Alexey kommer också att prata om implementeringen av distribuerade ML-algoritmer i dessa ramverk.

Och slutligen två rapporter från Yandex om Yandex Database.

Vladislav Kuznetsov - Yandex Database - hur vi säkerställer feltolerans

19 hydrahuvuden. Bra översikt över programmet Vladislav är utvecklare på Yandex i den distribuerade plattformsgruppen. Yandex Database är ett horisontellt skalbart, geodistribuerat, feltolerant DBMS som kan motstå fel på diskar, servrar, rack och datacenter utan att förlora konsekvens. För att säkerställa feltolerans används en egenutvecklad algoritm för att uppnå distribuerad konsensus, samt ett antal tekniska lösningar som diskuteras i detalj i rapporten. Rapporten kan vara av intresse för både DBMS-utvecklare och utvecklare av applikationslösningar baserade på DBMS.

Semyon Checherinda - Distribuerade transaktioner i YDB

19 hydrahuvuden. Bra översikt över programmet Semyon är en utvecklare i den distribuerade plattformsgruppen på Yandex och arbetar med möjligheten att använda YDB-installationen med flera hyresgäster.

Yandex Database är designad för OLTP-frågor och uppfyller ACID-kraven för ett transaktionssystem. I den här rapporten kommer vi att överväga transaktionsschemaläggningsalgoritmen som ligger till grund för YDB-transaktionssystemet. Låt oss titta på vilka enheter som deltar i transaktioner, vem som tilldelar global ordning till transaktioner, hur transaktionsatomicitet, tillförlitlighet och en strikt isoleringsnivå uppnås. Med hjälp av ett vanligt problem som ett exempel, låt oss titta på transaktionsimplementeringar med tvåfas-commits och deterministiska transaktioner. Låt oss diskutera deras skillnader.

Vad händer nu?

Konferensprogrammet fortsätter att fyllas med nya rapporter. I synnerhet förväntar vi oss en rapport från Nikita Koval (ndkoval) från JetBrains och Oleg Anastasyev (m0nstermind) från företaget Odnoklassniki. Nikita arbetar med algoritmer för koroutiner i Kotlin-teamet, och Oleg utvecklar arkitektur och lösningar för högbelastningssystem i Odnoklassniki-plattformen. Dessutom finns ytterligare 1 villkorligt tom plats, programkommittén jobbar med kandidater till det just nu.

Hydra-konferensen äger rum den 11-12 juli i St. Petersburg. Biljetter finns tillgängliga köp på den officiella webbplatsen. Var uppmärksam på tillgången på onlinebiljetter - om du av någon anledning inte kan ta dig till St. Petersburg dessa dagar.

Vi ses på Hydra!

Källa: will.com

Lägg en kommentar