Intro to graph world

Post on 09-May-2015

302 views 0 download

Transcript of Intro to graph world

1

Andreas Kollegger@akollegger #neo4j

Introduction toNeo4j

Thursday, January 24, 13

1

Andreas Kollegger@akollegger #neo4j

Introduction toNeo4j

Thursday, January 24, 13

1

Thursday, January 24, 13

2

Thursday, January 24, 13

The Path Forward

2

Thursday, January 24, 13

The Path Forward

1.Why graphs?

2

Thursday, January 24, 13

The Path Forward

1.Why graphs?

2.What's a graph database?

2

Thursday, January 24, 13

The Path Forward

1.Why graphs?

2.What's a graph database?

3.How do people use Neo4j?

2

Thursday, January 24, 13

3

Thursday, January 24, 13

Why graphs, why now?

3

!⛵☕

$

%⚾'

()* +,-

.

✈⛽ 1

23

4☕ 5

6

7 89:

;<

=

>

?@

B

C

D

E $F%

GHI

J

K

L

M

()

NOP

,Q

-*

Thursday, January 24, 13

1.Big Data is the trend

Why graphs, why now?

3

! " #

$

%

&

*+

,⚽

.

/ 0

1

3

4

5 ⚾

7

8

9

:

;<

=> ?

@ A B

C!D

E F

G

H"

$

✈⛽,

.

0

1

I☕J

<

@KBL

MNG

OJ

#

%&

P

*

+Q

R

/

S

3

T

4U5

O

⚾7

8 V

9

W

:

X

;

=>

YZ

C

[

D\E

F]

H

AX

?!⛵☕

$

%⚾'

()* +,-

.

✈⛽ 1

23

4☕ 5

6

7 89:

;<

=

>

?@

B

C

D

E $F%

GHI

J

K

L

M

()

NOP

,Q

-*

Thursday, January 24, 13

1.Big Data is the trend

2.NOSQL is the answer

Why graphs, why now?

3

!"#

$

%

&

'

+,

-

.

0

1

23

4

5

7

8

9

:

;

<⚾

>

?@

A

B

C

D E

FGH

IJ

KL

M

N

O !

PQ

R

ST

UV

W

X

Y

Z"

$

✈⛽ -

1

3

4

5☕ [

E

I KMP

S WX

\ [

#

%&

'

+

,.

0

2

7

8

9

:;<

\

⚾ >

?@

A

B

C

]

D

FG

LN

O

Q

R TU

VY

Z

J]

H

! " #

$

%

&

*+

,⚽

.

/ 0

1

3

4

5 ⚾

7

8

9

:

;<

=> ?

@ A B

C!D

E F

G

H"

$

✈⛽,

.

0

1

I☕J

<

@KBL

MNG

OJ

#

%&

P

*

+Q

R

/

S

3

T

4U5

O

⚾7

8 V

9

W

:

X

;

=>

YZ

C

[

D\E

F]

H

AX

?!⛵☕

$

%⚾'

()* +,-

.

✈⛽ 1

23

4☕ 5

6

7 89:

;<

=

>

?@

B

C

D

E $F%

GHI

J

K

L

M

()

NOP

,Q

-*

Thursday, January 24, 13

1.Big Data is the trend

2.NOSQL is the answer

3.Large in volume, and in variety

!"#

$

%

&

'

+,

-

.

0

1

23

4

5

7

8

9

:

;

<⚾

>

?@

A

B

C

D E

FGH

IJ

KL

M

N

O !

PQ

R

ST

UV

W

X

Y

Z"

$

✈⛽ -

1

3

4

5☕ [

E

I KMP

S WX

\ [

#

%&

'

+

,.

0

2

7

8

9

:;<

\

⚾ >

?@

A

B

C

]

D

FG

LN

O

Q

R TU

VY

Z

J]

H

Why graphs, why now?

3

!"#

$

%

&

'

+,

-

.

0

1

23

4

5

7

8

9

:

;

<⚾

>

?@

A

B

C

D E

FGH

IJ

KL

M

N

O !

PQ

R

ST

UV

W

X

Y

Z"

$

✈⛽ -

1

3

4

5☕ [

E

I KMP

S WX

\ [

#

%&

'

+

,.

0

2

7

8

9

:;<

\

⚾ >

?@

A

B

C

]

D

FG

LN

O

Q

R TU

VY

Z

J]

H

! " #

$

%

&

*+

,⚽

.

/ 0

1

3

4

5 ⚾

7

8

9

:

;<

=> ?

@ A B

C!D

E F

G

H"

$

✈⛽,

.

0

1

I☕J

<

@KBL

MNG

OJ

#

%&

P

*

+Q

R

/

S

3

T

4U5

O

⚾7

8 V

9

W

:

X

;

=>

YZ

C

[

D\E

F]

H

AX

?!⛵☕

$

%⚾'

()* +,-

.

✈⛽ 1

23

4☕ 5

6

7 89:

;<

=

>

?@

B

C

D

E $F%

GHI

J

K

L

M

()

NOP

,Q

-*

Thursday, January 24, 13

1.Big Data is the trend

2.NOSQL is the answer

3.Large in volume, and in variety

!"#

$

%

&

'

+,

-

.

0

1

23

4

5

7

8

9

:

;

<⚾

>

?@

A

B

C

D E

FGH

IJ

KL

M

N

O !

PQ

R

ST

UV

W

X

Y

Z"

$

✈⛽ -

1

3

4

5☕ [

E

I KMP

S WX

\ [

#

%&

'

+

,.

0

2

7

8

9

:;<

\

⚾ >

?@

A

B

C

]

D

FG

LN

O

Q

R TU

VY

Z

J]

H

Why graphs, why now?

3

!"#

$

%

&

'

+,

-

.

0

1

23

4

5

7

8

9

:

;

<⚾

>

?@

A

B

C

D E

FGH

IJ

KL

M

N

O !

PQ

R

ST

UV

W

X

Y

Z"

$

✈⛽ -

1

3

4

5☕ [

E

I KMP

S WX

\ [

#

%&

'

+

,.

0

2

7

8

9

:;<

\

⚾ >

?@

A

B

C

]

D

FG

LN

O

Q

R TU

VY

Z

J]

H

! " #

$

%

&

*+

,⚽

.

/ 0

1

3

4

5 ⚾

7

8

9

:

;<

=> ?

@ A B

C!D

E F

G

H"

$

✈⛽,

.

0

1

I☕J

<

@KBL

MNG

OJ

#

%&

P

*

+Q

R

/

S

3

T

4U5

O

⚾7

8 V

9

W

:

X

;

=>

YZ

C

[

D\E

F]

H

AX

?!⛵☕

$

%⚾'

()* +,-

.

✈⛽ 1

23

4☕ 5

6

7 89:

;<

=

>

?@

B

C

D

E $F%

GHI

J

K

L

M

()

NOP

,Q

-*

! " #

$

%

&

'

+,

-

.

0

1

2 3

4

5

7

8

9

:

;

< ⚾

>

?@

A

B

C

DE

FG H

I J

KL

M

N

O!

PQ

R

S T

U V

W

X

Y

Z"

$

✈⛽-

1

3

4

5☕[

E

IKMP

SWX

\[

#

%&

'

+

,.

0

2

7

8

9

:;<

\

⚾>

? @

A

B

C

]

D

FG

LN

O

Q

RTU

VY

Z

J]

H

! " #

$

%

&

'

+,

-

.

0

1

2 3

4

5

7

8

9

:

;

< ⚾

>

?@

A

B

C

DE

FG H

I J

KL

M

N

O!

PQ

R

S T

U V

W

X

Y

Z"

$

✈⛽-

1

3

4

5☕[

E

IKMP

SWX

\[

#

%&

'

+

,.

0

2

7

8

9

:;<

\

⚾>

? @

A

B

C

]

D

FG

LN

O

Q

RTU

VY

Z

J]

H!"#

$

%

&

'

+,

-

.

0

1

23

4

5

7

8

9

:

;

<⚾

>

?@

A

B

C

D E

FGH

IJ

KL

M

N

O !

PQ

R

ST

UV

W

X

Y

Z"

$

✈⛽ -

1

3

4

5☕ [

E

I KMP

S WX

\ [

#

%&

'

+

,.

0

2

7

8

9

:;<

\

⚾ >

?@

A

B

C

]

D

FG

LN

O

Q

R TU

VY

Z

J]

H

!"#

$

%

&

'

+,

-

.

0

1

23

4

5

7

8

9

:

;

<⚾

>

?@

A

B

C

D E

FGH

IJ

KL

M

N

O !

PQ

R

ST

UV

W

X

Y

Z"

$

✈⛽ -

1

3

4

5☕ [

E

I KMP

S WX

\ [

#

%&

'

+

,.

0

2

7

8

9

:;<

\

⚾ >

?@

A

B

C

]

D

FG

LN

O

Q

R TU

VY

Z

J]

H

!"#

$

%

&

'

+,

-

.

0

1

23

4

5

7

8

9

:

;

<⚾

>

?@

A

B

C

D E

FGH

IJ

KL

M

N

O !

PQ

R

ST

UV

W

X

Y

Z"

$

✈⛽ -

1

3

4

5☕ [

E

I KMP

S WX

\ [

#

%&

'

+

,.

0

2

7

8

9

:;<

\

⚾ >

?@

A

B

C

]

D

FG

LN

O

Q

R TU

VY

Z

J]

H

!"#

$

%

&

'

+,

-

.

0

1

23

4

5

7

8

9

:

;

<⚾

>

?@

A

B

C

D E

FGH

IJ

KL

M

N

O !

PQ

R

ST

UV

W

X

Y

Z"

$

✈⛽ -

1

3

4

5☕ [

E

I KMP

S WX

\ [

#

%&

'

+

,.

0

2

7

8

9

:;<

\

⚾ >

?@

A

B

C

]

D

FG

LN

O

Q

R TU

VY

Z

J]

H

!"#

$

%

&

'

+,

-

.

0

1

23

4

5

7

8

9

:

;

<⚾

>

?@

A

B

C

D E

FGH

IJ

KL

M

N

O !

PQ

R

ST

UV

W

X

Y

Z"

$

✈⛽ -

1

3

4

5☕ [

E

I KMP

S WX

\ [

#

%&

'

+

,.

0

2

7

8

9

:;<

\

⚾ >

?@

A

B

C

]

D

FG

LN

O

Q

R TU

VY

Z

J]

H

!"#

$

%

&

'

+,

-

.

0

1

23

4

5

7

8

9

:

;

<⚾

>

?@

A

B

C

D E

FGH

IJ

KL

M

N

O !

PQ

R

ST

UV

W

X

Y

Z"

$

✈⛽ -

1

3

4

5☕ [

E

I KMP

S WX

\ [

#

%&

'

+

,.

0

2

7

8

9

:;<

\

⚾ >

?@

A

B

C

]

D

FG

LN

O

Q

R TU

VY

Z

J]

H

!"#

$

%

&

'

+,

-

.

0

1

23

4

5

7

8

9

:

;

<⚾

>

?@

A

B

C

D E

FGH

IJ

KL

M

N

O !

PQ

R

ST

UV

W

X

Y

Z"

$

✈⛽ -

1

3

4

5☕ [

E

I KMP

S WX

\ [

#

%&

'

+

,.

0

2

7

8

9

:;<

\

⚾ >

?@

A

B

C

]

D

FG

LN

O

Q

R TU

VY

Z

J]

H

!"#

$

%

&

'

+,

-

.

0

1

23

4

5

7

8

9

:

;

<⚾

>

?@

A

B

C

D E

FGH

IJ

KL

M

N

O !

PQ

R

ST

UV

W

X

Y

Z"

$

✈⛽ -

1

3

4

5☕ [

E

I KMP

S WX

\ [

#

%&

'

+

,.

0

2

7

8

9

:;<

\

⚾ >

?@

A

B

C

]

D

FG

LN

O

Q

R TU

VY

Z

J]

H

!"#

$

%

&

'

+,

-

.

0

1

23

4

5

7

8

9

:

;

<⚾

>

?@

A

B

C

D E

FGH

IJ

KL

M

N

O !

PQ

R

ST

UV

W

X

Y

Z"

$

✈⛽ -

1

3

4

5☕ [

E

I KMP

S WX

\ [

#

%&

'

+

,.

0

2

7

8

9

:;<

\

⚾ >

?@

A

B

C

]

D

FG

LN

O

Q

R TU

VY

Z

J]

H

!"#

$

%

&

'

+,

-

.

0

1

23

4

5

7

8

9

:

;

<⚾

>

?@

A

B

C

D E

FGH

IJ

KL

M

N

O !

PQ

R

ST

UV

W

X

Y

Z"

$

✈⛽ -

1

3

4

5☕ [

E

I KMP

S WX

\ [

#

%&

'

+

,.

0

2

7

8

9

:;<

\

⚾ >

?@

A

B

C

]

D

FG

LN

O

Q

R TU

VY

Z

J]

H

Thursday, January 24, 13

3

Thursday, January 24, 13

4

Thursday, January 24, 13

4

Everyone is talking about graphs...

Thursday, January 24, 13

4

Everyone is talking about graphs...

Facebook Open Graph

Thursday, January 24, 13

4

Everyone is talking about graphs...

Facebook Open Graph

Thursday, January 24, 13

5

Text

Thursday, January 24, 13

Graphs are everywhere! I even have one...

5

Text

Thursday, January 24, 13

A graph...

6

Thursday, January 24, 13

A graph...

6

๏you know the common data structures

Thursday, January 24, 13

A graph...

6

๏you know the common data structures

•linked lists, trees, object "graphs"

Thursday, January 24, 13

A graph...

6

๏you know the common data structures

•linked lists, trees, object "graphs"

๏a graph is the general purpose data structure

Thursday, January 24, 13

A graph...

6

๏you know the common data structures

•linked lists, trees, object "graphs"

๏a graph is the general purpose data structure

•suitable for any data that is related

Thursday, January 24, 13

A graph...

6

๏you know the common data structures

•linked lists, trees, object "graphs"

๏a graph is the general purpose data structure

•suitable for any data that is related

๏well-understood patterns and algorithms

Thursday, January 24, 13

A graph...

6

๏you know the common data structures

•linked lists, trees, object "graphs"

๏a graph is the general purpose data structure

•suitable for any data that is related

๏well-understood patterns and algorithms

•studied since Leonard Euler's 7 Bridges (1736)

Thursday, January 24, 13

A graph...

6

๏you know the common data structures

•linked lists, trees, object "graphs"

๏a graph is the general purpose data structure

•suitable for any data that is related

๏well-understood patterns and algorithms

•studied since Leonard Euler's 7 Bridges (1736)

•Codd's Relational Model (1970)

Thursday, January 24, 13

A graph...

6

๏you know the common data structures

•linked lists, trees, object "graphs"

๏a graph is the general purpose data structure

•suitable for any data that is related

๏well-understood patterns and algorithms

•studied since Leonard Euler's 7 Bridges (1736)

•Codd's Relational Model (1970)

•not a new idea, just an idea who's time is now

Thursday, January 24, 13

A graph database...

7

Thursday, January 24, 13

A graph database...

7

๏optimized for the connections between records

Thursday, January 24, 13

A graph database...

7

๏optimized for the connections between records

๏really, really fast at querying across records

Thursday, January 24, 13

A graph database...

7

๏optimized for the connections between records

๏really, really fast at querying across records

๏a database: transactional with the usual operations

Thursday, January 24, 13

A graph database...

7

๏optimized for the connections between records

๏really, really fast at querying across records

๏a database: transactional with the usual operations

๏“A relational database may tell you the average age of everyone in this webinar,

but a graph database will tell you how to drive from Baltimore to San Francisco.”

Thursday, January 24, 13

That last bullet is the key insight...

8

Thursday, January 24, 13

9

Thursday, January 24, 13

You know relational

9

Thursday, January 24, 13

You know relational

9

Thursday, January 24, 13

You know relational

9

foo

Thursday, January 24, 13

You know relational

9

foo bar

Thursday, January 24, 13

You know relational

9

foo barfoo_bar

Thursday, January 24, 13

You know relational

9

foo barfoo_bar

Thursday, January 24, 13

You know relational

9

foo barfoo_bar

Thursday, January 24, 13

You know relational

9

foo barfoo_bar

Thursday, January 24, 13

You know relational

9

now consider relationships...

Thursday, January 24, 13

You know relational

9

now consider relationships...

Thursday, January 24, 13

You know relational

9

now consider relationships...

Thursday, January 24, 13

You know relational

9

now consider relationships...

Thursday, January 24, 13

You know relational

9

now consider relationships...

Thursday, January 24, 13

You know relational

9

now consider relationships...

Thursday, January 24, 13

9

Thursday, January 24, 13

10

Thursday, January 24, 13

We're talking about aProperty Graph

10

Thursday, January 24, 13

We're talking about aProperty Graph

10

Nodes

Thursday, January 24, 13

We're talking about aProperty Graph

10

Nodes

Relationships

Thursday, January 24, 13

Emil

Andrés

Lars

Johan

Allison

Peter

Michael

Tobias

Andreas

IanMica

Delia

knows

knows

knowsknows

knows

knows

knows

knows

knows

knowsMica

knowsknowsMica

Delia

knows

We're talking about aProperty Graph

10

Nodes

Relationships

Properties (each a key+value)

+ Indexes (for easy look-ups)

Thursday, January 24, 13

10

Thursday, January 24, 13

Neo4j - the Graph Database

11

Thursday, January 24, 13

Google "neo4j"

12

Thursday, January 24, 13

Google "neo4j"๏neo4j.org

12

Thursday, January 24, 13

Google "neo4j"๏neo4j.org

๏neotechnology.com

12

Thursday, January 24, 13

Google "neo4j"๏neo4j.org

๏neotechnology.com

๏github.com/neo4j

12

Thursday, January 24, 13

Google "neo4j"๏neo4j.org

๏neotechnology.com

๏github.com/neo4j

๏neo4j.meetup.com

12

Thursday, January 24, 13

Google "neo4j"๏neo4j.org

๏neotechnology.com

๏github.com/neo4j

๏neo4j.meetup.com

๏graphconnect.com

12

Thursday, January 24, 13

How to get started?

13

Thursday, January 24, 13

How to get started?๏ Documentation

13

Thursday, January 24, 13

How to get started?๏ Documentation

•docs.neo4j.org - tutorials+reference

13

Thursday, January 24, 13

How to get started?๏ Documentation

•docs.neo4j.org - tutorials+reference

•Neo4j in Action

13

Thursday, January 24, 13

How to get started?๏ Documentation

•docs.neo4j.org - tutorials+reference

•Neo4j in Action

•Good Relationships

13

Thursday, January 24, 13

How to get started?๏ Documentation

•docs.neo4j.org - tutorials+reference

•Neo4j in Action

•Good Relationships

๏ Get Neo4j

13

Thursday, January 24, 13

How to get started?๏ Documentation

•docs.neo4j.org - tutorials+reference

•Neo4j in Action

•Good Relationships

๏ Get Neo4j

•http://neo4j.org/download

13

Thursday, January 24, 13

How to get started?๏ Documentation

•docs.neo4j.org - tutorials+reference

•Neo4j in Action

•Good Relationships

๏ Get Neo4j

•http://neo4j.org/download

•http://addons.heroku.com/neo4j/

13

Thursday, January 24, 13

How to get started?๏ Documentation

•docs.neo4j.org - tutorials+reference

•Neo4j in Action

•Good Relationships

๏ Get Neo4j

•http://neo4j.org/download

•http://addons.heroku.com/neo4j/

๏ Participate

•ask questions on Stack Overflow

•http://groups.google.com/group/neo4j

•http://neo4j.meetup.com

13

Thursday, January 24, 13

How to get started?๏ Documentation

•docs.neo4j.org - tutorials+reference

•Neo4j in Action

•Good Relationships

๏ Get Neo4j

•http://neo4j.org/download

•http://addons.heroku.com/neo4j/

๏ Participate

•ask questions on Stack Overflow

•http://groups.google.com/group/neo4j

•http://neo4j.meetup.com

•webinars, every month on everything from intro to production13

Thursday, January 24, 13

Neo4j is a Graph Database

14

Thursday, January 24, 13

Neo4j is a Graph Database• A Graph Database:

14

Thursday, January 24, 13

Neo4j is a Graph Database• A Graph Database:

• a Property Graph with Nodes, Relationshipsand Properties on both

14

Thursday, January 24, 13

Neo4j is a Graph Database• A Graph Database:

• a Property Graph with Nodes, Relationshipsand Properties on both

• perfect for complex, highly connected data

14

Thursday, January 24, 13

Neo4j is a Graph Database• A Graph Database:

• a Property Graph with Nodes, Relationshipsand Properties on both

• perfect for complex, highly connected data

• A Graph Database:

14

Thursday, January 24, 13

Neo4j is a Graph Database• A Graph Database:

• a Property Graph with Nodes, Relationshipsand Properties on both

• perfect for complex, highly connected data

• A Graph Database:

• reliable with real ACID Transactions

14

Thursday, January 24, 13

Neo4j is a Graph Database• A Graph Database:

• a Property Graph with Nodes, Relationshipsand Properties on both

• perfect for complex, highly connected data

• A Graph Database:

• reliable with real ACID Transactions• scalable: 32 Billion Nodes, 32 Billion Relationships, 64 Billion

Properties

14

Thursday, January 24, 13

Neo4j is a Graph Database• A Graph Database:

• a Property Graph with Nodes, Relationshipsand Properties on both

• perfect for complex, highly connected data

• A Graph Database:

• reliable with real ACID Transactions• scalable: 32 Billion Nodes, 32 Billion Relationships, 64 Billion

Properties

• Server with REST API, or Embeddable on the JVM

14

Thursday, January 24, 13

Neo4j is a Graph Database• A Graph Database:

• a Property Graph with Nodes, Relationshipsand Properties on both

• perfect for complex, highly connected data

• A Graph Database:

• reliable with real ACID Transactions• scalable: 32 Billion Nodes, 32 Billion Relationships, 64 Billion

Properties

• Server with REST API, or Embeddable on the JVM• high-performance with High-Availability (read scaling)

14

Thursday, January 24, 13

15

Thursday, January 24, 13

And, but, so how do you query this "graph" database?

15

Thursday, January 24, 13

16

Thursday, January 24, 13

16

Cypher - a graph query language๏a pattern-matching query language

๏declarative grammar with clauses (like SQL)

๏aggregation, ordering, limits

๏create, read, update, delete

Thursday, January 24, 13

16

Cypher - a graph query language๏a pattern-matching query language

๏declarative grammar with clauses (like SQL)

๏aggregation, ordering, limits

๏create, read, update, delete// get node from an index named “foo”start foo=node:people(name=‘Andreas’) return foo

// find “bar” nodes related to Andreasstart foo=node:people(name=‘Andreas’)match (foo)-->(bar) return bar

// create a nodecreate (me {name:'Andreas'})

Thursday, January 24, 13

17

Thursday, January 24, 13

Is it production ready?

17

Thursday, January 24, 13

18

Thursday, January 24, 13

Neo4j HA - High Availability Cluster

18

Thursday, January 24, 13

Neo4j HA - High Availability Cluster

18

•master-slave replication

Load Balancer

Thursday, January 24, 13

Neo4j HA - High Availability Cluster

18

•master-slave replication

• read-scaling

Load Balancer

Thursday, January 24, 13

Neo4j HA - High Availability Cluster

18

•master-slave replication

• read-scaling

• single datacenter, or global zones

Load Balancer

Thursday, January 24, 13

Neo4j HA - High Availability Cluster

18

•master-slave replication

• read-scaling

• single datacenter, or global zones

• tolerance for high-latency

Load Balancer

Thursday, January 24, 13

Neo4j HA - High Availability Cluster

18

•master-slave replication

• read-scaling

• single datacenter, or global zones

• tolerance for high-latency

• redundancy provides improved uptime

Load Balancer

Thursday, January 24, 13

Neo4j HA - High Availability Cluster

18

•master-slave replication

• read-scaling

• single datacenter, or global zones

• tolerance for high-latency

• redundancy provides improved uptime

• automatic failoverLoad Balancer

Thursday, January 24, 13

Neo4j HA - High Availability Cluster

18

•master-slave replication

• read-scaling

• single datacenter, or global zones

• tolerance for high-latency

• redundancy provides improved uptime

• automatic failoverLoad Balancer

Thursday, January 24, 13

Neo4j HA - High Availability Cluster

18

Load Balancer

Thursday, January 24, 13

19

Real World Use Cases:

Thursday, January 24, 13

19

[A] Mmm Pancakes

Real World Use Cases:

Thursday, January 24, 13

19

[A] Mmm Pancakes[B] ACL from Hell

Real World Use Cases:

Thursday, January 24, 13

19

[A] Mmm Pancakes[B] ACL from Hell[C] Master of your Domain

Real World Use Cases:

Thursday, January 24, 13

Thursday, January 24, 13

[A] Mmm Pancakes

Thursday, January 24, 13

[A] Mmm Pancakes

Thursday, January 24, 13

Thursday, January 24, 13

[A] Mozilla Pancake

This Material is subject to the terms of the Mozilla Public # License, v. 2.0. If a copy of the MPL was not distributed with this # file, You can obtain one at http://mozilla.org/MPL/2.0/

Thursday, January 24, 13

[A] Mozilla Pancake

• Experimental cloud-based browser

• Built to improve how users Discover, Collect, Share & Organize things on the web

• Goal: help users better access & curate information on the net, on any device

This Material is subject to the terms of the Mozilla Public # License, v. 2.0. If a copy of the MPL was not distributed with this # file, You can obtain one at http://mozilla.org/MPL/2.0/

Thursday, January 24, 13

This Material is subject to the terms of the Mozilla Public # License, v. 2.0. If a copy of the MPL was not distributed with this # file, You can obtain one at http://mozilla.org/MPL/2.0/

Thursday, January 24, 13

Why Neo4J?

This Material is subject to the terms of the Mozilla Public # License, v. 2.0. If a copy of the MPL was not distributed with this # file, You can obtain one at http://mozilla.org/MPL/2.0/

Thursday, January 24, 13

Why Neo4J?

• The internet is a network of pages connected to each other. What better way to model that than in graphs?

• No time lost fighting with less expressive datastores

• Easy to implement experimental features

This Material is subject to the terms of the Mozilla Public # License, v. 2.0. If a copy of the MPL was not distributed with this # file, You can obtain one at http://mozilla.org/MPL/2.0/

Thursday, January 24, 13

Cute meta + data

This Material is subject to the terms of the Mozilla Public # License, v. 2.0. If a copy of the MPL was not distributed with this # file, You can obtain one at http://mozilla.org/MPL/2.0/

Thursday, January 24, 13

Cute meta + data

This Material is subject to the terms of the Mozilla Public # License, v. 2.0. If a copy of the MPL was not distributed with this # file, You can obtain one at http://mozilla.org/MPL/2.0/

Thursday, January 24, 13

Neo4J Co-Existence

• Node uuids as refs in external ElasticSearch also in internal Lucene

• Custom search ranking for user history based on node relationship data

• MySQL for user data, Redis for metrics

This Material is subject to the terms of the Mozilla Public # License, v. 2.0. If a copy of the MPL was not distributed with this # file, You can obtain one at http://mozilla.org/MPL/2.0/

Thursday, January 24, 13

Mozilla Pancake

Available on BitBucket:https://bitbucket.org/mozillapancake/pancake

Questions?Olivier Yiptong: oyiptong@mozilla.com

This Material is subject to the terms of the Mozilla Public # License, v. 2.0. If a copy of the MPL was not distributed with this # file, You can obtain one at http://mozilla.org/MPL/2.0/

Thursday, January 24, 13

Thursday, January 24, 13

[B] ACL from Hell

One of the top 10 telcos worldwide

Thursday, January 24, 13

Background

Telenor calculated in 2010 that it´s self-service web solution for companies, MinBedrift, would not scale with the projected customer and subscription growth beyond 2012.

Projected Growth

2010 2015

Limit

Thursday, January 24, 13

[B] Telenor Background

Background

Telenor calculated in 2010 that it´s self-service web solution for companies, MinBedrift, would not scale with the projected customer and subscription growth beyond 2012.

Projected Growth

2010 2015

Limit

Thursday, January 24, 13

[B] Telenor Background

Background

Telenor calculated in 2010 that it´s self-service web solution for companies, MinBedrift, would not scale with the projected customer and subscription growth beyond 2012.

Projected Growth

2010 2015

Limit

• MinBedrif, a self service web solution for companies

• 2010 - calculated that it would not scale with projected growth

Thursday, January 24, 13

Example Access Authorization

Access may be given directly or by inheritance

U

C

S

C

A A A

S S S S S

User

Customer

Account

Subscription Inherit = true U

Inherit = true

Inherit = false

C

A

S S

C

A

S S

Thursday, January 24, 13

Business Case

The business case is built on the negative consequence of NOT addressing the problem.

Loss of customers (income)

Reduced sales transactions (income)

Other

Increased manual support (expenses)

Thursday, January 24, 13

30

Thursday, January 24, 13

Current ACL Service

30

Thursday, January 24, 13

Current ACL Service

•Stored procedure in DB calculating all access

• cached results for up to 24 hours

• minutes to calculate for large customers

• extremely complex to understand (1500 lines)

• depends on temporary tables

• joins across multiple tables

30

Thursday, January 24, 13

31

Thursday, January 24, 13

ACL With Neo4j

31

Thursday, January 24, 13

ACL With Neo4j๏Faster than current solution

๏Simpler to understand the logic

๏Avoid large temporary tables

๏Tailored for service (resource authorization)

31

Thursday, January 24, 13

Thursday, January 24, 13

[C] Master of your Domain

Thursday, January 24, 13

[C] MDM within Ciscomaster data management, sales compensation management, online customer support

Architecture3-node Enterprise cluster with mirrored disaster recovery clusterDedicated hardware in own datacenterEmbedded in custom webapp

Sizing35 million nodes50 million relationships600 million properties

DescriptionReal-time conflict detection in sales compensation management. Business-critical “P1” system. Neo4j allows Cisco to model complex algorithms, which still maintaining high performance over a large dataset.

BackgroundNeo4j replaces Oracle RAC, which was not performant enough for the use case.

BenefitsPerformance : “Minutes to Milliseconds”Outperforms Oracle RAC, serving complex queries in real timeFlexibilityAllows for Cisco to model interconnected data and complex queries with easeRobustnessWith 9+ years of production experience, Neo4j brings a solid product.

Thursday, January 24, 13

34

Thursday, January 24, 13

34

Really, once you start thinking in graphs it's hard to stop

Recommendations MDM

Systems ManagementGeospatial

Social computing

Business intelligence

Biotechnology

Making Sense of all that data

your brainaccess control

linguistics

catalogs

genealogy routing

compensationmarket vectors

Thursday, January 24, 13

34

Really, once you start thinking in graphs it's hard to stop

Recommendations MDM

Systems ManagementGeospatial

Social computing

Business intelligence

Biotechnology

Making Sense of all that data

your brainaccess control

linguistics

catalogs

genealogy routing

compensationmarket vectors

What will you build?

Thursday, January 24, 13

35

Thursday, January 24, 13

35

and, Thanks :)

Neo4j

Thursday, January 24, 13