Slide 1

Slide 1 text

Velkommen til min undervisning. Distribuerede systemer på CBS, september 2016, diverse papers

Slide 2

Slide 2 text

[email protected]. Skriv til mig, hvis I har brug for hjælp.

Slide 3

Slide 3 text

Her ses kernen i Mac OS X 10.11.6.

Slide 4

Slide 4 text

Her ses kernen i Mac OS X 10.12.

Slide 5

Slide 5 text

Hvilket programmeringssprog skal man vælge til klienten? Det er et godt spørgsmål!

Slide 6

Slide 6 text

Der findes jo et kæmpe udvalg af programmeringssprog - ovenstående er slet ikke dem alle.

Slide 7

Slide 7 text

Hvis jeg skulle vælge… Bum, bum, bum.

Slide 8

Slide 8 text

Vi skal tale om skalering. Et emne som bør optage alle, der laver services, der bruges af mange. Og så er det et buzzword.

Slide 9

Slide 9 text

Cluster-Based Scalable Network Services, Lessons from Giant-Scale Services og The Google File System. Sådan. Tre artikler, som vi skal tale om i dag - to af dem er fra Berkeley-universitetet.

Slide 10

Slide 10 text

Hvad er skalering? Kom med et par friske bud!

Slide 11

Slide 11 text

Den korte version. Scalability, a computer's or network's ability to function as the number of users increases.

Slide 12

Slide 12 text

Det er for så vidt et generelt begreb, der fx også dækker virksomheder, trafik og meget mere. Tænk fx på ringbanen, som er skalering af den offentlige transport.

Slide 13

Slide 13 text

Et citat fra 1965 af Fernando J. Corbató og Victor A. Vyssotsky. Such systems must run continuously and reliably 7 days a week, 24 hours a day and must be capable of meeting wide service demands. Because the system must ultimately be comprehensive and able to adapt to unknown future requirements, its framework must be general, and capable of evolving over time.

Slide 14

Slide 14 text

Hvornår har I sidst oplevet noget, der ikke fungerede? Prøv at tænke over det.

Slide 15

Slide 15 text

Når noget skalerer, så fungerer den samme service på den samme måde når antallet af brugere og udbuddet af hardware stiger. Og det foregår som minimum lineært.

Slide 16

Slide 16 text

Når en service er tilgængelig, så skal den være det hele tiden på trods af fejl i hardware eller software. Hvis en service går ned, så er den jo ikke tilgængelig - available - mere.

Slide 17

Slide 17 text

Når en service skal kunne betale sig, så skal det ikke koste en milliard at udvide med flere servere. Det er også en skaleringsparameter.

Slide 18

Slide 18 text

Bemærk at de nævner clusters of workstations i deres skriv. Hvorfor nævner det specifikt workstations, altså almindelige arbejdscomputere?

Slide 19

Slide 19 text

Det her er ikke et cluster of workstations.

Slide 20

Slide 20 text

Det her er heller ikke et cluster of workstations.

Slide 21

Slide 21 text

Tænk på hvordan det var engang og hvordan det er nu. Mainframe Cluster

Slide 22

Slide 22 text

Clusters er smarte fordi de skalerer, tilsammen er pålidelige og er relativt billige at bygge. Det er derfor vi godt kan lide clusters.

Slide 23

Slide 23 text

Husk at det ikke betyder at alle computere i et cluster er pålidelige. Det betyder det netop ikke. Blot lige en påmindelse.

Slide 24

Slide 24 text

Couch? Cluster of unreliable commodity hardware.

Slide 25

Slide 25 text

Sidstnævnte ord er interessante at bide mærke i. To summarize, clusters have significant advantages in scalability, growth, availability, and cost. Although fundamental, these advantages are not easy to realize.

Slide 26

Slide 26 text

Jeg nævnte Folding@home sidst.

Slide 27

Slide 27 text

Hvis alt er godt med clusters, hvorfor så ikke bruge dem til alle systemer? Et relevant spørgsmål. Der må jo være en bagside af medaljen…

Slide 28

Slide 28 text

Det kan være besværligt at vedligeholde et cluster, fordi man skal holde styr på mange servere. Eller administrere et cluster, med andre ord.

Slide 29

Slide 29 text

Det er ikke altid muligt at have en hel service (system) spejlet på hver enkelt server i et cluster. Dermed kan man tvinges til at opdele sit cluster, så forskellige servere har forskellige opgaver.

Slide 30

Slide 30 text

Det er ofte en udfordring for alle servere i et cluster at blive enige om en værdi, en fælles sandhed. Det er en udfordring at skabe shared state, som der står i artiklen.

Slide 31

Slide 31 text

Soft state kunne fx være logging af hændelser med henblik på genskabelse af selvsamme ved fejl. Soft state, which can be regenerated at the expense of additional computation or file I/O, is exploited to improve performance; data is not durable.

Slide 32

Slide 32 text

Fault-tolerance er et centralt begreb i distribuerede systemer. Det er evnen til at håndtere fejl, når tingene går ned. For det gør de - ofte!

Slide 33

Slide 33 text

At være fejltolerant, så at sige, handler om at spejle data flere forskellige steder og dermed gøre data tilgængeligt fra forskellige kilder. Det er evnen til at håndtere fejl, når tingene går ned. For det gør de - ofte!

Slide 34

Slide 34 text

Hvordan gør man data tilgængeligt fra forskellige kilder? Det kan fx gøres via sharding eller replication. Og hvad går det så ud på?

Slide 35

Slide 35 text

Okay, okay. De er jo ikke dødsfjender, men de repræsenterer forskellige tilgange. vs.

Slide 36

Slide 36 text

Vi kan ikke gå videre uden at vende Amazon.

Slide 37

Slide 37 text

Hvorfor tror I at Amazon har servere, som I kan leje? Prøv lige at tænke over det en gang. De sælger jo bøger og film og så videre?

Slide 38

Slide 38 text

Det er på grund af julen - hvor hyggeligt!

Slide 39

Slide 39 text

100.000.000.000 rækker i deres database. Puha. Amazon har købt meget udstyr - og har været nødt til at skifte fra SQL til NoSQL.

Slide 40

Slide 40 text

Det bringer os videre til det, der sker når man oplever meget aktivitet: bursts. Det har I uden tvivl oplevet før.

Slide 41

Slide 41 text

Tænk på Billetnet eller ticketmaster, som jo købte dem.

Slide 42

Slide 42 text

I kender det også fra SKAT og deres hjemmeside.

Slide 43

Slide 43 text

Load balancing. SKATs løsning er et udtryk for et forsøg på at skabe balance i tingene.

Slide 44

Slide 44 text

Den finder ud af hvilken server, der skal modtage en forespørgsel. Server 1 Server 2 Server 3 Server 4 Load balancer

Slide 45

Slide 45 text

Caching er kunsten at gemme noget, som man sender til andre uden at opdatere det hver gang. facebook og jeres venner derinde er et godt eksempel på det.

Slide 46

Slide 46 text

Man kan cache stort set alt, fx blogindlæg, udregninger af visninger på YouTube eller bankinformationer. Det er normal praksis ikke at lave SQL-kald i en database ved hvert page load.

Slide 47

Slide 47 text

Jeg er gået ind på cbs.dk her.

Slide 48

Slide 48 text

Jeg er gået ind på cbs.dk her.

Slide 49

Slide 49 text

Jeg er gået ind på cbs.dk her.

Slide 50

Slide 50 text

Husk i øvrigt at Internettet jo bare er det her.

Slide 51

Slide 51 text

Pause.

Slide 52

Slide 52 text

Det skal vi tale om nu. Giant-scale services.

Slide 53

Slide 53 text

Google er et godt eksempel.

Slide 54

Slide 54 text

facebook er også.

Slide 55

Slide 55 text

Vidste I i øvrigt at det oprindelige facebook-logo er lavet af en dansker?

Slide 56

Slide 56 text

Overordnet set. Når vi taler om giant-scale services, så består de ofte af klienter, et netværk, load balancers, servere og fysiske datalag.

Slide 57

Slide 57 text

Det betyder at de helst ikke må gå ned. Hvordan undgår man så det? Vi er afhængige af giant-scale services hver dag og vi er afhængige af at de fungerer som de skal.

Slide 58

Slide 58 text

Hvis der er 2 milliarder mennesker om 1 server hos facebook, så bliver det stramt. Skalering går blandt andet ud på at fordele forespørgsler, så der ikke kun er en enkelt server, der laver det hele.

Slide 59

Slide 59 text

Husk at en algoritme er en måde at gennemløbe data på. Round-robin-algoritmen blev for alvor populær med DNS-systemet, som gjorde sit indtog i 1995.

Slide 60

Slide 60 text

Hvad er det nu de er for nogle størrelser? Lad os lige tale om algoritmer.

Slide 61

Slide 61 text

Metoderne til afvikling af noget, der er scheduleret. First-In-First-Out er den mest simple form for scheduling, hvor instruktioner afvikles i den rækkefølge, som de modtages i. Shortest-Remaining-Time afvikler instruktioner, der tager kortest tid, først. Det kan resultere i starvation af længerevarende processer. Round-Robin giver alle instruktioner en del af den samlede CPU- tid. Hvis en instruktion ikke når at blive færdig indenfor tidsrammen, så går turen videre til den næste.

Slide 62

Slide 62 text

Der må være en, der har et godt bud. Hov, jeg nævnte DNS. Hvad er det nu lige at det er?

Slide 63

Slide 63 text

DNS beror på store mængder caching og load balancing. www.cbs.dk 130.226.47.28

Slide 64

Slide 64 text

Prøv at skrive dk. i jeres browser.

Slide 65

Slide 65 text

Man kan nemlig ikke få det hele, når man skal skalere et distribueret system. Decide on your availability metrics.

Slide 66

Slide 66 text

Det hedder også Brewer’s theorem. Der findes et teorem, som man ofte støder på i distribuerede systemer. Consistency, Availability & Partition tolerance.

Slide 67

Slide 67 text

For en god ordens skyld. Consistency = alle data er ens. Availability = alle data er tilgængelige. Partition tolerance = alle data kan overleve nedbrud.

Slide 68

Slide 68 text

Man kan ikke få det hele… Hvilket kunder altid gerne vil.

Slide 69

Slide 69 text

Det er klogt at tage højde for at verden ikke er perfekt. High availability betyder at et distribueret system er bygget til at fejle.

Slide 70

Slide 70 text

Vi skal tilbage til Google.

Slide 71

Slide 71 text

De vil jo gerne vide alt om alle i verden. Hvordan gør de det? Hvad er Googles største udfordring?

Slide 72

Slide 72 text

Her bruger man låsemekanismer i mindre systemer, men i større… Det er et problem når der er flere, der gerne vil gemme noget data på samme tid det samme sted.

Slide 73

Slide 73 text

Hov, hvad er race conditions? GFS provides an atomic append operation called record append. In a traditional write, the client specifies the offset at which data is to be written. [..] In a record append, however, the client specifies only the data. GFS appends it to the file at least once atomically (i.e., as one continuous sequence of bytes) at an offset of GFS’s choosing [..]. This is similar to writing to a file opened in O_APPEND mode in Unix without the race conditions when multiple writers do so concurrently.

Slide 74

Slide 74 text

Nu kører det stærkt! Eller. Race conditions opstår når der går kuk i hvilke værdier, der er tilgængelige hvornår.

Slide 75

Slide 75 text

Fx master og chunk operations. Google File System bygger på en lang række koncepter, der kombineres med hinanden for at skabe en løsning.

Slide 76

Slide 76 text

Det svarer fuldstændig til at I mister hukommelsen og genfinder den ved at læse jeres dagbog. Bemærk at de nævner fast recovery som noget, der sker på baggrund af data, der er gemt et sted.

Slide 77

Slide 77 text

Apache Hadoop er meget populært i big data-kredse.

Slide 78

Slide 78 text

At skalere noget er et spil om procenter. Jo større et system, jo mindre chance for nedbrud. %

Slide 79

Slide 79 text

Det kommer an på hvad der er tale om. Hvordan skalerer man så mindre systemer?

Slide 80

Slide 80 text

Kan man skalere en bærbar computer?

Slide 81

Slide 81 text

Og hvad med en server?

Slide 82

Slide 82 text

Det er den ene type. Vertikal skalering er når man opgraderer en computer ved at give den en større processor, mere hukommelse og så videre.

Slide 83

Slide 83 text

Det er den anden type. Horisontal skalering er når man opgraderer en service ved at sætte to eller flere servere sammen i et cluster.

Slide 84

Slide 84 text

Et trickspørgsmål? Hvis en klient læser data fra fire database-servere, som er spejlet, går det så hurtigere end hvis der kun var en database-server?

Slide 85

Slide 85 text

Endnu et trickspørgsmål? Hvis en klient skriver data til fire database-servere, som er spejlet, går det så hurtigere end hvis der kun var en database-server?

Slide 86

Slide 86 text

Og igen. Kan man blive ved med at skalere vertikalt?

Slide 87

Slide 87 text

Og et sidste. Kan man blive ved med at skalere horisontalt?

Slide 88

Slide 88 text

For en god ordens skyld. Opsummering.

Slide 89

Slide 89 text

Jeg glæder mig til at se jer næste gang. Tak for i dag!