Cloud&Programming:& From&Doom&and&Gloom&to& BOOMand&Bloom& - Neil Conway

11m ago
3 Views
1 Downloads
567.42 KB
36 Pages
Last View : 1m ago
Last Download : 3m ago
Upload by : Carlos Cepeda
Transcription

Cloud Programming: From Doom and Gloom to BOOM and Bloom Neil Conway UC Berkeley Joint work with Peter Alvaro, Ras Bodik, Tyson Condie, Joseph M. Hellerstein, David Maier (PSU), William R. Marczak, and Russell Sears (Yahoo! Research) Datalog 2.0 Workshop

Cloud CompuQng: The Next Great CompuQng PlaSorm

The Problem WriQng reliable, scalable distributed soUware remains extremely difficult.

Doom and Gloom! “.when we start talking about parallelism and ease of use of truly parallel computers, we’re talking about a problem that’s as hard as any that computer science has faced . I would be panicked if I were in industry.” - ‐- ‐ John Hennessey, Stanford

A Ray of Light We understand data- ‐parallel compuQng – MapReduce, parallel DBs, etc. Can we take a hard problem and transform it into an easy one?

Everything is Data Distributed compuQng is all about state – System state – Session state – Protocol state – User and security- ‐related state – . and of course, the actual “data” CompuQng CreaQng, updaQng, and communicaQng that state

Datalog to the Rescue! 1. Data- ‐centric programming – Explicit, uniform state representaQon: relaQons 2. High- ‐level declaraQve queries – Datalog asynchrony state update

Outline 1. The BOOM Project – Cloud CompuQng stack built w/ distributed logic – BOOM AnalyQcs: MapReduce and DFS in Overlog 2. Dedalus: Datalog in Time (and Space) 3. (Toward) The Bloom Language – Distributed Logic for Joe the Programmer

The BOOM Project Berkeley Orders Of Magnitude – OOM more scale, OOM less code – Can we build Google in 10k LOC? Build “Real Systems” in distributed logic – Begin w/ an exisQng variant of Datalog (“Overlog”) – Inform the design of a new language for distributed compuQng (Bloom)

BOOM AnalyQcs Typical “Big Data” stack: MapReduce (Hadoop) distributed file system (HDFS) We tried two approaches: – HDFS: clean- ‐slate rewrite – Hadoop: replace job scheduling logic w/ Overlog Goals 1. Replicate exisQng funcQonality 2. Add Hard Stuff (and make it look easy!)

Overlog: Distributed Datalog Originally designed for rouQng protocols and overlay networks (Loo et al., SIGMOD’06) – RouQng recursive query over distributed DB Datalog w/ aggregaQon, negaQon, funcQons DistribuQon horizontal parQQoning of tables – Data placement induces communicaQon

Yet Another TransiQve Closure link(X, Y, C); path(X, Y, C) :- ‐ link(X, Y, C); path(X, Z, C1 C2) :- ‐ link(X, Y, C1), path(Y, Z, C2); mincost(X, Z, min C ) :- ‐ path(X, Z, C);

Overlog Example link(@X, Y, C); path(@X, Y, C) :- ‐ link(@X, Y, C); path(@X, Z, C1 C2) :- ‐ link(@X, Y, C1), path(@Y, Z, C2); mincost(@X, Z, min C ) :- ‐ path(@X, Z, C);

Overlog Timestep Model ! " # !

Hadoop Distributed File System Based on the Google File System (SOSP’03) – Large files, sequenQal workloads, append- ‐ only – Used by Yahoo!, Facebook, etc. Chunks 3x replicated at data nodes for fault tolerance Client Metadata Protocol Master Node Data Protocol Heartbeat Protocol Data Node Data Node Control Protocol Data Node

BOOM- ‐FS Hybrid system – Complex logic: Overlog – Performance- ‐ criQcal (but simple!): Java Clean separaQon between policy and mechanism Client Metadata Protocol Overlog Master Node Data Protocol Heartbeat Protocol Data Node Data Node Control Protocol Data Node

BOOM- ‐FS Example: State Represent file system metadata with relaQons. Name Descrip9on A ributes file Files fileID, parentID, name, isDir fqpath Fully- ‐qualified path names fileID, path fchunk Chunks per file chunkID, fileID datanode DataNode heartbeats nodeAddr, lastHbTime hb chunk Chunk heartbeats nodeAddr, chunkID, length

BOOM- ‐FS Example: Query Represent file system metadata with relaQons. // Base case: root directory has null parent fqpath(FileId, Path) :- ‐ file(FileId, FParentId, FName, IsDir), IsDir true, FParentId null, Path "/"; fqpath(FileId, Path) :- ‐ file(FileId, FParentId, FName, ), fqpath(FParentId, ParentPath), // Do not add extra slash if parent is root dir PathSep (ParentPath "/" ? "" : "/"), Path ParentPath PathSep FName;

BOOM- ‐FS Example: Query Distributed protocols: join between event stream and local database // "ls" for extant path return lisCng for path response(@Source, RequestId, true, DirLisQng) :- ‐ request(@Master, RequestId, Source, "Ls", Path), fqpath(@Master, FileId, Path), directory lisQng(@Master, FileId, DirLisQng); // "ls" for nonexistent path error response(@Source, RequestId, false, null) :- ‐ request(@Master, RequestId, Source, "Ls", Path), noQn fqpath(@Master, , Path);

Comparison with Hadoop CompeQQve performance ( 20%) Lines of Java Lines of Overlog HDFS 21,700 0 BOOM- ‐FS 1,431 469 New Features: 1. Hot Standby for FS master nodes using Paxos 2. ParQQoned FS master nodes for scalability – 1 day! 3. Monitoring, tracing, and invariant checking

Lessons from BOOM AnalyQcs Overall, Overlog was a good fit for the task – Concise programs for real features, easy evoluQon Data- ‐centric design: language- ‐independent – ReplicaQon, parQQoning, monitoring all involve data management – Node- ‐local invariants are “cross- ‐cuwng” queries SpecificaQon is enforcement Policy vs. mechanism Datalog vs. Java

Challenges from BOOM AnalyQcs Poor perf, crypQc syntax, lixle/no tool support – Easy to fix! Many bugs related to updaQng state – Ambiguous semanQcs (in Overlog) We avoided distributed queries – “The global database is a lie!” – Hand- ‐coding protocols vs. staQng distributed invariants

Outline 1. The BOOM Project – Cloud CompuQng stack built w/ distributed logic – BOOM AnalyQcs: MapReduce and DFS in Overlog 2. Dedalus: Datalog in Time (and Space) 3. (Toward) The Bloom Language – Distributed Logic for Joe the Programmer

Dedalus Dedalus: a theoreQcal foundaQon for Bloom In Overlog, the Hard Stuff happens between Qme steps – State update – Asynchronous messaging Can we talk about the Hard Stuff with logic?

State Update Updates in Overlog: ugly, “outside” of logic Difficult to express common paxerns – Queues, sequencing Order doesn’t maxer . except when it does! counter(@A, Val 1) :- ‐ counter(@A, Val), event(@A, );

Asynchronous Messaging Overlog “@” notaQon describes space Logical interpretaQon unclear: p(@A, B) :- ‐ q(@B, A); Upon reflecQon, "me is more fundamental – Model failure with arbitrary delay Discard illusion of global DB

Dedalus: Datalog in Time (1) Deduc9ve rule: (Pure Datalog) p(A, B) :- ‐ q(A, B); (2) Induc9ve rule: (Constraint across “next” Qmestep) p(A, B)@next :- ‐ q(A, B); (3) Async rule: (Constraint across arbitrary Qmesteps) p(A, B)@async:- ‐ q(A, B);

Dedalus: Datalog in Time (1) Deduc9ve rule: (Pure Datalog) All terms in body have same Qme p(A, B, S) :- ‐ q(A, B, T), T S; (2) Induc9ve rule: (Constraint across “next” Qmestep) p(A, B, S) :- ‐ q(A, B, T), successor(T, S); (3) Async rule: (Constraint across arbitrary Qmesteps) p(A, B, S) :- ‐ q(A, B, T), Qme(S), choose((A, B, T), (S));

State Update in Dedalus p (A, B)@next :- ‐ p (A, B), noQn p neg(A, B); p (1, 2)@101; p (1, 3)@102; p neg(1, 2)@300; Time p(1, 2) 101 102 . 300 301 p(1, 3) p neg(1, 2)

Counters in Dedalus counter(A, Val 1)@next :- ‐ counter(A, Val), event(A, ); counter(A, Val)@next :- ‐ counter(A, Val), noQn event(A, );

Asynchrony in Dedalus Unreliable Broadcast: sbcast(#Target, Sender, Message)@async :- ‐ new message(#Sender, Message), members(#Sender, Target); More saQsfactory logical interpretaQon Can build Lamport clocks, reliable broadcast, etc. What about “space”? Space is the unit of atomic deducQon w/o parQal failure

Asynchrony in Dedalus Unreliable Broadcast: Project sender’s local Qme sbcast(#Target, Sender, N, Message)@async :- ‐ new message(#Sender, Message)@N, members(#Sender, Target); More saQsfactory logical interpretaQon Can build Lamport clocks, reliable broadcast, etc. What about “space”? Space is the unit of atomic deducQon w/o parQal failure

Dedalus Summary Logical, model- ‐theoreQc semanQcs for two key features of distributed systems 1. Mutable state 2. Asynchronous communicaQon All facts are transient – Persistence and state update are explicit IniQal correctness checks 1. Temporal straQfiability (“modular straQficaQon in Qme”) 2. Temporal safety (“eventual quiescence”)

DirecQons: Bloom 1. Bloom: Logic for Joe the Programmer – – Expose sets, map/reduce, and callbacks? TranslaQon to Dedalus 2. VerificaQon of Dedalus programs 3. Network- ‐oriented opQmizaQon 4. Finding the right abstracQons for Distributed CompuQng – Hand- ‐coding protocols vs. staQng distributed invariants 5. Parallelism and monotonicity?

QuesQons? Thank you! hxp://declaraQvity.net IniQal PublicaQons: BOOM AnalyCcs: EuroSys’10, Alvaro et al. Paxos in Overlog: NetDB’09, Alvaro et al. Dedalus: UCB TR #2009- ‐173, Alvaro et al.

Temporal StraQfiability ReducQon to Datalog not syntacQcally straQfiable: p(X)@next :- ‐ p(X), noQn p neg(X); p neg(X) :- ‐ event(X, ), p(X);

A&Ray&of&Light We&understand&dataparallel compung - MapReduce,¶llel&DBs,etc.& Can&we&take&ahard&problem&and&transform&it into&an&easy&one?&

Related Documents:

PSI AP Physics 1 Name_ Multiple Choice 1. Two&sound&sources&S 1∧&S p;Hz&and250&Hz.&Whenwe& esult&is:& (A) great&&&&&(C)&The&same&&&&&

Argilla Almond&David Arrivederci&ragazzi Malle&L. Artemis&Fowl ColferD. Ascoltail&mio&cuore Pitzorno&B. ASSASSINATION Sgardoli&G. Auschwitzero&il&numero&220545 AveyD. di&mare Salgari&E. Avventurain&Egitto Pederiali&G. Avventure&di&storie AA.&VV. Baby&sitter&blues Murail&Marie]Aude Bambini&di&farina FineAnna

The program, which was designed to push sales of Goodyear Aquatred tires, was targeted at sales associates and managers at 900 company-owned stores and service centers, which were divided into two equal groups of nearly identical performance. For every 12 tires they sold, one group received cash rewards and the other received

sites cloud mobile cloud social network iot cloud developer cloud java cloud node.js cloud app builder cloud cloud ng cloud cs oud database cloudinfrastructureexadata cloud database backup cloud block storage object storage compute nosql

College"Physics" Student"Solutions"Manual" Chapter"6" " 50" " 728 rev s 728 rpm 1 min 60 s 2 rad 1 rev 76.2 rad s 1 rev 2 rad , π ω π " 6.2 CENTRIPETAL ACCELERATION 18." Verify&that ntrifuge&is&about 0.50&km/s,∧&Earth&in&its& orbit is&about p;linear&speed&of&a .

FlexPod Hybrid Cloud for Google Cloud Platform with NetApp Cloud Volumes ONTAP and Cisco Intersight TR-4939: FlexPod Hybrid Cloud for Google Cloud Platform with NetApp Cloud Volumes ONTAP and Cisco Intersight Ruchika Lahoti, NetApp Introduction Protecting data with disaster recovery (DR) is a critical goal for businesses continuity. DR allows .

theJazz&Band”∧&answer& musical&questions.&Click&on&Band .

6" syl 4" syl 12" swgl @ 45 & 5' o.c. 12" swchl 6" swl r1-1 ma-d1-6a 4" syl 4" syl 2' 2' r3-5r r4-7 r&d 14.7' 13' cw open w11-15 w16-9p ma-d1-7d 12' 2' w4-3 moonwalks abb r&d r&d r&d r&d r&d r&d ret ret r&d r&d r&d r&d r&d 12' 24' r&d ma-d1-7a ma-d1-7b ret r&d r&d r5-1 r3-2 r&d r&r(b.o.) r6-1r r3-2 m4-5 m1-1 (i-195) m1-1 (i-495) m6-2l om1-1 .