Upload
neo4j
View
301
Download
0
Embed Size (px)
Citation preview
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: [email protected]
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