kineograph: taking the pulse of a fast-changing and connected world

43
Kineograph: Taking the Pulse of a Fast-Changing and Connected World Speaker: LIN Qian http://www.comp.nus.edu.sg/ ~linqian

Upload: qian-lin

Post on 16-Jan-2015

135 views

Category:

Documents


2 download

DESCRIPTION

 

TRANSCRIPT

Page 1: Kineograph: Taking the Pulse of a Fast-Changing and Connected World

Kineograph: Taking the Pulse of a Fast-Changing and Connected World

Speaker: LIN Qianhttp://www.comp.nus.edu.sg/~linqian

Page 2: Kineograph: Taking the Pulse of a Fast-Changing and Connected World

Information

time-sensitiverich connections

Page 3: Kineograph: Taking the Pulse of a Fast-Changing and Connected World

Challenges

Page 4: Kineograph: Taking the Pulse of a Fast-Changing and Connected World

1. Timeliness guarantees

Page 5: Kineograph: Taking the Pulse of a Fast-Changing and Connected World

2. Graph

Page 6: Kineograph: Taking the Pulse of a Fast-Changing and Connected World

3. Graph-mining

Page 7: Kineograph: Taking the Pulse of a Fast-Changing and Connected World

Kineograph

distr. in-memory graph storageincremental graph mining

Page 8: Kineograph: Taking the Pulse of a Fast-Changing and Connected World

Graph nodes

Ingest nodes

Continuous Data feeds

 

 

  

Global consistent snapshots

Incremental computation on a static graph snapshot

Progress table

Snapshooter

Graph Storage

Computation

 Master

Page 9: Kineograph: Taking the Pulse of a Fast-Changing and Connected World

Graph computation

Graph updates

Page 10: Kineograph: Taking the Pulse of a Fast-Changing and Connected World

Graph nodes

storage layercomputation layer

Page 11: Kineograph: Taking the Pulse of a Fast-Changing and Connected World

Storage layer

key/value storelogical partitions

Page 12: Kineograph: Taking the Pulse of a Fast-Changing and Connected World

Graph partitioning

edge-cutno locality consideration

Page 13: Kineograph: Taking the Pulse of a Fast-Changing and Connected World

Snapshot

ingest nodesgraph nodes

global progress table

Page 14: Kineograph: Taking the Pulse of a Fast-Changing and Connected World

Ingest node

graph-update operationssequence number

Page 15: Kineograph: Taking the Pulse of a Fast-Changing and Connected World

Epoch commit protocol

Page 16: Kineograph: Taking the Pulse of a Fast-Changing and Connected World

……

s1

4 6 7

1 2 4 s1

sn

Partition u

5 6 8

2 3 5 s1

sn

Partition v

0

s1

…sn 3

Progress table

Ingest nodes

Graph nodes Epoch specified by progress table and snapshooter

Global tx vector

Snapshootersn

123

47

Page 17: Kineograph: Taking the Pulse of a Fast-Changing and Connected World

Graph update / compute Pipeline

GraphComputation

SnapshotConstruction

IncomingTweets … …

Si-1 Si Si+1

Ci

ti-1

Time

ti ti’ ti

’’

Epoch

Timeliness

Page 18: Kineograph: Taking the Pulse of a Fast-Changing and Connected World

Consistency

no global serialization(diff. from 2PL or t.s. ordering)

Page 19: Kineograph: Taking the Pulse of a Fast-Changing and Connected World

Atomicity

v u

v u

Page 20: Kineograph: Taking the Pulse of a Fast-Changing and Connected World

Deterministic vertex creation

Page 21: Kineograph: Taking the Pulse of a Fast-Changing and Connected World

Computation layer

incremental graph-mining

Page 22: Kineograph: Taking the Pulse of a Fast-Changing and Connected World

vertex-based computation model

Page 23: Kineograph: Taking the Pulse of a Fast-Changing and Connected World

Incremental Graph Computation

Detect Vertex Status

Compute New Vertex Values

Propagate Updates

Graph-Scale Aggregation

Change Significantly?

Init

Updates from other vertices

Y

N

Page 24: Kineograph: Taking the Pulse of a Fast-Changing and Connected World

Push model

sender-side aggregation

Page 25: Kineograph: Taking the Pulse of a Fast-Changing and Connected World

Pull model

read a subset of neighbors

Page 26: Kineograph: Taking the Pulse of a Fast-Changing and Connected World

Execution model

BSP + Dynamic scheduling

Page 27: Kineograph: Taking the Pulse of a Fast-Changing and Connected World

3 apps

TunkRankSP

K-exposure

Page 28: Kineograph: Taking the Pulse of a Fast-Changing and Connected World

TunkRank

Page 29: Kineograph: Taking the Pulse of a Fast-Changing and Connected World

SP

Page 30: Kineograph: Taking the Pulse of a Fast-Changing and Connected World

K-exposure

Page 31: Kineograph: Taking the Pulse of a Fast-Changing and Connected World

Fault tolerance among servers

Paxos-based solution

Page 32: Kineograph: Taking the Pulse of a Fast-Changing and Connected World

Ingest node failure

incarnation number

Page 33: Kineograph: Taking the Pulse of a Fast-Changing and Connected World

Fault tolerance @ storage layerquorum-based replication

Page 34: Kineograph: Taking the Pulse of a Fast-Changing and Connected World

Fault tolerance @ computation layer

roll back & re-executeprimary/backup replication

Page 35: Kineograph: Taking the Pulse of a Fast-Changing and Connected World

Incremental expansion

Page 36: Kineograph: Taking the Pulse of a Fast-Changing and Connected World

Decaying

Page 37: Kineograph: Taking the Pulse of a Fast-Changing and Connected World

C#

17,000 LOC

Page 38: Kineograph: Taking the Pulse of a Fast-Changing and Connected World

Twitter feeds

8M vertices, 29M edges100M tweets with 100K/sec

power-law

Page 39: Kineograph: Taking the Pulse of a Fast-Changing and Connected World

Graph-update throughput

Page 40: Kineograph: Taking the Pulse of a Fast-Changing and Connected World

Incremental vs. Non-incremental

Page 41: Kineograph: Taking the Pulse of a Fast-Changing and Connected World

Scalability

Page 42: Kineograph: Taking the Pulse of a Fast-Changing and Connected World

Incoming data rate

Page 43: Kineograph: Taking the Pulse of a Fast-Changing and Connected World

Failure recovery