Towards ¡Efficient ¡Stream ¡ Processing ¡in ¡the ¡Wide ¡Area ¡ Matvey ¡Arye ¡ ¡ Siddhartha ¡Sen, ¡Ariel ¡Rabkin, ¡ ¡ Michael ¡J. ¡Freedman ¡ ¡ ¡ ¡ Princeton ¡University ¡
Our ¡Problem ¡Domain ¡
Also ¡Our ¡Problem ¡Domain ¡
Use ¡Cases ¡ • Network ¡Monitoring ¡ • Internet ¡Service ¡Monitoring ¡ • Military ¡Intelligence ¡ • Smart ¡Grid ¡ • Environmental ¡Sensing ¡ • Internet ¡of ¡Things ¡ ¡
The ¡World ¡of ¡AnalyKcal ¡Processing ¡ Real-‑Time ¡ Historical ¡ Streaming ¡ OLAP ¡Databases ¡
The ¡World ¡of ¡AnalyKcal ¡Processing ¡ Real-‑Time ¡ Historical ¡ Single ¡ Streaming ¡ OLAP ¡Databases ¡ Datacenter ¡ Simpler ¡queries ¡ High ¡ingest ¡Kme ¡ Standing ¡queries ¡ Fast ¡query ¡Kme ¡ Real-‑Kme ¡answers ¡ ¡ ¡ ¡ Borealis/Streambase ¡ Oracle, ¡SAP, ¡IBM ¡ System-‑S, ¡Storm ¡
Data ¡Transfer ¡
Trends ¡in ¡Cost/Performance ¡ 2003-‑2008 ¡ CPU(16x) ¡ Storage(10x) ¡ Bandwidth(2.7x) ¡ [Above ¡the ¡Clouds, ¡Armbrust ¡et. ¡al.] ¡ ¡
Aggregate ¡At ¡Local ¡Datacenters ¡
The ¡World ¡of ¡AnalyKcal ¡Processing ¡ Real-‑Time ¡ Historical ¡ Single ¡ OLAP ¡ Streaming ¡ Datacenter ¡ Databases ¡ Wide ¡area ¡ JetStream ¡ JetStream ¡= ¡Real-‑Kme ¡+ ¡Historical ¡+ ¡Wide ¡Area ¡ ¡
Large ¡Caveat ¡ ¡ • Preliminary ¡work ¡ • We ¡want ¡feedback ¡ and ¡suggesKons ¡
Challenges ¡ • Query ¡placement ¡and ¡scheduling ¡ • ApproximaKon ¡of ¡answers ¡ • SupporKng ¡User ¡Defined ¡FuncKons ¡(UDFs) ¡ • Queries ¡on ¡historical ¡data ¡ • AdaptaKon ¡to ¡network ¡changes ¡ • Handling ¡node ¡failures ¡
MoKvaKng ¡Example ¡ • “Top-‑K ¡domains ¡served ¡by ¡a ¡CDN” ¡ – Recall ¡CDN ¡is ¡globally ¡distributed ¡ – Services ¡many ¡domains ¡ ¡ • Main ¡Challenge: ¡Minimize ¡backhaul ¡of ¡data ¡
How ¡Is ¡the ¡Query ¡Specified ¡ ¡ Union ¡ Count ¡ Sort ¡ Limit ¡
Problems ¡ Single ¡aggregaKon ¡point ¡ Union ¡ Count ¡ Sort ¡ Limit ¡ Runs ¡on ¡a ¡single ¡node ¡
Aggregate ¡at ¡local ¡DC ¡ ¡ Less ¡Data ¡ DC1 ¡ ¡ Count ¡ DC3 ¡ ¡ ParKal ¡ ¡ ¡ Union ¡ Count ¡ Sort ¡ Limit ¡ ¡ DC2 ¡ ¡ ¡ Count ¡ ¡ ParKal ¡ ¡
Count ¡ParKals ¡ ( G o o g l e , 1 ) ¡ Count ¡ (Google,5) ¡ (Google,1) ¡ Union ¡ Count ¡ (Google,1) ¡ ParKal ¡ ¡ ) 1 , e l g o o G (
Non-‑Distributed ¡ComputaKon ¡ DC3 ¡ ¡ ¡ DC1 ¡ ¡ ¡ ¡ ¡ Union ¡ Count ¡ Sort ¡ Limit ¡ ¡ ¡ DC2 ¡ ¡ ¡ ¡ ¡
Split ¡Count ¡ DC3 ¡ ¡ ¡ Count ¡ DC1 ¡ A-‑H ¡ ¡ ¡ ¡ ¡ Count ¡ Union ¡ Sort ¡ Limit ¡ I-‑M ¡ ¡ ¡ DC2 ¡ ¡ Count ¡ ¡ N-‑Z ¡ ¡ ¡
Split ¡Union ¡ DC3 ¡ ¡ ¡ Count ¡ DC1 ¡ A-‑H ¡ ¡ ¡ Load ¡ ¡ Bal. ¡ ¡ Count ¡ Sort ¡ Limit ¡ I-‑M ¡ ¡ ¡ Load ¡ DC2 ¡ Bal. ¡ ¡ Count ¡ ¡ N-‑Z ¡ ¡ ¡
Do ¡ParKal ¡Sort ¡ DC3 ¡ ¡ ¡ Count ¡ Sort ¡ DC1 ¡ A-‑H ¡ ParKal ¡ ¡ ¡ Load ¡ ¡ Bal. ¡ ¡ Count ¡ Sort ¡ Sort ¡ Limit ¡ I-‑M ¡ ParKal ¡ ¡ ¡ Load ¡ DC2 ¡ Bal. ¡ ¡ Count ¡ Sort ¡ ¡ N-‑Z ¡ ParKal ¡ ¡ ¡
Push ¡Limit ¡Back ¡ DC3 ¡ ¡ ¡ Count ¡ Sort ¡ DC1 ¡ Limit ¡ A-‑H ¡ ParKal ¡ ¡ ¡ Load ¡ ¡ Bal. ¡ ¡ Count ¡ Sort ¡ Limit ¡ Sort ¡ Limit ¡ I-‑M ¡ ParKal ¡ ¡ ¡ Load ¡ DC2 ¡ Bal. ¡ ¡ Count ¡ Sort ¡ Limit ¡ ¡ N-‑Z ¡ ParKal ¡ ¡ ¡
Distributed ¡Version ¡ DC3 ¡ Single ¡Host ¡ ¡ ¡ Count ¡ Sort ¡ DC1 ¡ Limit ¡ A-‑H ¡ ParKal ¡ ¡ ¡ Load ¡ ¡ Bal. ¡ ¡ Count ¡ Sort ¡ Limit ¡ Sort ¡ Limit ¡ I-‑M ¡ ParKal ¡ ¡ ¡ Load ¡ DC2 ¡ Bal. ¡ ¡ Count ¡ Sort ¡ Limit ¡ ¡ N-‑Z ¡ ParKal ¡ ¡ ¡
What ¡Is ¡New ¡ • Previous ¡streaming ¡systems ¡ ¡ – User ¡guided ¡transformaKons ¡(System-‑S, ¡Storm) ¡ – Simple ¡transforms ¡(Aurora) ¡ ¡ • JetStream ¡ – More ¡complex ¡transforms ¡ ¡ – TransformaKon ¡is ¡network ¡aware ¡ – AnnotaKons ¡for ¡user ¡defined ¡funcKons ¡
Joint ¡Problems ¡ • TransformaKons ¡ – Choosing ¡which ¡ones ¡ • Placement ¡ – Network ¡constrained ¡ – Heterogeneous ¡nodes ¡ – Resource ¡availability ¡ • Decision ¡has ¡to ¡be ¡made ¡at ¡run-‑Kme ¡
Tackling ¡the ¡Joint ¡Problems ¡ • Using ¡heurisKcs ¡ • Split ¡into ¡increasingly ¡more ¡local ¡decisions ¡ – Global ¡decisions ¡are ¡coarse ¡grained ¡ • Example: ¡Assign ¡operators ¡to ¡DCs ¡ ¡ – Localized ¡decisions ¡ • Operate ¡only ¡on ¡local ¡part ¡of ¡subgraph ¡ • Have ¡more ¡current ¡view ¡of ¡available ¡resources ¡ • Do ¡not ¡affect ¡other ¡parts ¡of ¡of ¡query ¡graph ¡placement ¡
Bollenecks ¡SKll ¡Possible ¡ Possible ¡Bolleneck ¡ DC1 ¡ ¡ Count ¡ DC3 ¡ ¡ ParKal ¡ ¡ ¡ Union ¡ Count ¡ Sort ¡ Limit ¡ ¡ DC2 ¡ ¡ ¡ Count ¡ ¡ ParKal ¡ ¡ Use ¡ApproximaKons ¡when ¡necessary ¡
AdjusKng ¡Amount ¡of ¡ApproximaKon ¡ As ¡a ¡reacKon ¡to ¡network ¡dynamism ¡ ¡ DC1 ¡ ¡ Count ¡ DC3 ¡ ¡ ParKal ¡ ¡ ¡ Union ¡ Count ¡ Sort ¡ Limit ¡ ¡ DC2 ¡ ¡ ¡ Count ¡ ¡ ParKal ¡ ¡ If ¡bolleneck ¡goes ¡away, ¡return ¡to ¡exact ¡answers ¡
ApproximaKon ¡Challenges ¡ • How ¡to ¡quanKfy ¡error ¡for ¡approximaKons? ¡ – Uniform ¡across ¡approximaKon ¡methods ¡ – Easy ¡to ¡understand ¡ – Integrates ¡well ¡with ¡metrics ¡for ¡source/node ¡failures ¡ • How ¡do ¡we ¡allow ¡UDF ¡approximaKon ¡algorithms ¡ – Which ¡exact ¡operators ¡can ¡they ¡replace ¡ – QuanKfying ¡the ¡tradeoffs ¡ – Placement ¡& ¡Scheduling ¡
ApproximaKon ¡ComposiKon ¡ DC1 ¡ ¡ Count ¡ DC3 ¡ ¡ ParKal ¡ ¡ ¡ Union ¡ Count ¡ Sort ¡ Limit ¡ ¡ DC2 ¡ ¡ ¡ Count ¡ ¡ ParKal ¡ Error=? ¡ ¡ Error=e ¡ If ¡we ¡approximate ¡count, ¡how ¡does ¡that ¡ error ¡affect ¡sort ¡& ¡final ¡answer? ¡
ApproximaKons ¡in ¡Uneven ¡Networks ¡ DC1 ¡ High ¡Bandwidth ¡Link ¡ ¡ Count ¡ DC3 ¡ ¡ ParKal ¡ ¡ ¡ Union ¡ Count ¡ Sort ¡ Limit ¡ ¡ DC2 ¡ ¡ ¡ Count ¡ ¡ ParKal ¡ ¡ Low ¡Bandwidth ¡Link; ¡Needs ¡ApproximaKon ¡ ¡ Do ¡we ¡need ¡to ¡approximate ¡link ¡DC1-‑DC3 ¡if ¡ we ¡approximate ¡link ¡DC2-‑DC3? ¡
Discovering ¡data ¡trends? ¡ • How ¡has ¡top-‑k ¡changed ¡over ¡past ¡hour? ¡ ¡ • Current ¡streaming ¡systems ¡don’t ¡answer ¡this ¡ – Except ¡by ¡using ¡centralized ¡DBs. ¡ ¡ • JetStream ¡proposes ¡using ¡storage ¡at ¡the ¡edges ¡
Hypercube ¡Data ¡Structure ¡ Google ¡ Yahoo ¡ <5Kb ¡ (10, ¡5ms) ¡ (100,20ms) ¡ 50Kb-‑ (0, ¡0ms) ¡ (1, ¡4ms) ¡ 1Mb ¡ >1Mb ¡ (5,10ms ¡ (5, ¡30ms) ¡ 1 ¡ 60 ¡ Minute ¡ … ¡
Hypercube ¡Data ¡Structure ¡ All ¡ 01 ¡ 12 ¡ Month ¡ … ¡ Day ¡ 1 ¡ 31 ¡ … ¡ Hour ¡ 1 ¡ 24 ¡ … ¡ 1 ¡ 60 ¡ Minute ¡ … ¡
Hypercube ¡Data ¡Structure ¡ All ¡ 01 ¡ 12 ¡ Month ¡ … ¡ Google ¡ Yahoo ¡ <5Kb ¡ (90, ¡9ms) ¡ (500,20ms) ¡ Aggregate ¡ Day ¡ 1 ¡ 31 ¡ … ¡ 50Kb-‑ (0, ¡0ms) ¡ (5, ¡9ms) ¡ 1Mb ¡ >1Mb ¡ (5,10ms ¡ (10, ¡30ms) ¡ Hour ¡ 1 ¡ 24 ¡ … ¡ 1 ¡ 60 ¡ Minute ¡ … ¡
Query: ¡“Last ¡Hour ¡and ¡a ¡half” ¡ (without ¡materializing ¡intermediate ¡nodes) ¡ All ¡ 01 ¡ 12 ¡ Month ¡ … ¡ Day ¡ 1 ¡ 31 ¡ … ¡ … ¡ 2 ¡ 1 ¡ Hour ¡ … ¡ 60 ¡ Minute ¡ 1 ¡ 1 ¡ … ¡30 ¡ … ¡
Recommend
More recommend