solving problems with graphs

129
MARKO A. RODRIGUEZ http://THINKAURELIUS.COM SOLVING PROBLEMS WITH GRAPHS

Upload: marko-rodriguez

Post on 11-May-2015

9.512 views

Category:

Technology


9 download

DESCRIPTION

Who am I and why do I feel that the world is not infinitely perfect? Which technologies should I use to rectify this situation? Enter the graph and the graph traversal.

TRANSCRIPT

Page 1: Solving Problems with Graphs

MARKO A. RODRIGUEZ

http://THINKAURELIUS.COM

SOLVING PROBLEMS WITH GRAPHS

Page 2: Solving Problems with Graphs

MARKO A. RODRIGUEZ

Page 3: Solving Problems with Graphs

MARKO A. RODRIGUEZ

Page 4: Solving Problems with Graphs

MARKO A. RODRIGUEZ

Page 5: Solving Problems with Graphs
Page 6: Solving Problems with Graphs
Page 7: Solving Problems with Graphs

YOU WILL NOT KNOW MEBY LOOKING WITHIN

Page 8: Solving Problems with Graphs
Page 9: Solving Problems with Graphs
Page 10: Solving Problems with Graphs
Page 11: Solving Problems with Graphs
Page 12: Solving Problems with Graphs
Page 13: Solving Problems with Graphs

marko

Page 14: Solving Problems with Graphs

marko

TO KNOW ME IS

TO KNOW MY WORLD

Page 15: Solving Problems with Graphs

marko

gremlin

russell

AND IN MY WORLD THERE ARE THINGS

Page 16: Solving Problems with Graphs

created

marko

gremlin

knows

russell

Page 17: Solving Problems with Graphs

created

marko

gremlin

knows

russell

AND TO KNOW THESE THINGS IS TO KNOW THEIR WORLD

... AD INFINITUM

Page 18: Solving Problems with Graphs

created

marko

gremlin

blueprints

depends

created

pavel

hortonworks

knows

russell

works

Page 19: Solving Problems with Graphs

created

marko

gremlin

blueprints

depends

titan

depends

created

pavelcreated

cql

hbase

faunus

depend

s

hadoop

twitter

works

hortonworks

uses

knows

russell

works

uses

Page 20: Solving Problems with Graphs

created

marko

gremlin

blueprints

depends

titan

depends

created

pavelcreated

cql

depends

cassandradepends

hbase

depends

faunusdepends

created

depend

s

hadoop

twitter

uses

works

hortonworks

cloudera

uses

uses

depends

knows

russell

works

depends

uses

depends

Page 21: Solving Problems with Graphs

created

marko

gremlin

blueprints

depends

titan

depends

created

pavelcreated

cql

depends

cassandradepends

hbase

depends

faunusdepends

created

depend

s

hadoop

twitter

uses

works

hortonworks

cloudera

uses

uses

depends

knows

russell

works

depends

uses

depends

I POSIT THAT THE SOLUTIONS TO PROBLEMS EXIST IN THE WORLD AND THAT RESOLUTION IS SOUGHT IN LINKAGE.

Page 22: Solving Problems with Graphs

created

marko

gremlin

blueprints

depends

titan

depends

createdpavel

createdcql

depends

cassandradepends

hbase

dependsfaunus

depends

created

depends

hadoop

twitter

uses

wor

kshortonworks

cloudera

uses

uses

depends

know

s

russell

works

depe

nds

uses

depe

nds

PROBLEM

• I want organizations with Big Graph Data to use the Aurelius Graph Cluster.

Page 23: Solving Problems with Graphs

created

marko

gremlin

blueprints

depends

titan

depends

createdpavel

createdcql

depends

cassandradepends

hbase

dependsfaunus

depends

created

depends

hadoop

twitter

uses

wor

kshortonworks

cloudera

uses

uses

depends

know

s

russell

works

depe

nds

uses

depe

nds

PROBLEM

• I want organizations with Big Graph Data to use the Aurelius Graph Cluster.

SOLUTION #1

• Hortonworks and Cloudera use Big Data technology.

Page 24: Solving Problems with Graphs

created

marko

gremlin

blueprints

depends

titan

depends

createdpavel

createdcql

depends

cassandradepends

hbase

dependsfaunus

depends

created

depends

hadoop

twitter

uses

wor

kshortonworks

cloudera

uses

uses

depends

know

s

russell

works

depe

nds

uses

depe

nds

PROBLEM

• I want organizations with Big Graph Data to use the Aurelius Graph Cluster.

SOLUTION #1

• Hortonworks and Cloudera use Big Data technology. I know Russell.

Page 25: Solving Problems with Graphs

created

marko

gremlin

blueprints

depends

titan

depends

createdpavel

createdcql

depends

cassandradepends

hbase

dependsfaunus

depends

created

depends

hadoop

twitter

uses

wor

kshortonworks

cloudera

uses

uses

depends

know

s

russell

works

depe

nds

uses

depe

nds

partnerpartner

PROBLEM

• I want organizations with Big Graph Data to use the Aurelius Graph Cluster.

SOLUTION #1

• Hortonworks and Cloudera use Big Data technology. I know Russell. Partnership?

Page 26: Solving Problems with Graphs

created

marko

gremlin

blueprints

depends

titan

depends

created

pavelcreated

cql

depends

cassandradepends

hbase

depends

faunusdepends

created

depend

s

hadoop

twitter

uses

works

hortonworks

cloudera

uses

uses

depends

knows

russell

works

depends

uses

depends

Page 27: Solving Problems with Graphs

created

marko

gremlin

blueprints

depends

titan

depends

createdpavel

createdcql

depends

cassandradepends

hbase

dependsfaunus

depends

created

depends

hadoop

twitter

uses

wor

kshortonworks

cloudera

uses

uses

depends

know

s

russell

works

depe

nds

uses

depe

nds

PROBLEM

• I want organizations with Big Graph Data to use the Aurelius Graph Cluster.

Page 28: Solving Problems with Graphs

created

marko

gremlin

blueprints

depends

titan

depends

createdpavel

createdcql

depends

cassandradepends

hbase

dependsfaunus

depends

created

depends

hadoop

twitter

uses

wor

kshortonworks

cloudera

uses

uses

depends

know

s

russell

works

depe

nds

uses

depe

nds

SOLUTION #2

• Pavel and I created Gremlin.

PROBLEM

• I want organizations with Big Graph Data to use the Aurelius Graph Cluster.

Page 29: Solving Problems with Graphs

created

marko

gremlin

blueprints

depends

titan

depends

createdpavel

createdcql

depends

cassandradepends

hbase

dependsfaunus

depends

created

depends

hadoop

twitter

uses

wor

kshortonworks

cloudera

uses

uses

depends

know

s

russell

works

depe

nds

uses

depe

nds

PROBLEM

• I want organizations with Big Graph Data to use the Aurelius Graph Cluster.

SOLUTION #2

• Pavel and I created Gremlin. He is a Cassandra engineer at Twitter.

Page 30: Solving Problems with Graphs

created

marko

gremlin

blueprints

depends

titan

depends

createdpavel

createdcql

depends

cassandradepends

hbase

dependsfaunus

depends

created

depends

hadoop

twitter

uses

wor

kshortonworks

cloudera

uses

uses

depends

know

s

russell

works

depe

nds

uses

depe

nds

meets

PROBLEM

• I want organizations with Big Graph Data to use the Aurelius Graph Cluster.

SOLUTION #2

• Pavel and I created Gremlin. He is a Cassandra engineer at Twitter. Meeting?

Page 31: Solving Problems with Graphs

created

marko

gremlin

blueprints

depends

titan

depends

created

pavelcreated

cql

depends

cassandradepends

hbase

depends

faunusdepends

created

depend

s

hadoop

twitter

uses

works

hortonworks

cloudera

uses

uses

depends

knows

russell

works

depends

uses

depends

Page 32: Solving Problems with Graphs

created

marko

gremlin

blueprints

depends

titan

depends

created

pavelcreated

cql

depends

cassandradepends

hbase

depends

faunusdepends

created

depend

s

hadoop

twitter

uses

works

hortonworks

cloudera

uses

uses

depends

knows

russell

works

depends

uses

depends

SOFTWARE

Page 33: Solving Problems with Graphs

marko

SOFTWARE

Page 34: Solving Problems with Graphs

marko

SOFTWARE

Page 35: Solving Problems with Graphs

marko

SOFTWARE

Page 36: Solving Problems with Graphs

marko

Page 37: Solving Problems with Graphs

marko

puppy

pet pet

mama

Page 38: Solving Problems with Graphs

marko

puppy

pet pet

mamasniffs

Page 39: Solving Problems with Graphs

marko

puppy

pet pet

mama

curley

chula

biscuit

whettlejackson

mia

missy

scout

sniffs

sniffs

sniffs

sniffs

sniffs sniffs

sniffs

Page 40: Solving Problems with Graphs

marko

puppy

pet pet

mama

males

curley

chula

biscuit

whettlejackson

mia

missy

scout

sniffs

sniffs

sniffs

sniffs

sniffs sniffs

sniffs

Page 41: Solving Problems with Graphs

marko

puppy

pet pet

mama

males

curley

chula

biscuit

whettlejackson

mia

missy

scout

sniffs

sniffs

sniffs

sniffs

sniffs sniffs

sniffs

sniffs

sniffs

sniffs sniffs

sniffs

sniffs

Page 42: Solving Problems with Graphs

marko

puppy

pet pet

mama

males

curley

chula

biscuit

whettlejackson

mia

missy

scout

sniffs

sniffs

sniffs

sniffs

sniffs sniffs

sniffs

sniffs

sniffs

sniffs sniffs

sniffs

sniffs

1

Page 43: Solving Problems with Graphs

marko

puppy

pet pet

mama

males

curley

chula

biscuit

whettlejackson

mia

missy

scout

sniffs

sniffs

sniffs

sniffs

sniffs sniffs

sniffs

sniffs

sniffs

sniffs sniffs

sniffs

sniffs

1

2

2

Page 44: Solving Problems with Graphs

marko

puppy

pet pet

mama

males

curley

chula

biscuit

whettlejackson

mia

missy

scout

sniffs

sniffs

sniffs

sniffs

sniffs sniffs

sniffs

sniffs

sniffs

sniffs sniffs

sniffs

sniffs

2

2

3

Page 45: Solving Problems with Graphs

marko

puppy

pet pet

mama

males

curley

chula

biscuit

whettlejackson

mia

missy

scout

sniffs

sniffs

sniffs

sniffs

sniffs sniffs

sniffs

sniffs

sniffs

sniffs sniffs

sniffs

sniffs

3

4

4 4

4

4

Page 46: Solving Problems with Graphs

marko

puppy

pet pet

mama

males

curley

chula

biscuit

whettlejackson

mia

missy

scout

sniffs

sniffs

sniffs

sniffs

sniffs sniffs

sniffs

sniffs

sniffs

sniffs sniffs

sniffs

sniffs

4

4 4

4

4

5

5

Page 47: Solving Problems with Graphs

marko

puppy

pet pet

mama

males

curley

chula

biscuit

whettlejackson

mia

missy

scout

sniffs

sniffs

sniffs

sniffs

sniffs sniffs

sniffs

sniffs

sniffs

sniffs sniffs

sniffs

sniffs

5

5

Page 48: Solving Problems with Graphs

marko

puppy

pet pet

mama

males

curley

chula

biscuit

whettlejackson

mia

missy

scout

sniffs

sniffs

sniffs

sniffs

sniffs sniffs

sniffs

sniffs

sniffs

sniffs sniffs

sniffs

sniffs

Page 49: Solving Problems with Graphs

marko

puppy

pet pet

mama

males

curley

chula

biscuit

whettlejackson

mia

missy

scout

sniffs

sniffs

sniffs

sniffs

sniffs sniffs

sniffs

sniffs

sniffs

sniffs sniffs

sniffs

sniffs

Page 50: Solving Problems with Graphs

marko

puppy

pet pet

mama

males

curley

chula

biscuit

whettlejackson

mia

missy

scout

sniffs

sniffs

sniffs

sniffs

sniffs sniffs

sniffs

sniffs

sniffs

sniffs sniffs

sniffs

sniffs

• What is the best way to save this dog community from disease?PROBLEM

Page 51: Solving Problems with Graphs

marko

puppy

pet pet

mama

males

curley

chula

biscuit

whettlejackson

mia

missy

scout

sniffs

sniffs

sniffs

sniffs

sniffs sniffs

sniffs

sniffs

sniffs

sniffs sniffs

sniffs

sniffs

• What is the best way to save this dog community from disease?PROBLEM

Page 52: Solving Problems with Graphs

marko

puppy

pet pet

mama

males

curley

chula

biscuit

whettlejackson

mia

missy

scout

sniffs

sniffs

sniffs

sniffs

sniffs sniffs

sniffs

sniffs

sniffs

sniffs sniffs

sniffs

sniffs

• What is the best way to save this dog community from disease?

• Inoculate the most central dog.

inoc

ulat

ePROBLEM

SOLUTION

Page 53: Solving Problems with Graphs

marko

puppy

pet pet

mama

males

curley

chula

biscuit

whettlejackson

mia

missy

scout

sniffs

sniffs

sniffs

sniffs

sniffs sniffs

sniffs

sniffs

sniffs

sniffs sniffs

sniffs

sniffs

• What is the best way to save this dog community from disease?

• Inoculate the most central dog.

PROBLEM

SOLUTION

Page 54: Solving Problems with Graphs

marko

puppy

pet pet

mama

males

curley

chula

biscuit

whettlejackson

mia

missy

scout

sniffs

sniffs

sniffs

sniffs

sniffs sniffs

sniffs

sniffs

sniffs

sniffs sniffs

sniffs

sniffs

Page 55: Solving Problems with Graphs

marko

puppy

pet pet

mama

males

curley

chula

biscuit

whettlejackson

mia

missy

scout

sniffs

sniffs

sniffs

sniffs

sniffs sniffs

sniffs

sniffs

sniffs

sniffs sniffs

sniffs

sniffs

DOGS

Page 56: Solving Problems with Graphs

marko

DOGS

Page 57: Solving Problems with Graphs

marko

DOGS

SOFTWARE

Page 58: Solving Problems with Graphs

marko

DOGS

SOFTWARE

Page 59: Solving Problems with Graphs

marko

DOGS

SOFTWARE

Page 60: Solving Problems with Graphs

marko

DOGS

SOFTWARE

Page 61: Solving Problems with Graphs

marko

DOGS

SOFTWARE

Page 62: Solving Problems with Graphs

marko

Page 63: Solving Problems with Graphs

marko

avalanche

captain

Page 64: Solving Problems with Graphs

blackhawks

wild

panthers

marko

avalanche

captain

Page 65: Solving Problems with Graphs

blackhawks

wild

panthers

marko

avalanche

game #1

#2

#3

#4

#5

#n

played

captain

...

Page 66: Solving Problems with Graphs

blackhawks

wild

panthers

marko

avalanche

game #1

#2

#3

#4

#5

#n

period #1

#2

#3

played

p3

p2

p1

captain

...

Page 67: Solving Problems with Graphs

blackhawks

wild

panthers

marko

avalanche

game #1

#2

#3

#4

#5

#n

period #1

#2

#3penalty

#1

#2

#3

goal #1

#2

played

p3

p2

p1

penalties

goals

captain

...

Page 68: Solving Problems with Graphs

blackhawks

wild

panthers

marko

avalanche

game #1

#2

#3

#4

#5

#n

period #1

#2

#3penalty

#1

#2

#3

goal #1

#2

played

p3

p2

p1

penalties

goals

jasonsteve craig patrick

captain

...

...

Page 69: Solving Problems with Graphs

blackhawks

wild

panthers

marko

avalanche

game #1

#2

#3

#4

#5

#n

period #1

#2

#3penalty

#1

#2

#3

goal #1

#2

played

p3

p2

p1

penalties

goals

jasonsteve craig patrickscored

received

captain

assisted

scored

assisted

...

...

Page 70: Solving Problems with Graphs

blackhawks

wild

panthers

marko

avalanche

game #1

#2

#3

#4

#5

#n

period #1

#2

#3penalty

#1

#2

#3

goal #1

#2

played

p3

p2

p1

penalties

goals

jasonsteve craig patrickscored

received

PROBLEM

• Who do I draft for the 2012/2013 season?

captain

assisted

scored

assisted

...

...

Page 71: Solving Problems with Graphs

blackhawks

wild

panthers

marko

avalanche

game #1

#2

#3

#4

#5

#n

period #1

#2

#3penalty

#1

#2

#3

goal #1

#2

played

p3

p2

p1

penalties

goals

jasonsteve craig patrickscored

received

PROBLEM

• Who do I draft for the 2012/2013 season?

captain

assisted

scored

assisted

...

...SOLUTION

• Craig/Patrick play well together.

Page 72: Solving Problems with Graphs

blackhawks

wild

panthers

marko

avalanche

game #1

#2

#3

#4

#5

#n

period #1

#2

#3penalty

#1

#2

#3

goal #1

#2

played

p3

p2

p1

penalties

goals

jasonsteve craig patrickscored

received

PROBLEM

• Who do I draft for the 2012/2013 season?

captain

assisted

scored

assisted

...

...

draft

draftSOLUTION

• Craig/Patrick play well together. Draft them as a pair?

Page 73: Solving Problems with Graphs

blackhawks

wild

panthers

marko

avalanche

game #1

#2

#3

#4

#5

#n

period #1

#2

#3penalty

#1

#2

#3

goal #1

#2

played

p3

p2

p1

penalties

goals

jasonsteve craig patrickscored

received

captain

assisted

scored

assisted

...

...SPORTS

Page 74: Solving Problems with Graphs

marko

SPORTS

Page 75: Solving Problems with Graphs

marko

DOGS

SOFTWARE

SPORTS

Page 76: Solving Problems with Graphs

THIS IS JUST MY SUBSET OF THE WORLD

AND MY PERSONAL PROBLEMS.

Page 77: Solving Problems with Graphs

OUR PERSONAL WORLDS ...

Page 78: Solving Problems with Graphs

... ARE EMBEDDED WITHIN A LARGER WORLD ...

Page 79: Solving Problems with Graphs

... OF OTHER PEOPLEAND ARTIFACTS ...

Page 80: Solving Problems with Graphs

... AND TOGETHER WE NAVIGATE THAT WORLD ...

Page 81: Solving Problems with Graphs

... TRYING TO BETTER

OUR LIVES ...

Page 82: Solving Problems with Graphs

... BY SOLVING

OUR PROBLEMS ...

Page 83: Solving Problems with Graphs

... BY OPTIMALLY LINKING OURSELVES WITHIN THE WORLD.

Page 84: Solving Problems with Graphs

WHY DO WE ENCODE OURSELVES?

Page 85: Solving Problems with Graphs

This where I work.

I like these books.

I think about these ideas.

These are my friends.

I work on these projects.

I visit these webpages.

WHY ARE WE CREATING A UNIVERSAL MODEL?

I wrote these articles.

I am.

Page 86: Solving Problems with Graphs

Where is the best place for me to live?

What career path should I choose given my interests and expertise?

Who should I fall in love with and live my life with?

BECAUSE WE HAVE FAITH IN THE ALGORITHM.

What movie should I watch tonight with the friends I'm meeting up with?

Who should I befriend?

What ideas will inspire me?

Page 87: Solving Problems with Graphs

WE HAVE FAITH THAT TOGETHER, WITH COMPUTERS,

WE WILL DETERMINE THE OPTIMAL EMBEDDING.

Page 88: Solving Problems with Graphs

WE WILL GENERATE ENTHRALLING CONNECTIONS ...

Page 89: Solving Problems with Graphs

THAT RESONATES US ...

Page 90: Solving Problems with Graphs

TO CREATE AND EXPERIENCE ...

Page 91: Solving Problems with Graphs

EVEN GREATER THINGS.

Page 92: Solving Problems with Graphs
Page 93: Solving Problems with Graphs

HOW DO WE STORE AND PROCESSA WORLD MODEL?

BILLIONS OF VERTICES

TRILLIONS OF EDGES

SOLVING MILLIONS OF PROBLEMS/SECOND

Page 94: Solving Problems with Graphs

AURELIUS

GRAPH CLUSTER

Page 95: Solving Problems with Graphs

GRAPH COMPUTING

Page 96: Solving Problems with Graphs

GRAPH COMPUTING

DATA STRUCTURE

TRAVERSAL GRAPH

ALGORITHM

+

Page 97: Solving Problems with Graphs

GRAPH

name:markoage:32

name:Fountain Headpublished:1943

likes

star:5time:2002

Page 98: Solving Problems with Graphs

GRAPH

name:markoage:32

name:Fountain Headpublished:1943

likes

star:5time:2002

PROPERTIES

VERTEX

EDGE

KEYVALUE

LABEL

Page 99: Solving Problems with Graphs

TRAVERSAL

A traversal is an algorithmic walk over a (sub)graph in orderto make explicit information that is implicit within its structure.

1.) graph derivation ("my father's father is my grandfather.") 2.) graph statistic ("many paths lead to Rome.")

1

2

2

3

3

3

3

Page 100: Solving Problems with Graphs

TRAVERSAL

knows

knows likes

likes

likes

lives

likes

likes

lives

likes

likes

likes

knows

A

B

C

D

name:marko

name:joshbirthmonth:12

name:jenbirthmonth:2 name:santa fe

name:pavel

name:russell

Page 101: Solving Problems with Graphs

TRAVERSAL

knows

knows likes

likes

likes

lives

likes

likes

lives

likes

likes

likes

knows

A

B

C

D

name:marko

name:joshbirthmonth:12

name:jenbirthmonth:2

PROBLEM

• What should I buy for any upcoming friends' birthday?

name:santa fe

name:pavel

name:russell

Page 102: Solving Problems with Graphs

TRAVERSAL

knows

knows likes

likes

likes

lives

likes

likes

lives

likes

likes

likes

knows

A

B

C

D

name:jenbirthmonth:2

name:marko

name:joshbirthmonth:12

g.V('name','marko')

name:santa fe

name:pavel

name:russell

Page 103: Solving Problems with Graphs

TRAVERSAL

knows

knows likes

likes

likes

lives

likes

likes

lives

likes

likes

likes

knows

A

B

C

D

name:jenbirthmonth:2

name:marko

name:joshbirthmonth:12

g.V('name','marko').out('knows')

name:santa fe

name:pavel

name:russell

Page 104: Solving Problems with Graphs

TRAVERSAL

knows

knows likes

likes

likes

lives

likes

likes

lives

likes

likes

likes

knows

A

B

C

D

name:jenbirthmonth:2

name:marko

name:joshbirthmonth:12

g.V('name','marko').out('knows') .filter{(it.birthmonth + currentMonth) % 12 < 2}

name:santa fe

name:pavel

name:russell

Page 105: Solving Problems with Graphs

TRAVERSAL

knows

knows likes

likes

likes

lives

likes

likes

lives

likes

likes

likes

knows

A

B

C

D

name:jenbirthmonth:2

name:marko

name:joshbirthmonth:12

g.V('name','marko').out('knows') .filter{(it.birthmonth + currentMonth) % 12 < 2} .out('likes')

name:santa fe

name:pavel

name:russell

Page 106: Solving Problems with Graphs

x

TRAVERSAL

knows

knows likes

likes

likes

lives

likes

likes

lives

likes

likes

likes

knows

A

B

C

D

name:jenbirthmonth:2

name:marko

name:joshbirthmonth:12

g.V('name','marko').out('knows') .filter{(it.birthmonth + currentMonth) % 12 < 2} .out('likes').aggregate(x)

name:santa fe

name:pavel

name:russell

Page 107: Solving Problems with Graphs

TRAVERSAL

knows

knows likes

likes

likes

lives

likes

likes

lives

likes

likes

likes

knows

A

B

C

D

name:jenbirthmonth:2

name:marko

name:joshbirthmonth:12

g.V('name','marko').out('knows') .filter{(it.birthmonth + currentMonth) % 12 < 2} .out('likes').aggregate(x).in('likes')

name:santa fe

name:pavel

name:russell

x

Page 108: Solving Problems with Graphs

x

TRAVERSAL

knows

knows likes

likes

likes

lives

likes

likes

lives

likes

likes

likes

knows

A

B

C

D

name:jenbirthmonth:2

name:marko

name:joshbirthmonth:12

g.V('name','marko').out('knows') .filter{(it.birthmonth + currentMonth) % 12 < 2} .out('likes').aggregate(x).in('likes').out('like')

name:santa fe

name:pavel

name:russell

Page 109: Solving Problems with Graphs

x

TRAVERSAL

knows

knows likes

likes

likes

lives

likes

likes

lives

likes

likes

likes

knows

A

B

C

D

name:jenbirthmonth:2

name:marko

name:joshbirthmonth:12

g.V('name','marko').out('knows') .filter{(it.birthmonth + currentMonth) % 12 < 2} .out('likes').aggregate(x).in('likes').out('like') .except(x)

name:santa fe

name:pavel

name:russell

Page 110: Solving Problems with Graphs

TRAVERSAL

knows

knows likes

likes

likes

lives

likes

likes

lives

likes

likes

likes

knows

A

B

C

D

name:jenbirthmonth:2

name:marko

name:joshbirthmonth:12

g.V('name','marko').out('knows') .filter{(it.birthmonth + currentMonth) % 12 < 2} .out('likes').aggregate(x).in('likes').out('like') .except(x)

name:santa fe

name:pavel

name:russell

Page 111: Solving Problems with Graphs

TRAVERSAL

knows

knows likes

likes

likes

lives

likes

likes

lives

likes

likes

likes

knows

A

B

C

D

name:jenbirthmonth:2

name:marko

name:joshbirthmonth:12

g.V('name','marko').out('knows') .filter{(it.birthmonth + currentMonth) % 12 < 2} .out('likes').aggregate(x).in('likes').out('like') .except(x).groupCount()

name:santa fe

name:pavel

name:russell

C:2D:1

Page 112: Solving Problems with Graphs

C:2D:1

TRAVERSAL

knows

knows likes

likes

likes

lives

likes

likes

lives

likes

likes

likes

knows

A

B

C

D

name:jenbirthmonth:2

name:marko

name:joshbirthmonth:12

g.V('name','marko').out('knows') .filter{(it.birthmonth + currentMonth) % 12 < 2} .out('likes').aggregate(x).in('likes').out('like') .except(x).groupCount()

likesname:santa fe

name:pavel

name:russell

Page 113: Solving Problems with Graphs

GRAPH COMPUTING SYSTEMS

Page 114: Solving Problems with Graphs

AURELIUS GRAPH CLUSTER

TITANDistributed Graph Database

FAUNUSGraph Analytics Engine

FULGORAFast Graph Processor

Apache 2 Licensed

Page 115: Solving Problems with Graphs

TITANDISTRIBUTED GRAPH DATABASE

Page 116: Solving Problems with Graphs

TITANDISTRIBUTED GRAPH DATABASE

Represents the world as a single, atomic graph structure.

Page 117: Solving Problems with Graphs

TITANDISTRIBUTED GRAPH DATABASE

Represents the world as a single, atomic graph structure.

Distributed over a multi-machine cluster using existing distributed data systems such as Cassandra and HBase.

Page 118: Solving Problems with Graphs

TITANDISTRIBUTED GRAPH DATABASE

Represents the world as a single, atomic graph structure.

Distributed over a multi-machine cluster using existing distributed data systems such as Cassandra and HBase.

Supporting numerous short-lived, topologically local, real-time traversals.

Page 119: Solving Problems with Graphs

FAUNUSGRAPH ANALYTICS ENGINE

Page 120: Solving Problems with Graphs

FAUNUSGRAPH ANALYTICS ENGINE

Extracts an ephemeral snapshot of the master graph.

Page 121: Solving Problems with Graphs

FAUNUSGRAPH ANALYTICS ENGINE

Extracts an ephemeral snapshot of the master graph.

Leverages Hadoop as its distributed computing engine.

Page 122: Solving Problems with Graphs

FAUNUSGRAPH ANALYTICS ENGINE

Executing long-lived, topologically global analyses of the graph.

Extracts an ephemeral snapshot of the master graph.

Leverages Hadoop as its distributed computing engine.

Page 123: Solving Problems with Graphs

FULGORAFAST GRAPH PROCESSOR

Page 124: Solving Problems with Graphs

FULGORAFAST GRAPH PROCESSOR

Stores a compressed subset of the master graph.

Page 125: Solving Problems with Graphs

FULGORAFAST GRAPH PROCESSOR

Stores a compressed subset of the master graph.

Contained within the confines of a single high memory/CPU machine.

Page 126: Solving Problems with Graphs

FULGORAFAST GRAPH PROCESSOR

Evaluating heavily threaded, memory efficient graph and machine learning algorithms.

Stores a compressed subset of the master graph.

Contained within the confines of a single high memory/CPU machine.

}

Page 127: Solving Problems with Graphs

AURELIUS GRAPH CLUSTERAN INTEGRATED BIG GRAPH DATA SOLUTION

TITANDistributed Graph Database

FAUNUSGraph Analytics Engine

FULGORAFast Graph Processor

Map/Reduce

Update Graph

Update Graph

Output Graph

Output Statistics

Output Statistics

Other Data Analysis Tools

Apache 2 Licensed

Page 128: Solving Problems with Graphs

PRESENTERMARKO A. RODRIGUEZ

CONTRIBUTORSMATTHIAS BROCHELER

STEPHEN MALLETTEDAN LAROCQUE

VADAS GINTAUTAS

MANY THANKS TOAURELIUS COMMUNITY

TINKERPOP COMMUNITYKETRINA YIM

CREDITS

Page 129: Solving Problems with Graphs

RELATED MATERIAL

FAITH IN THE ALGORITHM 2:COMPUTATIONAL EUDAEMONICS

http://arxiv.org/abs/0904.0027

A COLLECTIVELY GENERATED MODEL OF THE WORLD

http://markorodriguez.files.wordpress.com/2011/01/collective-model.pdf

http://markorodriguez.com/2011/07/14/graphs-brains-and-gremlin/GRAPHS, BRAINS, AND GREMLIN

http://thinkaurelius.com/2012/05/08/structural-abstractions-in-brains-and-graphs/

STRUCTURAL ABSTRACTIONS IN THE BRAIN