Show Menu
Cheatography

VSS Cheat Sheet (DRAFT) by

This is a draft cheat sheet. It is a work in progress and is not finished yet.

Naming Termin­ology

Name
Zeiche­nkette welche auf eine Entity verweist
Address
Name eines Access Points
Access Point
Spezieller Typ einer Entity um auf andere Entity zuzugr­eifen
Entity
Alles was betrieben werden kann
Address und Access Points können ändern, aber weiterhin erreichbar via Name. Entity kann auf mehrere Access Points hören.

Naming Beispiele

Flat Naming

Names sind unstru­ktu­rierte Identi­fiers
Meistens:
* identi­fiziert Entity unique
* kann Random sein
Können zwar eine interne Struktur haben, wird jedoch nicht für Name Resolution verwendet.

Broadc­asting

+ Selbst­ver­wal­tetes Naming system
+ Einfach zu implem­ent­ieren
+ Ortsun­abh­ängig
- Skaliert nicht (Overhead Kommun­ikation entspricht Anzahl Entity)

Recursive Resolution

+ Besseres Caching möglich
- Hohe Perfor­mance Ansprüche an jedem Nameserver

Structured Naming

Hierar­chisch strukt­uriert, z.B. unterr­ich­t.h­sr.ch
Namens­auf­lösung kann auf Layers mit versch. Verantw. und Anf. aufgeteilt werden

Attrib­ute­-Based Naming

Suche nach Entity aufgrund Attrib­ut-­Paare

Distri­buted Hash Tables

Spezielle Art von Hashing, welches Vergrö­sserung erlaubt
Im Schnitt nur Anz.Ke­ys/­Anz.Nodes zu versch­ieben

Distri­buted Hash Tables Beispiel

Vergrö­sserung von 3 auf 4 Nodes, nur 3 Keys versch­ieben

P2P Networks

Peer
Partic­ipant, Equal, may act as server and/or client
Decent­ralized
Overlay network
Structures
Unstru­ctured, Struct­ured, Hybrid

Torrent Fields

Torrent Q&A

Welche Aufgabe erfüllt ein Peer?
Lädt Daten von anderen Peers. stellt fertige Pieces seinem Schwarm zur Verfügung. Auswahl der nächsten Teile verant­wor­tlich. Fertiges Teil sicher­stellen indem SHA-1 Hashs überpr­üfen.
Weshalb sind Files in Teile aufget­eilt?
Von mehreren gleich­zeitig laden. Upload schon nach fertigem Teil. Fehler im Teil verwirft nur Teil.
Auswahl der Teile folgt vier Policies
Strict Priority: Ein Teil wird komplett geladen damit möglichst schnell verifi­ziert und weiter­gegeben werden kann. Rarest First: Seltene Teile werden bevorzugt um Engpässe zu verhin­dern. Random First Piece: Damit nicht zuerst ein seltenes Teil angefo­rdert wird, würde sonst Upload verzögern und zu Choking führen. Endgame Mode: Verble­ibende Teile mehrmals parallel von div. Peers angefo­rdert um Download schnell abszus­chl­iessen.
 

Chord: Storing Resources

succ(_) nicht verwec­hseln mit "­_.s­ucc­ess­or"
succ(_) ist eine verteilte Funktion
_.succ­essor ist eine lokale Funktion
Für alle p gilt: p.succ­essor = succ(p+1)

Chord: Finger Table

Wenn korrekt, lookup ist O(log N)
Wenn successor pointers (p.fin­ger[1]) korrekt. lookup ergibt korrektes Resultat
Aber gleich­zeitige joins oder failing nodes korrup­tieren finger table
* period­ische Stabil­isation Prozedur
* dank Stabli­sation, Netzwerk konver­giert in konsis­tenten Zustand

Chord: Stablize

Chord: Replic­ation

NTP

δ round-trip time = (Cr-Cs­)-(­Ss-Sr)
θ offset = Ss-Cr+­(δ/2) = ((Ss+S­r)-­(Cs­+Cr))/2
NTP client passt Uhr an durch verlan­gsamern oder versch­nellern des Intervalls

Logical Clocks: Causuality

Running Example: replicated DB

All nodes must ACK the message of updates to other nodes. Perform update only when all have ACKd.
All update messages get timestamp of physical clock. Updates in priority queue (based on timestamp)
Totally ordered multic­asting. Use Lamport's Clock as the timestamp
Use a vector clock to version updates. concurrent updates can be merged.
Only Solution Abschnitte hier abgebi­ldet.

Bitcoin Protocol

Distri­buted Batch Processing

MapReduce Definition

 

Lamport's Logical Clock

Jeder Pi erhöht Ci(.) bei jedem Event
Bei Erhalt: Ci(a) = max(Ci(a), Ci(b))+1

Logical Clocks: Summary

Erfasst "­->" das consept of casuality immer komplett? Nicht immer: Events auf gleichem Prozess können indepe­ndent sein; Events auf versch. Prozessen können concurrent sein, aber beiläufig durch Externes

Casuality Beispiele

Does totally ordered multic­asting preserve casuality? Yes, Since messages are delivered in the order of their Lamport timest­amps, which preserve the happen­ed-­before relation.

Resilient Distri­buted Datasets

Reduce RDD[A]

Tasks

Deploying on a Cluster

Deploying Naming

Spark Context
Entry point for creating RDDs, Manages connection to the cluster, accesses services like schedulers and block manager
Cluster Manager
Service managing resources in the cluster, e.g. spark standa­lone, mesos, YARN
Worker Node
A node that can run coe of a Spark applic­ation
Executor
A process launched for a certain applic­ation, Applic­ations are isolated from each other

MapReduce Summary